From 80fe75f808da7daa36b0471ecd5a3cfa6f93dfdf Mon Sep 17 00:00:00 2001 From: mph7 <85843263+mph7@users.noreply.github.com> Date: Tue, 4 Oct 2022 20:39:17 -0300 Subject: [PATCH] add resources to Patterns and Design Principles (#1984) --- .../103-actors.md | 8 +++++++- .../105-solid.md | 17 ++++++++++++++++- .../106-ddd.md | 17 ++++++++++++++++- .../106-tdd.md | 10 +++++++++- 4 files changed, 48 insertions(+), 4 deletions(-) diff --git a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/103-actors.md b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/103-actors.md index bb46869dd..af00261c1 100644 --- a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/103-actors.md +++ b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/103-actors.md @@ -1 +1,7 @@ -# Actors \ No newline at end of file +# Actors + +Actor Model is a model that represents actors as the basic unit of a system, they can only communicate through messages and have their own private state, and they can also manage other actors, resulting in an encapsulated and fault-tolerant system. + +Free Content +Actor Model Explained +The actor model in 10 minutes \ No newline at end of file diff --git a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/105-solid.md b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/105-solid.md index 7d6790eb1..49e03e3ae 100644 --- a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/105-solid.md +++ b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/105-solid.md @@ -1 +1,16 @@ -# Solid \ No newline at end of file +# SOLID + + +SOLID is a set of principles applied to object-oriented design (OOD) to create maintainable, understandable, and flexible code, while avoiding code smells and defects. The principles are: + +- Single Responsibility +- Open/Closed +- Liskov Substitution +- Interface Segregation +- Dependency Inversion + +Free Content +Design Principles and +Design Patterns +SOLID Principles +SOLID: The First 5 Principles of Object Oriented Design diff --git a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-ddd.md b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-ddd.md index ec8ad3400..cfd8131e0 100644 --- a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-ddd.md +++ b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-ddd.md @@ -1 +1,16 @@ -# Ddd \ No newline at end of file +# Domain-Driven Design + + +Domain-driven design (DDD) is a software design approach focusing on modeling software to match a domain according to input from that domain's experts. + +In terms of object-oriented programming, it means that the structure and language of software code (class names, class methods, class variables) should match the business domain. For example, if a software processes loan applications, it might have classes like LoanApplication and Customer, and methods such as AcceptOffer and Withdraw. + +DDD connects the implementation to an evolving model and it is predicated on the following goals: + +- Placing the project's primary focus on the core domain and domain logic; +- Basing complex designs on a model of the domain; +- Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems. + +Free Content + +Domain Driven Design Quickly diff --git a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-tdd.md b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-tdd.md index 713a67dfd..3550cc9ab 100644 --- a/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-tdd.md +++ b/content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/106-tdd.md @@ -1 +1,9 @@ -# Tdd \ No newline at end of file +# Test Driven Development + + +Test driven development (TDD) is the process of writing tests for software's requirements which will fail until the software is developed to meet those requirements. Once those tests pass, then the cycle repeats to refactor code or develop another feature/requirement. In theory, this ensures that software is written to meet requirements in the simplest form, and avoids code defects. + +Free Content +What is Test Driven Development (TDD)? +Test-driven development +Agile in Practice: Test Driven Development