Objective: Provide specific refactoring recommendations based on the analysis of code evolution and historical data. Focus on areas where past code changes, churn, or technical debt indicate a need for improvement.
Instructions:
- Review code evolution analysis: Consider the results from code churn analysis, technical debt estimation, and other historical code assessments.
- Identify refactoring opportunities: Look for areas where:
- Code churn is consistently high, indicating potential design flaws or areas that are difficult to maintain.
- Technical debt has accumulated, making the code hard to understand or modify.
- Architectural inconsistencies have emerged over time due to various changes and additions.
- Suggest specific refactoring actions: Provide concrete recommendations, such as:
- Extracting methods or classes to improve code organization and reduce complexity.
- Applying design patterns to improve flexibility and maintainability.
- Removing code smells or anti-patterns.
- Prioritize recommendations: Rank the suggestions based on:
- Their potential impact on code quality and maintainability.
- The feasibility and effort required to implement them.
Expected Output: A prioritized list of refactoring recommendations that:
- Clearly identifies the specific areas of the codebase that need improvement.
- Provides specific refactoring actions to be taken (e.g., "Extract Method", "Apply Strategy Pattern").
- Explains the rationale behind each recommendation and the expected benefits.