Ваш код воняет. Вот что вы можете с этим сделать.

От людей воняет. Нечего стыдиться: это неизбежное следствие нашей животной природы.

Но люди стремятся быть больше, чем животные.

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

На протяжении тысячелетий мы пытались создать мир, свободный от вони. От изобретения мыла и зубной пасты до Yankee Doodle Candle Co. и Febreze - наши мыла, свечи и спреи теперь позволяют нам избавляться от пищевых отходов и промышленного мусора с запахом горных дождевых капель и сахарного печенья.

И все же с каждым нововведением мы находим новый способ вонять.

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

С нашим развитием мы принесли с собой зловоние - как и всегда. Мы создали информационный век.

И мы создали информационную вонь.

Мне выпить это?

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

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

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

Кент Бек и Мартин Фаулер определяют запах кода как поверхностный признак, который обычно соответствует более глубокой проблеме в системе.

Гав.

Более простая версия состоит в том, что вонючий код заставляет вас говорить «это не кажется правильным», когда вы на него смотрите. Пахнущий код напоминает молоко на пороге. Похоже, может быть в порядке, но кажется, что он немного "выключен".

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

Учимся нюхать

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

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

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

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

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

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

Технологии также могут спасти вас от запахов. У тебя есть дезодорант? В вашей IDE на сегодняшний день может не быть подключаемого дезодоратора. Но могло! Статический анализ кода и инструменты линтинга освежают ваш код, чтобы он не стал слишком вонючим.

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

Кто бы это ни почувствовал…

Давайте посмотрим правде в глаза. Другие люди заметят вашу вонь задолго до вас. По сути, это первое правило общества. Сначала люди начали объединяться в группы, чтобы получить возможность издеваться над другими людьми. Это археологический факт ™. Моя жена - археолог, и я на 100% уверен, что она нащупала лицо, прочитав это.

Лучший способ найти и исправить неприятные места в вашем коде - это обсудить его с другими людьми. Партнерская проверка кода имеет много преимуществ. Первое преимущество состоит в том, что вы раздражаете своих коллег. Вы сразу поймете, насколько плохо было написано ваше первое усилие, по стонам тревоги, разносящимся по офису после того, как вы нажмете «отправить запрос на перенос».

Еще один отличный способ уменьшить неприятный запах - изучить чужой код. С удовольствием указывайте на их недостатки и изъяны! Затем спокойно осознайте, что вы все время делаете одни и те же ошибки. Взаимодействие с хорошей системой рецензирования поможет вам стать лучшим разработчиком быстрее, чем что-либо еще.

Но что, если у вас нет коллег или друзей, и вы проводите дни за написанием кода в одиночестве в темном подвале? Что ж, дорогой фрилансер без друзей, сейчас самое время начать участвовать в open source. FreeCodeCamp - отличное место для начала.

Заключение

Никто не хочет вонять. И не обязательно. Вонь от программирования похожа на все остальные: с ней можно справиться, немного соблюдая правила гигиены.

Пришло время изучить ваш процесс кодирования. Это итеративно? Вы хотите получить отзывы от других? Используете ли вы бесплатные инструменты для проверки кода на «грамматические» ошибки? Вы тестируете?

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

Необязательно открывать их все самостоятельно. Прочтите об известных запахах кода и методах рефакторинга.

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

Ваш нос будет вам благодарен.

Пожалуйста, дайте мне знать, понравилась ли вам эта статья!