Сегодня попал на один очень интересный гайд. Точнее сайт, посвященный рефакторингу. Советую к прочтению :)
Итак, кратко о чем речь: рефакторинг — это контролируемый процесс улучшения вашего кода, без написания новой функциональности.
Задача рефакторинга: уменьшить технический долг.
Цель рефакторинга: чистый код и простой дизайн.
Чистый код = Простой код
- Чистый код проходит все тесты.
- Чистый код очевиден для других программистов.
- Чистый код не содержит дублирования.
- Чистый код содержит минимум классов и других движущихся частей.
- Чистый код легче и дешевле поддерживать.
- В процессе рефакторинга не создается новая функциональность.
- После рефакторинга все существующие тесты должны успешно проходить.
- После рефакторинга код должен стать чище.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ещё мне нравится текст философии из python:
Это, конечно, не относится напрямую к рефакторингу, но косвенно даже очень =)
А ещё статья «Восемь принципов программирования, которые могут облегчить вам жизнь». Если кратко, то:
* инкапсуляция и делегирование, чтобы приложение было гибким
* принцип открытости закрытости (Open-Closed Principle — OCP) и принцип единственной ответственности (Single Responsibility Principle — SRP) — для повторного использования кода
* использовать паттерны проектирования, чтобы решать задачу эффективно
* использовать UML диаграммы, чтобы понять правильно ли спроектирована программа
* принцип подстановки Барбары Лисков