Как разработчик я признаю, что редко заглядываю в свои прошлые работы. Что я могу сказать? Я всегда занят поиском следующего. Я заканчиваю проект или идею и оставляю ее. Я достигаю вершины и наслаждаюсь своим достижением. Однако я никогда не думаю, что вернусь на тот саммит. Признаюсь, это одна из моих ошибок. Я всегда занят поиском следующего предмета, который я хочу попробовать или узнать. Однако недавно я выделил время, чтобы улучшить свой старый код, в частности проект НЛП, над которым я работал 2 месяца назад. Этот блог будет записывать это. Спойлеры: это была уродливая поездка, и я как разработчик узнал о себе больше, чем отрефакторный код.

Уборка кладбища 💀⚰️

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

Придется псевдокодировать мой прошлый проект! 🤷‍♂🤯

Хотел бы я сказать, что это была худшая из моих привычек в прошлом. Как я вскоре обнаружил, мое прошлое вернется и снова укусит меня. На этот раз в форме без комментариев. Для проекта, который был невероятно напряженным, и мне потребовалась неделя, чтобы понять, как это сделать, как вы думаете, я запомню больше. Неа! Я вспомнил обрывки и фрагменты, но на самом деле это только вбило гвоздь, когда я псевдокодировал то, что они делали. В дополнение к этому, я попросил нескольких моих коллег прочитать его, чтобы посмотреть, понимают ли они, что это должно было делать. Если мне приходилось им что-то объяснять, я обязательно добавлял это в виде примечания или перефразировал, чтобы логику было легче понять. Убил двух зайцев одним выстрелом, так как это также укрепило мои знания о том, как работают эти функции!

Моему будущему:

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

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

Чтобы увидеть, что я переделал: