Clean Code
Architecture

Main concepts

  1. Codebase Architecture

    • Dependency injection
    • Separation of concerns
    • Single responsibility principle
    • Naming conventions
    • Code formatting
    • Code style
    • Code organization
    • Code documentation
    • Comments
    • Method wrapping (Events raisen, etc.)
    • When to start a new project
  2. When to split functions

    • HTTP calls -> Integration class
    • Business logic -> Service class
    • Data access -> Repository class
    • Data transformation -> Mapper class
    • Data validation -> Validator class
    • Data sanitization -> Sanitizer class
    • Data formatting -> Formatter class
  3. VCS (Git)

    • Branching
    • Committing
    • Merging
    • Pull requests
    • Code reviews
    • Reverting
    • Rebasing
    • Stashing
  4. Testing

    • Unit testing
    • Integration testing
    • Functional testing