Вечно меняющиеся бизнес требования вносили в мой красивый код множество некрасивых изменений. И только я приводил код в порядок в него вносилась очередная порция говна. В этот момент я стал считать красивым кодом, такой, который возможно быстро изменять. Расширение, модульность, паттерны. Красивый код, написанный мной тогда и сейчас работает отлично.
После этого я заболел качеством кода. Документированный и покрытый тестами код стал ассоциироваться у меня со словом красивый. На прошлой неделе я смотрел утилиту написанную шесть лет назад. Она прекрасно работает. Код конечно местами переписан уже другими людьми, но ни один тест они не тронули. Красивый код — работающий, проходящий тесты.
Но после того, как стал управлять людьми я пересмотрел свое отношение к коду. Прежде всего красивый код должен решать бизнес-задачу.
Итак, красивый код — это работающий код, решающий бизнес-задачу, реализованный в рамках бюджета в ограниченных временных рамках.
Но в дополнение к этому хочется отметить некоторые опции, которые присоединяются если есть время и деньги:
- Написанный простыми конструкциями (понятный для среднего уровня)
- Покрытый тестами
- Документированный