New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F. Scippacercola e E. Battista #2

Open
wants to merge 9 commits into
base: master
from

Conversation

Projects
None yet
1 participant
@F-Scippacercola

F-Scippacercola commented Oct 8, 2017

Issue #314

Anpr-github-metrics is a JS client-side application that shows metrics on Issue Trackers, using a processing microservice in the backed.

  • GUI Extensibility The JS application is based on Vue and is easily extensible for adding new plots and reports to the users.
  • Virtualized environment The application communicates with a backend microservice (Dockerized on-the-go), to guarantee a stable and easy-to-set environment.
  • Standard communication The communication uses a standard REST interface based on Swagger (See Swagger YAML Specification), to allow the system maintanability.
  • Powerful frameworks The microservice runs in a Java SE Virtual Machine (it is not required a Java EE!) and exploites the services of Spring and Spring Boot.
  • Maintainability and Extensibility The microservice adopts a compile-time plugin architecture:
    1. Currently implements analysis on GitHub, but can be extended to other issue tracker (e.g. BugZilla) in moments!.
    2. New plugins for computing new metrics can be easily added at compile-time and registered to the microservice.
  • Designed with performance in mind The microservice uses a high-concurrent local time-cache (by using Google Guava Cache and Striped Locks) to improve the LRU queries. The caching is completely transparent to the plugins! (See how transparent caching has been implemented)
  • Testability by design The application exploits strategies and design pattern to improve testability (unit and integration) preferring Inversion Of Control, Builders, Fluent APIs, and :over all: Readable code!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment