vault backup: 2025-01-16 16:38:07
This commit is contained in:
98
5 Media/8 Courses/Design Patterns by Construx.md
Normal file
98
5 Media/8 Courses/Design Patterns by Construx.md
Normal file
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: Design Patterns by Construx
|
||||
created_date: 2025-01-16
|
||||
updated_date: 2025-01-16
|
||||
aliases:
|
||||
tags:
|
||||
- course
|
||||
type: course
|
||||
course_name: Design Patterns
|
||||
author: Construx
|
||||
source: https://construx.vueocity.com/portal/design-patterns
|
||||
status: not_started
|
||||
---
|
||||
# Design Patterns by Construx
|
||||
- **🏷️Tags** : #01-2025 #book
|
||||
---
|
||||
## Summary
|
||||
|
||||
> [!summary] Summary
|
||||
> 3 Sentences only!
|
||||
> - What are the main ideas?
|
||||
> - If I implemented one idea from this book right now, which one would it be?
|
||||
> - How would I describe the course to someone else?
|
||||
|
||||
---
|
||||
## Ideas and Thoughts
|
||||
|
||||
> [!info]+ Inspiring Questions
|
||||
> - Did you think about other concepts from other resources?
|
||||
> - Do the concepts fit to your past, to your memories?
|
||||
> - Can you relive them and reflect them from a different angle?
|
||||
|
||||
|
||||
---
|
||||
## Chapters
|
||||
### Getting Started
|
||||
|
||||
> [!definition] UML Notation
|
||||
> Contents
|
||||
|
||||
> [!Definition] What is a Design Pattern
|
||||
> A standard solution to a recurring problem.
|
||||
>
|
||||
> We should not reinvent the wheel. Patterns are much more reusable than code.
|
||||
|
||||
A *bridge* is a design pattern because it is a standard solution to a recurring problem: we need to get things across a not passable obstacle.
|
||||
For every problem you have *design criteria* to choose the best type of bridge (e.g. span, clearance, loads, cost, etc.). In design patterns design criteria are called *Goal forces* and *constraint forces*.
|
||||
As a beginner: focus on the problem, not the solutions!
|
||||
|
||||
### UML Notations:
|
||||
#### Note
|
||||
![[Pasted image 20250116161217.png]]
|
||||
#### Class, Attribute and Operation
|
||||
![[Pasted image 20250116160836.png]]
|
||||
|
||||
Operations are viewed from extern
|
||||
Methods are viewed from intern
|
||||
|
||||
### Minimize Overall Complexity
|
||||
Measures of complexity
|
||||
- Cyclomatic complexity: the number of decisions that are being made --> local complexity
|
||||
- Depth of decision making: embedding of decision within decision and decision --> local complexity
|
||||
- number of parameters: --> global complexity
|
||||
- fan out: number of functions that are called by the function --> global complexity
|
||||
|
||||
![[Pasted image 20250116161534.png]]
|
||||
|
||||
Local complexity is a measure on how complicated each function is, whereas the global complexity is the complexity in between functions.
|
||||
Remember to get an appropriate balance.
|
||||
|
||||
### Use Abstractions
|
||||
**Syntax**: Is all about structure
|
||||
**Semantics**: Is all about meaning
|
||||
|
||||
- Colorless green dreams sleep furiously: correct syntax, completely wrong semantics --> defective or buggy code, because it is semantically meaningless
|
||||
|
||||
The *compiler* is a master of syntax but cannot know anything about semantics.
|
||||
The programmer needs to focus much more on semantics, because the complier will take care of the syntax.
|
||||
|
||||
> [!NOTE] Abstraction
|
||||
> the principle of ignoring those aspects of a subject that are not relevant to the current purpose in order to concentrate solely on those that are.
|
||||
>
|
||||
> It is a tool to reduce and manage complexity.
|
||||
|
||||
what is the role of one function / subroutine? The more abstraction you have, the less performant the code becomes.
|
||||
Abstraction i
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
## Exercises
|
||||
|
||||
---
|
||||
```query
|
||||
Design Patterns Construx
|
||||
-file: "Design Patterns by Construx.md"
|
||||
```
|
||||
Reference in New Issue
Block a user