Закоулки мозга

[@McConnell2004]

Входит в Код ревью Код ревью

Общие вопросы

  • Достаточна ли причина создания метода?
  • Все ли части метода, которые целесообразно поместить в отдельные методы, сделаны отдельными методами?
  • Имеет ли имя процедуры вид “выразительный глагол + объект”? Описывает ли имя функции возвращаемое из нее значение?
  • Описывает ли имя метода все выполняемые в методе действия?
  • Задали ли вы конвенции именования часто выполняемых операций?
  • Имеет ли метод высокую функциональную связность? Решает ли он только одну задачу и хорошо ли он с ней справляется?
  • Имеют ли методы слабое сопряжение? Являются ли связи метода с другими методами малочисленными, детальными, заметными и гибкими?
  • Обусловлена ли длина метода его ролью и логикой, а не искусственным стандартом кодирования?

Передача параметров

  • Формирует ли в целом список параметров метода согласованную абстракцию интерфейса?
  • Разумно ли упорядочены параметры метода? Соответствует ли их порядок порядку параметров аналогичных методов?
  • Документированы ли выраженные в интерфейсе предположения?
  • Метод имеет семь параметров или меньше?
  • Все ли входные параметры используются?
  • Все ли выходные параметры используются?
  • Не используются ли входные параметры в качестве рабочих переменных?
  • Если метод является функцией, возвращает ли он корректное значение во всех возможных случаях?

Ключевые моменты

  • Самая важная, но далеко не единственная причина создания методов — улучшение интеллектуальной управляемости программы. Сокращение кода — не такая уж и важная причина; повышение его удобочитаемости, надежности и облегчение его изменения куда важнее.
  • Иногда огромную выгоду можно извлечь, создав отдельный метод для простой операции.
  • Связность методов можно разделить на несколько видов. Самая лучшая — функциональная — достижима практически всегда.
  • Имя метода является признаком его качества. Плохое, но точное имя часто указывает на плохое проектирование метода. Плохое и неточное имя не описывает роль метода. Как бы то ни было, плохое имя предполагает, что программу нужно изменить.
  • Функцию следует использовать, только когда главной целью метода является возврат конкретного значения, описываемого именем функции.
  • Добросовестные программисты используют методы-макросы с осторожностью и только в крайнем случае.