Кодовый запах


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

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

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

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

Исследование, проведенное в 2015 году [1] с использованием автоматического анализа полумиллиона коммитов исходного кода и ручной проверки 9 164 коммитов, в которых были обнаружены «запахи кода», показало, что: