Refactor
Систематичний рефакторинг коду на основі методології Мартіна Фаулера.
Install
npx skills add luongnv89/claude-howto --skill refactor -g -a claude-code -y- Repository
- luongnv89/claude-howto46.4k
- Category
- Engineering
- Updated
- 7d ago
- License
- MIT
- Context cost
- Mediumabout 2,983 tokens
- Runs scripts
- Yes, review before use
What it does
Систематичний рефакторинг коду на основі методології Мартіна Фаулера. Використовуйте, коли користувачі просять рефакторити код, покращити структуру коду, зменшити технічний борг, очистити застарілий код, усунути запахи коду (code smells) або покращити супровідність коду. Ця навичка проводить через поетапний підхід з дослідженням, плануванням та безпечною інкрементальною реалізацією.
Навичка рефакторингу коду
Систематичний підхід до рефакторингу коду на основі книги Мартіна Фаулера Refactoring: Improving the Design of Existing Code (2-ге видання). Ця навичка наголошує на безпечних, інкрементальних змінах, підкріплених тестами.
«Рефакторинг, це процес зміни програмної системи таким чином, що не змінює зовнішню поведінку коду, але покращує його внутрішню структуру.», Мартін Фаулер
Основні принципи
- Збереження поведінки: Зовнішня поведінка повинна залишатися незмінною
- Малі кроки: Робити крихітні, тестовані зміни
- Тест-орієнтованість: Тести, це страхувальна сітка
- Безперервність: Рефакторинг, постійний процес, а не одноразова подія
- Співпраця: Затвердження користувача потрібне на кожній фазі
Огляд робочого процесу
Фаза 1: Дослідження та аналіз
↓
Фаза 2: Оцінка покриття тестами
↓
Фаза 3: Виявлення запахів коду
↓
Фаза 4: Створення плану рефакторингу
↓
Фаза 5: Інкрементальна реалізація
↓
Фаза 6: Перегляд та ітерація
Фаза 1: Дослідження та аналіз
Цілі
- Зрозуміти структуру та призначення кодової бази
- Визначити обсяг рефакторингу
- Зібрати контекст про бізнес-вимоги
Запитання до користувача
Перед початком уточніть:
- Обсяг: Які файли/модулі/функції потребують рефакторингу?
- Цілі: Які проблеми ви намагаєтесь вирішити? (читабельність, продуктивність, супровідність)
- Обмеження: Чи є зони, які НЕ слід змінювати?
- Тиск термінів: Чи блокує це іншу роботу?
- Стан тестів: Чи існують тести? Чи проходять вони?
Дії
- Прочитати та зрозуміти цільовий код
- Виявити залежності та інтеграції
- Задокументувати поточну архітектуру
- Зафіксувати існуючі маркери технічного боргу (TODOs, FIXMEs)
Вивід
Представити знахідки користувачу:
- Резюме структури коду
- Виявлені проблемні зони
- Початкові рекомендації
- Запросити затвердження для продовження
