Welcome to the Anti-Pattern Analysis in Code Bases project!

This project aims to provide tools and methodologies for identifying and addressing common anti-patterns in software development. By analyzing code bases, we aim to catch potential deadlocks, performance issues, and unnecessary code snippets that can impede maintainability, scalability, and overall software quality.
-
Clone the repository:
git clone https://github.com/DigitalProductInnovationAndDevelopment/Anti-Pattern-Analysis.git
-
Navigate to the project directory:
cd Anti-Pattern-Analysis
-
Install dependencies:
mvn install
-
Navigate to the plugin directory:
cd plugin
-
Add the created plugin to your IDE following IntelliJ documentation
-
(Optional) Generate monitoring(or sampling) data for dynamic analysis Sampling documentation
-
Open the plugin tab and provide the config
projectDirectory: Directory of the project to be analysed, retrieved automatically by the plugin
thirdPartyMethodPaths: Array of directory paths that contain 3rd party method calls such as DB interactions or HTTP Requests
exclusions(optional): The packages, classes or methods that shall be excluded while doing the analysis, supports pattern matching
snapshotCsvFilePath(optional): Path to the .csv file containing monitoring(or sampling) data. This data is used to run the dynamic analysis. Dynamic analysis step is skipped if this is not provided
methodExecutionThresholdMs: The threshold value in milliseconds. Used during dynamic analysis to determine if the execution time of a method is taking too long
-
Run the analysis
- For Tool development: branch from and merge into the
tool
branch - For Plugin development: branch from and merge into the
plugin
branch - Use descriptive branch names, e.g.,
feature/fehmi-tool-new-detector
orbugfix/name-plugin-ui-crash
Follow the Conventional Commits specification to aid in automatic changelog generation and versioning.
- Create a Pull Request (PR) when your feature or fix is ready for review
- Ensure all tests pass and code meets the project's quality standards
- Request reviews from team members
GitHub Actions will automatically run on your PR, checking build status, tests, and generating coverage reports. Review the CI/CD output in your PR before merging.