Jump to content

Код запаха

В компьютерном программировании запах кода это любая характеристика исходного кода программы , которая, возможно, указывает на более глубокую проблему. [1] [2] Определение того, что является запахом кода, а что нет, является субъективным и зависит от языка , разработчика и методологии разработки.

Этот термин был популяризирован Кентом Беком на WardsWiki в конце 1990-х годов. [3] Использование этого термина увеличилось после того, как он был представлен в книге Рефакторинг: улучшение дизайна существующего кода» « Мартина Фаулера в 1999 году . [4] Этот термин также используют гибкие программисты. [5]

Определение

[ редактировать ]

Один из способов взглянуть на запахи — с точки зрения принципов и качества: «Запахи — это определенные структуры в коде, которые указывают на нарушение фундаментальных принципов проектирования и отрицательно влияют на качество дизайна». [6] Запахи кода обычно не являются ошибками ; они не являются технически неправильными и не мешают работе программы. Вместо этого они указывают на недостатки в дизайне, которые могут замедлить разработку или увеличить риск ошибок или сбоев в будущем. Плохой запах кода может быть индикатором факторов, способствующих возникновению технического долга . [1] Роберт К. Мартин называет список запахов кода «системой ценностей» для создания программного обеспечения. [7]

Вопреки этим суровым интерпретациям, первоначальное определение Каннингема заключалось в том, что запах — это намек на то, что что-то не так, а не свидетельство того, что проблема уже существует. [3]

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

Факторами являются такие факторы, как понятность кода, легкость его модификации, легкость его расширения для поддержки функциональных изменений, возможность повторного использования кода в различных настройках, степень тестируемости кода и надежность кода. который можно использовать для идентификации запаха кода. [8]

Исследование 2015 года [1] использование автоматического анализа полумиллиона коммитов исходного кода и ручная проверка 9164 коммитов, в которых было установлено наличие «запаха кода», выявило следующее:

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

Такие инструменты, как Checkstyle , PMD , FindBugs и SonarQube , могут автоматически определять запахи кода.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Туфано, Микеле; Паломба, Фабио; Бавота, Габриэле; Оливето, Рокко; Ди Пента, Массимилиано; Де Люсия, Андреа; Пошиваник, Денис (2015). «Когда и почему ваш код начинает плохо пахнуть» (PDF) . 2015 IEEE/ACM 37-я Международная конференция IEEE по программной инженерии . стр. 403–414. CiteSeerX   10.1.1.709.6783 . дои : 10.1109/ICSE.2015.59 . ISBN  978-1-4799-1934-5 . S2CID   59100195 .
  2. ^ Фаулер, Мартин. «КодЗапах» . martinfowler.com/ . Проверено 19 ноября 2014 г.
  3. ^ Перейти обратно: а б Бек, Кент. «Код пахнет» . ВикиВикиВеб . Уорд Каннингем . Проверено 8 апреля 2020 г.
  4. ^ Фаулер, Мартин (1999). Рефакторинг. Улучшение дизайна существующего кода . Аддисон-Уэсли. ISBN  978-0-201-48567-7 .
  5. ^ Бинсток, Эндрю (27 июня 2011 г.). «Во славу небольшого кода» . Информационная неделя . Проверено 27 июня 2011 г.
  6. ^ Сурьянараяна, Гириш (ноябрь 2014 г.). Рефакторинг для запахов проектирования программного обеспечения . Морган Кауфманн. п. 258. ИСБН  978-0128013977 .
  7. ^ Мартин, Роберт С. (2009). «17: Запахи и эвристика». Чистый код: Руководство по гибкому созданию программного обеспечения . Прентис Холл. ISBN  978-0-13-235088-4 .
  8. ^ Сурьянараяна, Гириш, Ганеш Самартьям и Тушар Шарма. Рефакторинг для запахов проектирования программного обеспечения: Управление техническим долгом / Гириш Сурьянараяна, Ганеш Самартьям, Тушар Шарма. 1-е издание. Уолтем, Массачусетс ; Морган Кауфманн, 2015. Печать.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 84756f4430873e1d2e1dabee8f0a1d6f__1716235500
URL1:https://arc.ask3.ru/arc/aa/84/6f/84756f4430873e1d2e1dabee8f0a1d6f.html
Заголовок, (Title) документа по адресу, URL1:
Code smell - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)