Про отношение к своему плохому коду



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



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



Сейчас хочу сказать вот что. Первое правило клуба анонимных перфекционистов: "не кидайся ничего менять и, тем более, удалять. Дай себе время".



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



1️⃣ что не нравится конкретно?



2️⃣ почему не нравится?



3️⃣ как будем исправлять? (1-3 варианта)



Почему это полезно:



🟢 у вас на руках будет внятная картина слабых мест модуля/фичи/проекта. Это сразу сместит фокус с "кошмар и ужас" на план улучшения;



🟡этот план можно обдумать, приоритизировать, какие-то пункты сгруппировать, какие-то выкинуть, и приступить к нему итеративно;



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



🔵 это спасет ваше портфолио и не даст вам попасть в порочный круг: "что-то создал - удалил - создал - удалил - пустой гитхаб, нечего показать";



🟢 эта привычка очень поможет вам на работе, когда "всё посолить и сжечь" никто вам не даст, и надо будет разбираться с техдолгом по кусочкам;



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



Всем хорошего рефакторинга, господа!



💳 поддержать мои дайджесты, лонгриды и просто задонатить на кофе - 5536913954129132 (Тиньк)