Как грамотно избавиться от кода с запашком: 8 простых шагов
Код с запашком — это термин, который обозначает код с признаками проблем в системе. Один из самых распространенных способов избавиться от него — переписать, но, по словам разработчика Дэна Уиллоуби, если подойти к процессу неправильно, можно потратить целый день, но так ничего и не улучшить. За десять лет в индустрии специалист понял, что устранять ошибку нужно постепенно. Как это сделать, он написал в своем блоге.
Часто код с запашком появляется во время выполнения простой задачи, когда вы пытаетесь потратить на нее как можно меньше времени.
Например, я делаю что-то простое, скажем, добавляю еще одно поле в форму. Я быстро добавляю какой-то код, потому что мне кажется, что так проще всего, и отправляю фичу в продакшен. У меня же куча дел, мне некогда.
Но потом, на пятый или шестой час, когда я топчусь на одном и том же месте, я понимаю, что если бы переписал нужный код раньше, я бы сэкономил время.
Код с запашком — это очень неорганизованный код. Его всегда первым делом хочется переписать самому, потому что тогда он станет для тебя понятнее. Но нет гарантии, что в нем разберется другой разработчик.
Как и с профилированием кода для поиска самого медленного места, нужно искать место, которое больше всего пахнет. Есть ли в коде участки, на которых разработчики-новички постоянно стопорятся?
Создание перечня кода с запашком поможет определить, какие участки кода требуют наибольшего внимания.
Код с запашком — как грязная посуда. Пока от нее не избавишься, в доме будет стоять неприятный запах. Можно винить всю посуду, которая есть в квартире, но среди нее ведь есть и чистая, которую мыть не нужно.
Когда в коде есть гнилой кусок, высока вероятность, что он будет спрятан где-то глубоко. Например, это может быть абстракция, которая разбросала сотню строк кода по десяткам файлов.
При поиске кода с запашком надо помнить, что цель — исправить самый проблемный участок, большую часть остального кода вообще не нужно трогать.
Возможно, самое трудное в улучшении кодовой базы — не вылезать за рамки одной проблемы. Когда появляется возможность навести порядок, уже трудно остановиться. Возникают мысли: «Раз уж я взялся за дело, надо почистить все».
Сопротивляйтесь! Не делайте этого.
Если хвататься за все, вы никогда не закончите. К тому же есть риск не пройти код-ревью. Лучше делать по одному участку за раз.
Код с запашком не всегда нужно исправлять. Иногда начинаешь переписывать код и только тогда понимаешь, почему он был написан именно так. Это могло быть сознательное решение вашего коллеги или даже ваше, причем не обязательно глупое. Если наткнетесь на такие фрагменты, оставьте их в покое.
С кодом с запашком сложно работать. Не расстраивайтесь, если текущий код далек от совершенства. Главное, что код есть и вы знаете, какие фрагменты нужно править, а какие нет. Важно не сдаваться, ведь решение может быть совсем рядом.
По словам автора, он продолжает думать о том, как улучшить код, даже когда гуляет или делает перерыв. Решение может прийти в любой момент.
Код с запашком требует внимания. И здесь может помочь метод утенка. Это способ решения задачи, при котором вы объясняете игрушечному утенку все ваши действия. В процессе можно выяснить, что вы что-то упустили из виду.
Если утенка под рукой нет, можно прибегнуть к помощи коллег по работе.
Код с запашком можно улучшить. Итогом будет или исправленный код или провал. Если первое — останется только внести изменения и расслабиться. Если второе, то можно зафиксировать проблему в ветке и вернуться к ней позже. Когда что-то не получается сразу — это нормально.
По словам Дэна Уиллоуби, выполнение этих шагов помогает постепенно улучшить код. Иногда на все этапы может уйти несколько минут, а иногда они могут занять несколько недель, но нет ничего лучше, чем наконец-то избавить код от запашка и залить в продакшен.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…