Design Patterns
Tried and true software design patterns (and principles and tactics) that I’ve encountered, used, or want to apply.
Warning: This section is under construction
I don’t have a traditional background in computer science, so I missed out on a lot of the foundational theory that is taught in school. 3+ years into my career, and I’m still learning a ton and playing catch up.
Why?
Someone before me likely encountered most of the problems that I’ve faced thus far, and has architectured solutions for them, or created a set of principles to help guide any future developers in the same problem space.
- RESTful APIs are a good example of this.
- Model-view-controller is another.
Some topics
- Separation of concerns
- Single responsibility principle
- Service oriented architecture
- Testing
- At least once delivery
- Tightly vs Loosely coupled
- Single point of failure
- Fault tolerance
- Idempotency
- Distributed systems
- Consensus
- Eventual consistency
- Event sourcing
- Logging