Add design patterns

This commit is contained in:
Charles-Axel Dein 2021-02-08 11:29:44 +01:00
parent b64928ef32
commit 7e85607e7d

View File

@ -11,8 +11,8 @@
- [Pick a powerful text editor and learn its ins and outs](#pick-a-powerful-text-editor-and-learn-its-ins-and-outs)
- [Learn the ins and outs of one programming language](#learn-the-ins-and-outs-of-one-programming-language)
- [Topic-specific materials](#topic-specific-materials)
- [Architecture and design patterns](#architecture-and-design-patterns)
- [Best practices, attitude](#best-practices-attitude)
- [Code architecture and design patterns](#code-architecture-and-design-patterns)
- [DB and SQL](#db-and-sql)
- [Dev environment, command line and Linux](#dev-environment-command-line-and-linux)
- [Distributed systems and system architecture](#distributed-systems-and-system-architecture)
@ -126,19 +126,6 @@ If you have time, learn more programming languages, starting with some that are
## Topic-specific materials
#### Architecture and design patterns
Introduction:
- Learn about DDD (domain driven design), SOLID, MVC.
Advanced:
- Wander in the [Software Architecture Guide](https://martinfowler.com/architecture/)
- 🎞 [On the Spectrum of Abstraction](https://www.youtube.com/watch?v=mVVNJKv9esE&ab_channel=ReactEurope)
- 🎞 [Simple Made Easy](https://www.infoq.com/presentations/Simple-Made-Easy/)
- 🎞 [Zebras All the Way Down](https://youtu.be/fE2KDzZaxvE), Bryan Cantrill
#### Best practices, attitude
Read one of those:
@ -151,6 +138,33 @@ Read one of those:
Read the resources listed under [Must-read articles](https://github.com/charlax/professional-programming#must-read-articles).
#### Code architecture and design patterns
Introduction:
- Learn about OOP basics: inheritance, abstract/concrete, public/private
- Learn about DDD (domain driven design), SOLID, MVC, Clean Architecture
- [An introduction to software design patterns](https://www.coengoedegebure.com/introduction-to-software-design-patterns/). All those patterns are not useful in all languages, but they're applied in most software, so it's important to know about them.
- Builder
- Factory
- Singleton
- Adapter
- Facade
- Chain of Responsibility
- Command
- Observer
- State
- Strategy
- Visitor
- 🎞 [Design Patterns in Plain English](https://www.youtube.com/watch?v=NU_1StN5Tkk&ab_channel=ProgrammingwithMosh)
Advanced:
- Wander in the [Software Architecture Guide](https://martinfowler.com/architecture/)
- 🎞 [On the Spectrum of Abstraction](https://www.youtube.com/watch?v=mVVNJKv9esE&ab_channel=ReactEurope)
- 🎞 [Simple Made Easy](https://www.infoq.com/presentations/Simple-Made-Easy/)
- 🎞 [Zebras All the Way Down](https://youtu.be/fE2KDzZaxvE), Bryan Cantrill
#### DB and SQL
Introduction:
@ -191,6 +205,7 @@ Advanced:
- Consider reading 📖 [Designing Data-Intensive Applications](https://dataintensive.net/).
- [The Log: What every software engineer should know about real-time data's unifying abstraction](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying)
- 🎞 [Mastering Chaos - A Netflix Guide to Microservices](https://www.youtube.com/watch?v=CZ3wIuvmHeM&ab_channel=InfoQ) (by Netflix)
Concepts to look into: