ΠΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠ΅ GRASP (ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ - General Responsibility Assignment Software Patterns), SOLID (Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎΡΠΊΡΡΡΡΠΉ-Π·Π°ΠΊΡΡΡΡΠΉ, ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠΈΡΠΊΠΎΠ², ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ), GoF (ΠΠ°Π½Π΄Ρ ΡΠ΅ΡΡΡΠ΅Ρ - Gang of Four) Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° (Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) & Π±Π΅ΠΊΠ΅Π½Π΄Π° (node.js, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π½ΡΠ°ΠΉΠΌΡ) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° JavaScript ΠΈ TypeScript
- π§© ΠΠ°ΡΠ΅ΡΠ½Ρ
- π’ GoF ΠΏΠ°ΡΠ΅ΡΠ½Ρ Π΄Π»Ρ Node.js ΠΈ JavaScript (ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ°)
- π ΠΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- ΠΠ±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΡΠΈΠΊΠ° (Abstract factory) β ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ², Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
- Π‘ΡΡΠΎΠΈΡΠ΅Π»Ρ (Builder) β ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΡΠ±ΠΎΡΠΊΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠ°ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΈΠ½ΠΈΠ½Π³Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Query Builder ΠΈΠ»ΠΈ Form Generator.
- Π€Π°Π±ΡΠΈΠΊΠ° (Factory) β ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ ΠΈΠ· Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΠΌΠ΅ΡΠΈ, setPrototypeOf.
- Π€Π°Π±ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ (Factory method) β Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π½ΡΠΆΠ½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π² JavaScript ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· if, switch ΠΈΠ»ΠΈ Π²ΡΠ±ΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
- ΠΡΠΎΡΠΎΡΠΈΠΏ (Prototype) β ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (Π½Π΅ ΠΏΡΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ Flyweight).
- Flyweight β ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ (ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ) ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ°.
- ΠΠ΄ΠΈΠ½ΠΎΡΠΊΠ° (Singleton) β Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, ΡΠ°ΡΡΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ, ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ ESM/CJS.
- Object Pool β ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈ ΡΠ°ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ.
- π€ Π‘ΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- ΠΠ΄Π°ΠΏΡΠ΅Ρ (Adapter) β ΠΊΠΎΠ½Π²Π΅ΡΡΠΎΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
- ΠΠ±Π΅ΡΡΠΊΠ° (Wrapper) β ΠΎΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Ρ ΠΏΡΠΎΠ±ΡΠΎΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° (Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Adapter.
- Boxing β ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ String Π΄ΠΎ AddressString.
- Decorator β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎ ΡΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅.
- ΠΡΠΎΠΊΡΠΈ (Proxy) β ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Ρ Π²ΡΠ·ΠΎΠ²Ρ, ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π² GoF ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π² JavaScript Proxy.
- ΠΠΎΡΡ (Bridge) β ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ.
- ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ (Composite) β ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DOM ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°.
- Π€Π°ΡΠ°Π΄ (Facade) β ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ) Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΈ ΡΠΎΠΊΡΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
- ΠΠ΅Π³ΠΊΠΎΠ²Π΅Ρ (Flyweight) β ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ (ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ) ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ°.
- β‘ ΠΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- Π¦Π΅ΠΏΠΎΡΠΊΠ° ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠ΅ΠΉ (Chain of responsibility) β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ, Π²ΡΠ΅ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΡΠΈΡΠ°ΡΡ, Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½.
- Middleware β ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ CoR, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π»ΡΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π³ΠΎΠ½ΠΊΠ΅, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ, ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ.
- ΠΠΎΠΌΠ°Π½Π΄Π° (Command) β ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (Π·Π°ΠΏΡΠΎΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΈ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΡΡΠ°Π²ΠΈΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎοΏ½οΏ½ΠΌΠ΅Π½ΡΡΡ, ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΈ Ρ.Π΄.
- ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ (Interpreter) β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ·ΡΠΊΠ° (DSL - domain specific language) ΠΈΠ»ΠΈ ΡΠ°Π·Π±ΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² AST (Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ) Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ.
- ΠΡΠ΅ΡΠ°ΡΠΎΡ (Iterator) β ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎ, Π±Π΅Π· Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ Π² GoF, Π½ΠΎ Π² JavaScript Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Iterator ΠΈ AsyncIterator.
- ΠΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ (Mediator) β ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ N ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ N * (N - 1) / 2 ΡΠ²ΡΠ·Π΅ΠΉ, Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π·Π°ΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π΄ΠΎ N.
- Π‘Π½ΠΈΠΌΠΎΠΊ (Memento) β ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
- ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ (Observable) β ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
- EventEmitter Π΄Π»Ρ Node.js: Observable + listener
- EventTarget Π΄Π»Ρ Web API: EventTarget + Event (CustomEvent) + listener
- Signal
- Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (State) β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° (Automaton ΠΈΠ»ΠΈ FSM), Π³Π΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ - ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ, Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ .
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ (Strategy) β Π²ΡΠ±ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ: ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠ»Π°ΡΡΠΎΠ².
- Π¨Π°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ (Template method) β ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΠ°Π³ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π³ΠΈ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΠ°ΠΊ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
- ΠΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ (Visitor) β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ.
- ΠΡΠΊΡΡΡΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (Revealing Constructor) - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±Π΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
- Actor β ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΡΡΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π°ΠΊΡΠΎΡΠ°.
- Reactor (event-loop) β ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΠ²Π΅ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ. Π§Π°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΠΌ I/O, ΡΠΏΡΠΎΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΡΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ.
- Proactor β Π¦ΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π°Π³Π΅Π½ΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, I/O ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π² callback).
- ποΈ Π¨Π°Π±Π»ΠΎΠ½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ
- Transaction Script β ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ).
- Pattern SAGA β ΡΠ°Π±Π»ΠΎΠ½ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ°Π»ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΡΡΠ΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΡΠ»ΡΡΠ°ΠΉ ΡΠ±ΠΎΡ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
- Unit of Work β ΡΠ°Π±Π»ΠΎΠ½ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ORM ΠΈΠ»ΠΈ Repository, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- Table Module β ΡΠ°Π±Π»ΠΎΠ½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- Value Object β Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ, ΡΠ°ΠΌΠΎΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π² Π΄ΠΎΠΌΠ΅Π½Π΅ Π±Π΅Π· ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, ΡΠ²Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
- Null Object β ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½Π΅ΠΉΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Β«do-nothingΒ». ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π° null, ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π―Π²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ "ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ", ΡΡΡΡΠ°Π½ΡΡΡΠ΅ΠΉ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π³Π²Π°ΡΠ΄Ρ.
- Active Record β Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠΈΠΉ Π·Π°ΠΏΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ CRUD (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅) ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΡΠ΅Π±Π΅.
- Data access object (DAO) β Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΠ·ΠΎΠ»ΠΈΡΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
- Data transfer object (DTO) β Π°Π½Π΅ΠΌΠΈΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅) Π±Π΅Π· Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΡΠΌΠΈ, ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΌΠΈ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ.
- Data Access Layer (DAL) β ΡΠ»ΠΎΠΉ, Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ DAO ΠΈΠ»ΠΈ ΡΡΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½ Facade. Π§Π°ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ .
- Repository β Π΄ΠΎΠΌΠ΅Π½Π½ΠΎ-ΡΠ΅Π½ΡΡΠΈΡΠ½Π°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ, Π° Π½Π΅ ΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ DTO.
- Π‘ΠΌ. Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ: Template method, Actor, State, Memento
- π§© Π¨Π°Π±Π»ΠΎΠ½Ρ (ΠΏΠ°ΡΠ΅ΡΠ½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ) GRASP
- π’ ΠΠ²ΠΎΠ΄Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡ
- ΠΠ±ΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ GRASP
- Π§Π°ΡΡΡ 1 - GRASP Π΄Π»Ρ Node.js ΠΈ Javascript
- Π§Π°ΡΡΡ 2 - ΡΠΊΠΎΡΠΎ
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΡ (Information expert)
- Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ (Creator)
- ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (Controller)
- ΠΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡ (Indirection)
- ΠΠΈΠ·ΠΊΠΎΠ΅ Π·Π°ΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ (Low coupling)
- ΠΡΡΠΎΠΊΠ°Ρ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ (High cohesion)
- ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ (Polymorphism)
- ΠΠ°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ (Protected variations)
- Π§ΠΈΡΡΠ°Ρ Π²ΡΠ΄ΡΠΌΠΊΠ° (Pure fabrication)
- ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
- π’ ΠΠ²ΠΎΠ΄Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡ
- π§© Π¨Π°Π±Π»ΠΎΠ½Ρ (ΠΏΠ°ΡΠ΅ΡΠ½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ) SOLID
- π’ ΠΠ²ΠΎΠ΄Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡ: SOLID for Node.js and Javascript
- SOLID Π²ΠΎΠΏΡΠΎΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
- ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ (Single responsibility principle)
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ/Π·Π°ΠΊΡΡΡΠΎΡΡΠΈ (Open/closed principle)
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠΈΡΠΊΠΎΠ² (Liskov substitution principle)
- ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Interface segregation principle)
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (Dependency inversion principle)