На этой неделе я читал последнюю главу «Чистого кодера» под названием «Запахи и эвристика». Эта глава действительно заставила меня задуматься о своих привычках как разработчика и о том, что мне следует делать, чтобы избавиться от них. Основываясь на отзывах моего наставника и собственном рефакторинге, я заметил определенные шаблоны, возникающие в моем коде Clojure.

Я думаю, что лучший способ стать лучше как разработчик — это тщательно проанализировать свой собственный код и посмотреть на общие подходы, которые вы часто используете. Единственный способ стать лучше — следить за своим дизайном и пытаться избавиться от своих привычек. Один из моих самых больших запахов кода в Clojure — наличие большого количества аргументов в моих функциях. Из-за отсутствия состояния в Clojure я обнаружил, что упаковываю все возможные детали в свои функции. Для меня это огромный запах.

Два других основных запаха — это использование мной магических чисел и строк. Хотя я знаю твердые принципы, я склонен исправлять свои закрытые функции, как будто зависимые установки никогда не изменятся. Глядя на более высокий уровень, такие проекты кричат, что я должен учитывать долгосрочные последствия моего кода, пока я в процессе разработки.

Мой последний запах будет связан с логическими операциями и условными выражениями. В таких сценариях я часто сразу перехожу к операторам if/else. Это кричит мне, что я плохо владею библиотекой Clojure и доступными функциями.

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

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