Про отношение к своему плохому коду
Зацепляла эту тему в чате джунов, и поняла, что стоит оформить ее в пост. Расскажу на примере собственного кода, но техника применима и к чужому плохому коду, и вообще не к коду, а к любому другому неудовлетворительному результату тоже.
Первый порыв, когда видишь, что наговнокодил - быстро все зачистить и переписать нормально. В терминальной стадии, которую я тоже проходила, это означало - выкинуть, например, пет-проект и сделать заново. Или вообще все удалить. Так у меня, фактически, не осталось портфолио с фриланса: задним числом решила, что проекты хреновые, и в порыве самоуничижения все снесла. Очень теперь жалею.
Сейчас хочу сказать вот что. Первое правило клуба анонимных перфекционистов: "не кидайся ничего менять и, тем более, удалять. Дай себе время".
Потратить это время надо на анализ. Взять блокнот/пустой файл/что угодно еще для записи и превращать "мне всё не нравится" в пункты, с которыми дальше можно работать в таком формате для каждого пункта:
1️⃣ что не нравится конкретно?
2️⃣ почему не нравится?
3️⃣ как будем исправлять? (1-3 варианта)
Почему это полезно:
🟢 у вас на руках будет внятная картина слабых мест модуля/фичи/проекта. Это сразу сместит фокус с "кошмар и ужас" на план улучшения;
🟡 этот план можно обдумать, приоритизировать, какие-то пункты сгруппировать, какие-то выкинуть, и приступить к нему итеративно;
🟣 каждый пункт плана можно смаппить на известные вам бест-практисы и закрепить их на практике. Мало просто абстрактно знать хорошие подходы, вот когда вы вляпаетесь и отшибете себе жопу, тогда станет понятно, почему эти подходы из статей и книг, и правда, хорошие;
🔵 это спасет ваше портфолио и не даст вам попасть в порочный круг: "что-то создал - удалил - создал - удалил - пустой гитхаб, нечего показать";
🟢 эта привычка очень поможет вам на работе, когда "всё посолить и сжечь" никто вам не даст, и надо будет разбираться с техдолгом по кусочкам;
Только не надо, пожалуйста, тратить на такую историю вечность. Побрейнштормили часок-два, выбрали приоритетные пункты, разобрались с ними и запустили, если нужно, вторую итерацию. Иначе есть риск закопаться и так ничего и не починить.
Всем хорошего рефакторинга, господа!
💳 поддержать мои дайджесты, лонгриды и просто задонатить на кофе - 5536913954129132 (Тиньк)
Зацепляла эту тему в чате джунов, и поняла, что стоит оформить ее в пост. Расскажу на примере собственного кода, но техника применима и к чужому плохому коду, и вообще не к коду, а к любому другому неудовлетворительному результату тоже.
Первый порыв, когда видишь, что наговнокодил - быстро все зачистить и переписать нормально. В терминальной стадии, которую я тоже проходила, это означало - выкинуть, например, пет-проект и сделать заново. Или вообще все удалить. Так у меня, фактически, не осталось портфолио с фриланса: задним числом решила, что проекты хреновые, и в порыве самоуничижения все снесла. Очень теперь жалею.
Сейчас хочу сказать вот что. Первое правило клуба анонимных перфекционистов: "не кидайся ничего менять и, тем более, удалять. Дай себе время".
Потратить это время надо на анализ. Взять блокнот/пустой файл/что угодно еще для записи и превращать "мне всё не нравится" в пункты, с которыми дальше можно работать в таком формате для каждого пункта:
Почему это полезно:
Только не надо, пожалуйста, тратить на такую историю вечность. Побрейнштормили часок-два, выбрали приоритетные пункты, разобрались с ними и запустили, если нужно, вторую итерацию. Иначе есть риск закопаться и так ничего и не починить.
Всем хорошего рефакторинга, господа!
💳 поддержать мои дайджесты, лонгриды и просто задонатить на кофе - 5536913954129132 (Тиньк)