Все началось с забавного поста, который я прочитал на Stackoverflow.
Наткнулся на StackOverflow на какую-то дуру, которая, мол, сначала абы код пишешь, потом много комментируешь. Надеваешь формальные конструкции, потом еще что-то, а на вершине профессионального роста — снова. Я хихикнула, а потом подумала о том, как это было. Так и случилось.
Самое начало: если бы это работало
Когда человек только начинает осваивать кодирование, его главный принцип звучит так: лишь бы работало и запускалось. Из-за этого все идет подряд:
- готовые фрагменты кода из StackOverflow;
- примеры из материалов и учебников;
- избыточные и громоздкие конструкции;
- переменные, которые объявлены, но никогда не используются.
Код либо выглядит предельно просто и «в лоб», либо состоит из бредовых конструкций и решений, в которых крайне сложно разобраться.
На этом этапе полезно изучение лучших практик программирования, подключение готовых библиотек и применение проверенных паттернов и алгоритмов. Итак, разработчик переходит к следующему этапу.
Правильный код
Через какое-то время программист набивает руку и начинает писать «правильный код»:
- использовать стандартное форматирование;
- оставляйте комментарии себе, чтобы помнить, почему это было сделано именно так;
- использовать встроенные возможности языка и не придумывать, например, свой способ работы с классами или массивами;
- выбирайте имена всех переменных, классов и методов в едином стиле, как это принято в этом языке программирования.
Обычно на этом этапе программист полностью понимает язык и может использовать все его возможности. Но затем он узнает о библиотеках и фреймворках.
Код выглядит как пример программирования: идеальные комментарии и все логично и гармонично. Ни одно отдельное решение не вызовет вопроса: «Почему это делается именно так».
Библиотеки и фреймворки
Поначалу программисту хватает встроенных возможностей языка, но со временем. Он понимает, что некоторые задачи можно решить быстрее и проще с помощью внешних библиотек. И вот где это начинается:
- Поиск лучшей библиотеки и фреймворка;
- куски чужого кода в вашей программе, скопированные из блога разработчика фреймворка;
- переписывание старых программ под новый фреймворк.
Если увлечься, то доходит до того, что программист берется за задачу только после того, как найдет для нее конкретный фреймворк. Если это JavaScript-программист, то на этом этапе он может зависнуть на годы или навсегда — каждую неделю выходят новые js-фреймворки.
Код выглядит как хакерский код из фильмов: сложные конструкции, понятные лишь избранным, неочевидные решения, продиктованные логикой фреймворка, и множество команд из внешних библиотек.
Совместимость, сообщество и внешние службы
К этому моменту разработчик уже имеет большой опыт:
- умеет решать большинство проблем, возникающих в разработке;
- знает, что и как применять для получения желаемого результата;
- его код работает сразу и почти без ошибок.
Когда программист достигает этого уровня, он понимает, что личное и самостоятельное развитие — это серьезно. Тем не менее, отличные продукты нуждаются в поддержке извне, совместимости с другими сервисами и возможности работы с API.
В код добавляются функции для поддержки всех этих возможностей, он разрастается и становится трудным для понимания. Также код обрастает различными манифестами, декларациями, лицензиями, открытой и закрытой частями, поддержкой внешних сервисов.
15 лет практики: если бы это сработало
После многих лет непрерывной практики программист понимает, что все это суета и тлен, а задачи можно решать гораздо доступнее. Он стал настолько осведомлен, что ему больше не нужно думать о совместимости, библиотеках или именах переменных.
Все, что делает программист на этом этапе — пишет рабочий код так, как ему удобно.
При этом в его коде можно найти следующее:
- фрагменты кода из StackOverflow, потому что это быстрее;
- однобуквенные переменные, потому что так проще;
- избыточные команды, потому что он быстрее, а при компиляции компьютер все равно его оптимизирует;
- Один-два комментария на весь код, потому что остальное и так понятно. Что еще тут объяснять?
Код на этом последнем шаге выглядит почти так же, как код на первом шаге, за одним исключением: в отличие от новичка, этот программист имеет полное представление о мире. Он ищет здесь только одного — покоя, покоя и этой гармонии от слияния с бесконечно вечным, от созерцания этого замечательного фрактального сходства и этого невероятного единства бытия.
Подпишитесь на DDIntel Здесь.
Посетите наш сайт здесь: https://www.datadriveninvestor.com
Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate