Введение
Данная статья является настольным чек-листом при рефакторинге когда, который я и моя команда использует. Не призываю никого использовать его, а только знакомлю. Использовать его или нет, частично или полностью - полностью дело читателя. Рекомендуется первоначально ознакомиться с предыдущими статьями (хотя бы со второй).
Ссылки
Сводка правил, чек лист
Комментарии
К1: Неуместная информация
В комментариях неуместно размещать информацию, которую удобнее хранить в других источниках.
К2: Устаревший комментарий
К3: Избыточный комментарий
К4: Плохо написанный комментарий (непонятный, не поясняющий)
К5: Закомментированный код
Функции
Ф1: Слишком много аргументов
Ф2: Выходные аргументы в методах (используйте возврат)
Ф3: Флаги в аргументах в методах (больше 1 действия в методе)
Ф4: Мертвые функции (не вызывающиеся нигде)
Разное
Р1: Некорректное граничное поведение
Р2: Очевидное поведение не реализовано
Р3: Дублирование
Р4: Код на неверном уровне абстракции
Р5: Слишком много информации
Чем меньше экспортных методов – тем проще программный интерфейс. Минимум экспортных методов для максимум эффективности.
Р6: Мертвый код (не выполняется в теле программы)
Р7: Вертикальное разделение
Р8: Непоследовательность
Если некая операция выполняется определенным образом, то и все похожие операции должны выполняться так же.
Р9: Балласт (Мусор, неисполняемый код, неиспользуемые переменные)
Р10: Непонятные намерения
Р11: Используйте пояснительные переменные
Р12: Имена функций должны описывать выполняемую операцию
Р13: Понимание алгоритма
Очень много странного кода пишется из-за того, что люди не утруждают себя пониманием алгоритмов.
Р14: Заменяйте «волшебные числа» именованными константами и переменными
Р15: Будьте точны
Наивно ожидать, что первая запись, возвращаемая по запросу, является единственной и подобное.
Р16: Инкапсулируйте условные конструкции
Выделяйте сложные условия в отдельные методы.
Р17: Функции должны выполнять одну операцию
Имена
И1: Используйте содержательные имена
И2: Выбирайте имена на подходящем уровне абстракции
И3: По возможности используйте принятые в отрасли термины
И4: Недвусмысленные имена
И5: Используйте длинные имена для длинных областей видимости
И6: Избегайте кодирования
И7: Имена должны описывать побочные эффекты
Для чего файл
В файле находится полный текст всех статей + чек-лист с комментариями. Именно этот файл мы используем для подготовки специалистов и проведения рефакторинга. Если хотите поддержать автора - можете приобрести файл.