Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 1.28 KB

CODE_QUALITY_CHECKLIST.md

File metadata and controls

57 lines (46 loc) · 1.28 KB

Code quality requirements

Documentation

  • Readme contains instructions for building and running application
  • OpenAPI and SwaggerUI are used for documenting web API
  • Endpoints of web services REST naming
  • Javadoc is used for interfaces (public API)

Tools

  • Maven checkstyle plugin with checkstyle report generation
  • No sonarlint issues
  • Lombok usage
  • BigDecimal usage
  • Do not store secrets
  • SOLID
  • Setup db indexes
  • Use logging
  • Maven swagger plugin
  • Liquibase in docker

Project structure

  • CSV parser library should be used
  • Not exist redundant method in interfaces
  • Interface to separate controller and service layer
  • Layers organization (controllers, services, repositories)
  • Separate entity/dto for controller and service layer

Error handling

  • Custom runtime exception
  • Controller advice

Tests

  • Mockito unit tests
  • Test coverage
  • Integration tests
  • Testcontainers
  • Given Then approach

Functional requirements

  • Requirements fulfilled
  • Cannot load additional cryptos at runtime

Caching

  • Redis

Persistence

  • Postgres

Containerization

  • Dockerfile
  • Docker-compose

Rate limiter

  • Bucket4j

CI/CD

  • Github CI