From 7e85607e7de399acfbafdcf1dbf51821aea8f82b Mon Sep 17 00:00:00 2001 From: Charles-Axel Dein Date: Mon, 8 Feb 2021 11:29:44 +0100 Subject: [PATCH] Add design patterns --- training/web-dev/README.md | 43 +++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/training/web-dev/README.md b/training/web-dev/README.md index 506013b..f523548 100644 --- a/training/web-dev/README.md +++ b/training/web-dev/README.md @@ -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: