I've put together this repository of markdown files, going into many aspects of coding. Note: this is a progressively updated repository, so there is no order to how I add things, see the table of contents below.
Please feel free to contribute to anything I've not listed, or examples to markdown files!
Here lies a collection of Markdown files going over good principles to keep in the back of your mind while developing.
- Keep it simple, stupid
- Don't repeat yourself!
- You aren't gonna need it
- Seperation of Concerns
- Dependency Injection
- Composition Over Inheritence
- Law Of Demeter
- Single Responsibility Principle
- Open/Closed Principle
- Fail Fast Principle
- Liskovs Substitution Principle
- Principle of Least Astonishment
- Single Source of Truth
- Convention over Configuration
- Concurrency
- Parallelization
- Scalability
- Containerization
- DevOps
- CI/CD (Continuous Integration, Continuous Deployment)
- Agile Methodology
- Test Driven Development
- Behaviour Driven Development
- Inversion of Control
- Dependency Injection
- Reactive Programming
- Service Oriented Architecture
- Cryptography
For each of these design patterns, I've given examples where applicable. I will be building on these for different languages. for most of the examples, I've used NodeJS and/or Java. I will be looking at adding in examples for different languages. I've also added the pros and cons for each pattern.
- Micro-Service
- Event Driven Architecture
- Layered Architecture Pattern
- MVC (Model, View, Controller)
- MVVM (Model, View, ViewModel)
- DDD (Domain-Driven Design)
- State Pattern
- Strategy Pattern
- Observer Pattern
- Iterator Pattern
- Command Pattern
- Chain of Responsibility Pattern
- Inversion of Control (IoC)
- Mediator