Запахи кода — это то, с чем сталкиваются все разработчики. Мы хотим, чтобы вы знали о них. Давайте узнаем, что они собой представляют и как их остановить.

Если Глупость втянула нас в эту передрягу, то почему она не может нас вытащить?
Уилл Роджерс

Я помню часть своего самого раннего Java-кода, который я написал. Это была довольно грубая вещь. Как только кто-то упомянул о запахах кода, и я немного почитал, я понял, что я главный нарушитель!

Код Запахи

Согласно Википедии Код Запаха это:

В компьютерном программировании запах кода — это любая характеристика исходного кода программы, которая может указывать на более глубокую проблему.

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

вздутия живота

Кори был персонажем, с которым я работал много лет назад. Ему нравилось подшучивать над ошибками других. Был один класс, которого коснулось много рук, и он вырос до размера романа. Он распечатал файл и склеил его вместе снаружи своего куба. Это привлекло внимание людей, но у него не было много друзей. Это был пример «раздутия». Мы начинаем с добрых намерений, а затем кто-то добавляет несколько строк тут и там. Вскоре он стал слишком большим! Это может быть большой класс или очень длинный метод.

ОО Злоумышленники

В языке Java есть оператор switch. Для объектно-ориентированного дизайна это обычно признак ленивого дизайна. Лучше удалить его и создать метод для обработки этого. Другой вариант — заменить код типа подклассом. Это может быть отличным местом для использования полиморфизма для обработки изменений.

Препятствующие изменениям

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

расходные материалы

Если вы когда-нибудь видели эпизод шоу Скупцы на канале A&E Network, вы поймете, что такое необязательные элементы в коде. Программисты могут неохотно удалять код. Думайте об этом как о цифровой упаковке! Когда функция больше не используется, нам нужно удалить ее, а не хранить как произведение искусства.

Муфты

Моя жена любит смотреть Холостяк на ABC. У них есть формула дам, которые сближаются с Бакалавром, а затем вызывают драму среди конкурсанток. Если вашим классам нужно делиться друг с другом слишком большим объемом информации, возможно, пришло время провести рефакторинг. Давай, будь профессионалом, пожалуйста.

Каждый разработчик проводит много времени на Stackoverflow.com. Один из основателей Джефф Этвуд, который время от времени ведет блог на CodingHorror, также поделился некоторыми хорошими рекомендациями по запахам кода.

Комментарии

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

Длинный метод

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

Дублированный код

Это мой личный фаворит. Я когда-то работал в компании, у которой был один и тот же метод в 142 разных местах одной и той же кодовой базы. Я был просто потрясен! Поместите это в одном месте и не повторяйтесь! (также известный как СУХОЙ принцип)

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

Какие запахи кода вы видели?