DigitalProductInnovationAndDevelopment / Anti-Pattern-Analysis

This project aims to provide tools and methodologies for identifying and addressing common anti-patterns in software development.
MIT License
1 stars 0 forks source link

Anti-Pattern-Analysis IntelliJ Plugin CI - Anti-pattern Detection Tool CI

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

image


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.


Installation Manual

  1. Clone the repository:

    git clone https://github.com/DigitalProductInnovationAndDevelopment/Anti-Pattern-Analysis.git
  2. Navigate to the project directory:

    cd Anti-Pattern-Analysis
  3. Install dependencies:

    mvn install
  4. Navigate to the plugin directory:

    cd plugin
  5. Follow the plugin installation steps

  6. Add the created plugin to your IDE following IntelliJ documentation

  7. (Optional) Generate monitoring(or sampling) data for dynamic analysis Sampling documentation

  8. Open the plugin tab and provide the config

    Configuration variables

    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
  9. Run the analysis

Development Guidelines

Branching Strategy

Commit Messages

Follow the Conventional Commits specification to aid in automatic changelog generation and versioning.

Pull Requests

  1. Create a Pull Request (PR) when your feature or fix is ready for review
  2. Ensure all tests pass and code meets the project's quality standards
  3. Request reviews from team members

CI/CD Pipeline

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.