Main concepts
-
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
-
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
-
VCS (Git)
- Branching
- Committing
- Merging
- Pull requests
- Code reviews
- Reverting
- Rebasing
- Stashing
-
Testing
- Unit testing
- Integration testing
- Functional testing