?

Log in

No account? Create an account
Previous Entry Share Next Entry
photo25

Как писать хороший код.

Оригинал взят у sorhed в Как писать хороший код.
Существует единственный критерий качества кода — лёгкость, с которой другой программист может в нём разобраться.

Это базовый уровень. Более продвинутый критерий качества — лёгкость, с которой другой программист может внести в этот код изменения.

Ещё более продвинутый (и последний) уровень — лёгкость, с которой другой программист может интегрировать этот код в большую систему.

Другие критерии качества кода нерелевантны. Покрытие тестами, метрики, coverage, объём — это всё отвлекает от главного.


  • 1
sab123 August 13th, 2014
В первую очередь код должен работать. Все остальное - хорошо, но побочно. А то его критерии напоминают мне притчу Козьмы Пруткова про ружье, в котором была масса фич и только один недостаток - оно не стреляло.

dmih August 13th, 2014
Сначала мне это определение очень не понравилось.

Потом я понял, что оно полностью правильное.

Потом я понял, почему мне не понравилось определение: оно примерно говорит о том, что "хороший код должен быть хорошим". То есть, вот, тесты, метрики, coverage и объем, которое принебрежено в цитате, это можно потрогать. А вот эта вся изотерика шла бы лесом.

Поэтому, IMHO, это определение плохое.

* * *

Из того, что можно потрогать, мне пока больше всего нравится размер кода. Очень много косвенных признаком сводятся к размеру. Удивительно много. Чем дальше живу, тем больше в этом убеждаюсь.

enternet August 13th, 2014
+

dmih August 13th, 2014
.. ну то есть собственно если сходить по ссылке, они там с места в карьер и бросились обсуждать, понятен ли будет код и почему.
Не большой чести дело генерировать такие определения.

amarao_san August 13th, 2014
Программистоцентризм. Качественный код - который делает то, что должен делать и не делает то, что делать не должен. Иными словами, работает, быстро, удобно, не падает.

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

Код пишут не для того, чтобы писать, а для того, чтобы он работал.

swdukk August 13th, 2014
согласен. код для того чтоб работал а не из соображений эстетства пишется. причем почти всегда так - самый быстрый код является и самым непонимаемым человеком который его НЕ писал. и наоборот красивейший код который все понимают - ужасно медленный и расточительный в ресурсах.

amarao_san August 13th, 2014
Оставляя в стороне вопрос "для кого пишет программист", "красивейший код" != "все понимают".

Линейную стопку "if'ов" поймут все. Некоторые возмутятся, мол, некрасиво и надо переделать на итератор по списку лямбд-условий и лямбд-операций.

wizzard0 August 13th, 2014
К сожалению, для многих "красивейший код" = "использовано максимум крутых фенечек, которые я недавно выучил"

justy_tylor August 13th, 2014
Лучший код - тот, с которым стоимость разработки и поддержки продукта заданного качества на заданном промежутке времени будет минимальной.

И одноразовый оппа-говноскрипт "статистика для админа", и ядрёно верифицированный код управления космическим аппаратом - все хороши на своём месте.

mbr August 14th, 2014
Это скорее субъективные оценки. Более объективные - принятие стандартов написания кода, понятных всем разработчикам.

https://www.kernel.org/doc/Documentation/CodingStyle

famulan August 16th, 2014
Сама не очень в теме, но вчера промелькнуло в твиттере MIT Engineering:
"Programs must be written for people to read, and only incidentally for machines to execute." – @MIT Prof Hal Abelson. @MITEngineering

ady_1981 August 21st, 2014
+100500

  • 1