Git Product home page Git Product logo

adoctor's People

Contributors

emaiannone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

adoctor's Issues

New features and improvements

  • Wrap everything it.unisa.plugin packages
  • Change some interfaces, e.g., there are some ArrayList to be changes in List
  • Make AnalysisDriver and ProposalDriver without state and their core method receive all parameters
  • Rename startAnalysis() into analyze()
  • Rename computeProposal() into propose()
  • Package filtering should be done by CoreDriver, not by AnalysisDriver (so that it won't need targetPackage anymore)
  • Similarly to ProposalDriver, AnalysisDriver should be constructed on the list of analyzers and launch the analysis on the list of files.
  • LT allow static Thread constructor
  • MIM and IDS propagate changes
  • Improve Smell Dialog UI with Filtering option
  • Return more than one smell instance per class
  • Add progress bar during analysis (while showing the analyzed files)
  • Use better multithreading during analysis
  • Improve exception and errors handling
  • Implement Fix all feature button

Let MIM and IDS propagate their changes

Maybe "promote" them to ProjectSmell? ProjectSmell does not exist yet, but this might be the chance. It would be good to let aDoctor show multiple diff for a single smell!

Bugfix

  • Change indent style to Spaces
  • Do not remove line comments (https://stackoverflow.com/questions/3019729/how-to-access-comments-from-the-java-compiler-tree-api-generated-ast/9884987#9884987)
  • Do not reformat Javadoc
  • MIM check internal proprieties of direct superclasses
  • MIM check internal proprieties of indirect superclasses
  • IS check better for internal
  • LT should propose interrupt() and not stop()
  • LT should check if the subject thread object is an instance variable
  • Keep found indent style (how to determine it?)
  • MIM check should not check inner classes (they cannot have static members)
  • IS must check only for a single assignement body (already done?)
  • IS allow different argument names

Align ERB solution to other smells

ERB identification and refactoring still follows old assumptions. Align ERBAnalizer, ERBProposer and ERBSmell to other "brother" classes

Change UI Start dialog

  • Add select/unselect all smells
  • Keep memory of selected smell when Back is used
  • New package selection

Possible Model - View - Presenter (Supervising Controller)?

The architectural pattern might actually be a MVP Supervising Controller, where views do not have any data binding and do not call model logic.
Model is the application, View is the set of Swing dialogs (along with their event handlers) + StartAction and Presenter might be CoreDriver.

Proposal:

  • Rename application --> model
  • Rename presentation --> gui (this allow future User Interfaces)
  • Rename CoreDriver --> CorePresenter
  • CoreDriver(Presenter) should observe on each dialogs instead of using callback interfaces
    • Dialogs should implement a View/Observable interface
    • CoreDriver(Presenter) should implement an Observer interface
  • Split CoreDriver(Presenter) into some Presenters

Another alternative is with Mediator pattern

One smell instance per smell per class.

When the analyzer is searching for smell instances, the "analyze" method returns on the first smell instance found, ignoring the remaining smells present in the class.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.