/ Новости и уроки / Самый важный навык, которому может научиться программист

Самый важный навык, которому может научиться программист

1198
Самый важный навык, которому может научиться программист
Написание кода - это большая часть работы программиста. В жизни разработчика вам придется иметь дело с различными типами код запросами. Каждый запрос заставит вас принимать трудные решения. И это нормально. В этом нет ничего плохого. Это то, чего все ждут от вас, как от программиста: Писать код. Однако, вот вопрос: Стоит ли вам писать весь код, который от вас требуется?

Этот вопрос подводит нас к самому важному навыку, который может выучить программист:

Знание того, когда не следует кодить, возможно, является самым важным навыком, которому может научиться программист. - Искусство читать код - «Читаемый код, или Программирование как искусство»

Я не мог не согласиться с этим. А почему так?

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

И это нормально, потому что мы программисты. Мы любим писать код.

Однако чрезмерное увлечение написания кода делает нас слепыми. Это заставляет нас игнорировать некоторые важные факты, которые могут привести к большим проблемам, с которыми нам придется иметь дело в будущем.

Итак, что же это за важные факты, которые мы склонны игнорировать?

Каждая строчка кода, которую вы пишете это:

1) код, который должен быть прочитан и понятен другим программистам.

2) код, который должен быть проверен и отлажен

3) код, который увеличит количество дефектов в вашем приложении

4) код, который, вероятно, приведет к появлению новых ошибок в будущем

Как писал Ричард Скрента, код - наш враг:

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

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

Кроме того, больше кода часто означает меньшую гибкость и функциональность. Это контр-интуитивно, но во многих случаях простое, элегантное решение оказывается быстрее и более общим, чем неуклюжая путаница кода, создаваемая программистом с меньшим талантом.

Код создается инженерами. Чтобы написать больше кода, требуется больше инженеров. Инженеры имеют n? затраты на коммуникацию, и весь этот код, который они добавляют в систему, одновременно расширяя ее возможности, также увеличивает целую корзину затрат.

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

Лучший код - это вообще не код, а самый эффективный программист-это тот, кто знает, когда не нужно кодить.

Как понять, когда не нужно кодить?

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

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

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

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

Никогда не расширяйте главную цель вашего приложения.

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

Знание того, когда не стоит кодить, держит вашу базу c кодом маленькой.

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

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

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

Теперь, жизнь для вас - это борьба. Почему?

Поскольку вы не знали, когда не стоит кодить, вы сказали "ДА" каждой функции, которые вы хотели воплотить. Ты был слеп. Программирование чего-то нового заставило вас игнорировать существенные факты.

Это как в фильме ужасов, да?

Вот что случится, если ты будешь продолжать говорить "ДА" всему. Точно знай, когда не нужно кодить. Исключите весь ненужный код из вашего проекта. Это облегчит вашу жизнь и сделает ваше приложение более долговечным.

Одним из моих самых продуктивных дней было удаление 1000 строк кода. - Кен Томпсон

Я знаю, что понимание, когда не стоит кодить, очень трудно. Даже для senior программистов.

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

Продолжайте кодить, но знайте, когда сказать "нет" программированию.