Нет, нет и нет.
Скажем вместе. НЕТ!
Хорошее начало.
Но чему мы говорим НЕТ?
Это важный момент, который сбивает с толку даже опытных программистов.
Написание кода составляет большую часть работы программиста. Это именно то, чего ожидают от человека данной профессии: написание кода. Однако стоит ли писать требуемый код полностью?
Знание того, когда не нужно писать код, возможно, является самым важным навыком для программиста. — The Art Of Readable Code
Программирование — это искусство решения проблем. Возникновение проблемы, которую необходимо решить, или любой другой причины написать несколько строчек кода, заставляет сердца программистов биться быстрее.
Однако страстное желание написать код ослепляет, заставляя игнорировать важные факторы, что может привести к тяжелым последствиям в будущем.
Важные факторы, которые часто игнорируются:
- код должен быть читабельным и понятным для других программистов
- код должен быть протестирован и отлажен
- код может увеличить дефекты программного обеспечения
- код может вызвать новые ошибки в дальнейшем
Как писал Рич Скрента, код — это наш враг:
Код требует периодической поддерживаемости. Он содержит ошибки, которые необходимо найти, а новые функции предполагают изменение старого кода.
Чем больше кода, тем больше пространства для возникновения ошибок. Больше времени занимает проверка или компиляция. Новому сотруднику сложнее разобраться с системой, а выполнение рефакторинга представляет собой более сложный процесс.
Помимо этого, большее количества кода предполагает снижение гибкости и функциональности.
Инженеры разрабатывают код. Для создания большего количества кода требуется больше инженеров. Инженеры требуют дополнительных расходов, а расширяющий возможности системы код также увеличивает корзину затрат.
Программисты, вдохновляющие своей продуктивностью и образом мышления, знают, когда стоит сказать “нет” и перестать писать код. Легкое в поддержке программное обеспечение, которое будет помогать пользователям долгие годы, не содержит лишних строчек кода.
Лучший программист знает, когда не нужно писать код.
Как узнать, когда не нужно писать код?
При работе над проектом всегда приятно думать о функциях, которые хочется реализовать. Однако программисты часто переоценивают количество необходимых для проекта функций. Работа над многими функциями остается незаконченной, а другие просто не используются или перегружают приложение. Во избежание этой ошибки следует понимать, что именно важно для данного проекта.
Понимание назначения программного обеспечения и его ключевой цели представляют собой первый шаг в осознании того, когда не нужно писать код.
Рассмотрим на примере. Допустим, что ПО обладает одной единственной целью: управление электронными письмами. Отправка и получение писем являются двумя важными функциями для достижения цели этого проекта. Таким образом, необходимо сказать НЕТ любым функциям, не относящимся к данной цели.
Никогда не расширяйте цель программного обеспечения.
Разобравшись в том, какие функции важны для конкретного проекта, можно осознанно оценить необходимые требования по написанию кода. Какую функцию следует реализовать? Какой фрагмент кода стоит написать? Необходимо подвергать сомнению каждую деталь, поскольку ненужный код может убить проект.
Осознание того, когда не нужно писать код, помогает сохранять базу кода маленькой.
В начале работы над проектом существует два или три исходных файла. Компиляция и запуск кода занимают несколько секунд. Необходимые фрагменты кода легко найти.
При росте проекта директорию заполняет большее количество исходных файлов. Каждый файл содержит сотни строчек кода. Для создания организации необходимо множество директорий. Запомнить, какие функции вызывают другие функции, становится тяжелее. Управлять проектами становится сложнее, а для помощи требуется больше программистов. Работа замедляется все сильнее и сильнее.
В конечном счете, проект приобретает огромные размеры. Добавление новых функции становится головной болью. Даже внесение небольших изменений отнимает долгие часы. Исправление существующих ошибок приводит к возникновению новых. Работа остается незаконченной в срок.
В чем причина?
Причина заключается в том, что программист не смог остановиться вовремя и говорил ДА каждой возможной функции.
Одним из самых продуктивных дней в моей работе можно назвать тот день, когда я выкинул 1000 строчек кода. — Кен Томпсон
Любому молодому программисту не терпится начать писать код. Это хорошо. Не теряйте этот настрой, однако не игнорируйте важные факторы. Возможно, чужой опыт поможет вам более осознанно принимать решения.
Продолжай писать код, но не забывай о том моменте, когда стоит остановиться.
Перевод статьи Hüseyin Polat Yürük: The most important skill a programmer can learn
Читайте также: