Рефакторинг кода
Рефакторинг — это контролируемый процесс улучшения вашего кода, без написания новой функциональности или, говоря другими словами, рефакторинг — это процесс улучшения написанного ранее кода путем такого изменения его внутренней структуры, которое не влияет на внешнее поведение. Рефакторинг кода это один из важнейших процессов в программировании. Неважно на каком языке вы пишете, но если ваша программа имеет внушительный объем кода, то рано или поздно вы придете к тому, что рефакторинг необходим.
Задача рефакторинга — уменьшить технический долг.
Результат рефакторинга — чистый код и простой дизайн.
Чистый код = Простой код
- Чистый код проходит все тесты.
- Чистый код очевиден для других программистов.
- Чистый код не содержит дублирования.
- Чистый код содержит минимум классов и других движущихся частей.
Чистый код легче и дешевле поддерживать.
- Недостатки кода
- Повторяющийся код
- Пучки данных
- Цепочки вызовов
- Длинный метод
- Мания примитивизма
- Промежуточный сервер
- Большой класс
- Операторы выбора
- Излишняя интимность
- Длинный список параметров
- Параллельные иерархии наследования
- Альтернативные классы с разными интерфейсами
- Различное изменение класса
- Ленивый класс
- Неполный библиотечный класс
- Изменение многих классов
- Спекулятивная общность
- Класс данных
- Зависть к чужим членам
- Временное поле
- Отказ от наследства
- Рефакторинг: Составление методов
- Рефакторинг: Перемещение членов между объектами
- Рефакторинг: Упрощение условных выражений
- Рефакторинг: Организация данных
- Внутренняя инкапсуляция
- Дублирование данных пользовательского интерфейса
- Замена записи на класс
- Замещение поля объектом
- Замена однонаправленной связи на двунаправленную
- Замена кодирования типа классом
- Замена встроенного объекта на связанный
- Замена двунаправленной связи на однонаправленную
- Замена кодирования типа подклассами
- Замена связанного объекта на встроенный
- Инкапсулирование поля
- Замена кодирования типа состоянием/стратегией
- Замена массива на объект
- Инкапсулирование коллекции
- Замена подкласса полем
- Рефакторинг: Упрощение вызовов методов
- Переименование метода
- Замена параметра набором методов
- Скрытие метода
- Добавление параметра
- Передача объекта целиком
- Замена конструктора на метод фабрики
- Избавление от параметра
- Замена параметра вызовом метода
- Скрытие приведения типов
- Разделение аксессора и модификатора
- Введение объекта параметров
- Замена кода по выявлению ошибок на возбуждение исключения
- Введение параметра
- Избавление от метода установки значений
- Замена исключения на проверку условия
- Рефакторинг: Работа с обобщениями
Комментарии