Что подразумевают программисты, когда говорят «красивый код», чем определяется красота кода?

Ответить
Ответить
Комментировать
0
Подписаться
19
4 ответа
Поделиться

Можно говорить о как минимум двух уровнях "красивости кода".

На первом уровне просто оценивается умелое и уместное использование возможностей языка программирования, его конструкций и идиом. Например, в красивом коде ты увидишь корректную обработку ошибок, осмысленное управление временем жизним объектов, с пониманием написанную многопоточность. В красивом коде также будут иметь место емкие, хорошо понятные и однозначные названия переменных, структур данных, функций и проч.

На втором уровне уже смотрится на то, что за кодом стоит - на модель вычислений и используемые абстракции. В красивом коде ты видишь, оригинальность и одновременно элегантность решения, видишь, как код с минимальной избыточностью решает поставленную перед ним задачу.

В первую очередь, имеется ввиду код, оформленный согласно стандатам ("гайдлайнам") языка программирования, и написанный человеком, вполне этим языком владеющим.

Во-вторых, это читаемость кода. "Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку", - сказал Мартин Фаулер, автор ставших классическими книг о хорошем коде (и нетолько). Читаемость - это далеко не просто эстетическая прихоть. Если код нечитаем и тяжел для восприятия, то это всегда говорит о том, что в проекте проблемы. Вообще, программисты - это люди которые стремятся сложное сделать простым, запутанное они ненавидят (простите невольный плагиат из "Дзена Питона").

Наконец, программирование чем-то похоже на поэзию или музыку. По-настояшему хороший код обладает особенной эстетикой, очевидной для хорошего программиста.

Так что вообще говоря, ваш вопрос во многом эквивалентен вопросу "Как мы отличаем красивое от некрасивого?".

адекватное и оптимальное решение поставленной задачи с корректным оформлением кода и минимальным использованием ресурсов компьютера = идеал, который крайне редко встречается в реальной жизни

Показать ещё 1 ответ
Ответить