ΠšΡ€Π°Ρ‚ΠΊΠΎ Π·Π° основното: Clean Architecture, Π ΠΎΠ±ΡŠΡ€Ρ‚ Π‘. ΠœΠ°Ρ€Ρ‚ΠΈΠ½

Π’ΠΎΠ²Π° Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΊΠ°Π· Π·Π° впСчатлСния ΠΎΡ‚ ΠΊΠ½ΠΈΠ³Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‰Π΅ сС Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚ някои понятия ΠΈ знания, ΠΊΠΎΠΈΡ‚ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° бяха усвоСни.

АрхитСктура

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ, Ρ‡Π΅Ρ‚Π΅ΠΉΠΊΠΈ Ρ‚Π°Π·ΠΈ публикация, Π΄Π° Π΄Π°Π΄Π΅Ρ‚Π΅ ясСн ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°? Какво Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π² контСкста Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ? Каква роля ΠΈΠ³Ρ€Π°Π΅ тя? Има доста нСясноти ΠΎΠΊΠΎΠ»ΠΎ Ρ‚ΠΎΠ·ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½. И сякаш всичко Π΅ ясно, Π½ΠΎ ΠΏΠΎ-скоро абстрактно ΠΈ Π±Π΅Π· точност. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ смята, ΠΈ Π°Π· съм с Π½Π΅Π³ΠΎ съгласСн, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° Π΄Π²Π΅ ΡΡŠΡΡ‚Π°Π²ΠΊΠΈ:

  1. ПовСдСниС (behavior) β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, услуга) изпълнява.
  2. АрхитСктура β€” Ρ‚ΠΎΠ·ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π΅ Π² ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Но Π΄ΠΎΡ€ΠΈ ΠΈ Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅ изпълнява Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°, която трябва, Ρ‚ΠΎΠ²Π° съвсСм Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ° Π΄ΠΎΠ±Ρ€Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. АрхитСктурата Π½Π΅ Π΅ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. АрхитСктурата Π΅ Π·Π° лСсната измСняСмост, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅ Π·Π° лСсното Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅ Π·Π° нСзависимостта Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°. АрхитСктурата Π΅ Π·Π° скоростта, с която новият Ρ‡ΠΎΠ²Π΅ΠΊ Π² Π΅ΠΊΠΈΠΏΠ° усвоява знанията.

И Π΅Ρ‚ΠΎ ΠΊΠ°ΠΊ Π΄Π° сС строи Ρ‚Π°Π·ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΊΠ°ΠΊ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² изискванията ΠΎΡ‚ PM-a ΠΈΠ»ΠΈ ΠΎΡ‚ заинтСрСсованитС страни: Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°.

Π—Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ° Π½Π΅Ρ‰ΠΎ Π·Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°, искам Π΄Π° сподСля ΠΌΠ°Π»ΠΊΠΎ Π·Π° сСбС си.
Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° съм Strong Junior Developer, спСциализиращ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° услуги Ρ‡Ρ€Π΅Π· ASP .NET CORE.

Работя Π² Π΅Π΄Π½Π° "Π³Π°Π»Π΅Ρ€ΠΊΠ°" ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ съвсСм ΠΌΠ°Π»ΠΊΠΎ успявам.

ΠšΠ½ΠΈΠ³Π°Ρ‚Π° Π²Π΅Ρ‡Π΅ я ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ… Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΈ я ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π½Π° всички:

  • Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ систСми;
  • Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ;
  • Π±Π΅ΠΊΠ΅Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ;
  • ΠΈ Π΄ΠΎΡ€ΠΈ дСвопс спСциалисти.

Всички, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° софтуСр, сС ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ нСпосрСдствСно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ прилоТСния, Π±Π΅Π· Π΄Π° сС броят ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈΡ‚Π΅ ΠΈ PM-ΠΈΡ‚Π΅ (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΡΡŠΡ‰ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° знаят Π·Π°Ρ‰ΠΎ Π΄Π΅Π²ΠΎΠ²Π΅Ρ‚Π΅ чСсто ΠΏΡ€Π΅ΠΊΠ°Ρ€Π²Π°Ρ‚ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π·Π°Π΄Π°Ρ‡Π°), ΡΡŠΠ²Π΅Ρ‚Π²Π°ΠΌ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π°Ρ‚ Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°.
И сСга Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ Π·Π°Ρ‰ΠΎ мисля Ρ‚Π°ΠΊΠ°.

Няколко Π΄ΡƒΠΌΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€Π° Π½Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° (Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΡŠΡ‚ Π½Π° ΠΏΠΈΡˆΠ΅Ρ‰ΠΈΡ ΠΈΠ³Ρ€Π°Π΅ голяма роля Π·Π° ΠΌΠ΅Π½). Мисля, Ρ‡Π΅ Ρ‰Π΅ ΠΌΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π½ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‡ΠΎΠ²Π΅ΠΊ с Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π² сфСрата Π²ΠΈ ΠΊΠ°Π·Π²Π° Π½Π΅Ρ‰ΠΎ, Π²ΠΈΠ΅ проявяватС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ към ΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ. НапримСр, мисля, Ρ‡Π΅ Ρ‰Π΅ повярватС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΠ·Π°Ρ‚Π°, която Π²ΠΈ поставя Π»Π΅ΠΊΠ°Ρ€, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π½Π° някой ΠΎΡ‚ Ρ‚ΡŠΠ»ΠΏΠ°Ρ‚Π° (ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΠ» симптомитС Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚).

Π ΠΎΠ±ΡŠΡ€Ρ‚ ΠœΠ°Ρ€Ρ‚ΠΈΠ½ β€” извСстСн ΠΈ ΠΊΠ°Ρ‚ΠΎ Анкъл Π‘ΠΎΠ± (дядо Π‘ΠΎΠ±) β€” Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² сфСрата Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСми (ΠΎΡ‚ ΡƒΠ΅Π± услуги Π΄ΠΎ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ систСми) ΠΎΡ‚ 1970 Π³ΠΎΠ΄ΠΈΠ½Π°. Π’ΠΎΠΉ Π΅ тСхничСски консултант ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚, пишС Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ тСхничСски списания, ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠΏΠΈΡ‚Π΅Π½ програмист ΠΈ Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ³Ρ€Π°Π» Π΅Π΄Π½Π° ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Ρ€ΠΎΠ»ΠΈ Π² ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° извСстнитС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ SOLID (ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ Π΅ ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»). Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, искам Π΄Π° добавя, Ρ‡Π΅ ΠΌΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° моят Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ с 15+ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΎΠΏΠΈΡ‚.

Π—Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°

Зависимости

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ… доста статии Π² ΡΡŠΡ‰ΠΈΡ Π₯Π°Π±ΡŠΡ€, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡˆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΡŠΡ‚ 'зависимост'. Какво Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠΉ ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ зависи, ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° 'зависи', ΠΈ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ клас ΠΌΠΎΠΆΠ΅ Π΄Π° зависи ΠΎΡ‚ Π΄Ρ€ΡƒΠ³?

И ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° ΠΎΡΡŠΠ·Π½Π°Ρ… Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

Зависимостта β€” Ρ‚ΠΎΠ²Π° Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅Π΄ΠΈΠ½ клас (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, услуга) Π·Π½Π°Π΅ Π·Π° Π΄Ρ€ΡƒΠ³ клас (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, услуга), ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ·Π½Π°Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ΄ сС опрСдСля (сСга програмиститС Π½Π° Java, C# ΠΈ C Ρ‰Π΅ ΠΌΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚) с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π° пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ: Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ клас А с пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Default.Classes ΠΈ клас B с Another.Classes. Π’Π°ΠΊΠ° Ρ‡Π΅, Π°ΠΊΠΎ Π² изходния ΠΊΠΎΠ΄ Π½Π° клас А Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° using Another.Classes; β€” Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ клас А зависи ΠΎΡ‚ клас B.
Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎ схСмата къдС Π΅ зависимият клас, Π° къдС Π½Π΅ – Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ посоката Π½Π° стрСлката: Π² 1) стрСлката Ρ‰Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΡ‚ клас А Π² посока Π½Π° клас B. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ клас B Π΅ ΠΏΠΎ-нСзависим ΠΎΡ‚ клас А. И ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² клас А няма Π΄Π° нанСсат Π½ΠΈΠΊΠ°ΠΊΠ²Π° 'Π²Ρ€Π΅Π΄Π°' Π½Π° клас B.

ΠšΡ€Π°Ρ‚ΠΊΠΎ Π·Π° основното: Clean Architecture, Π ΠΎΠ±ΡŠΡ€Ρ‚ Π‘. ΠœΠ°Ρ€Ρ‚ΠΈΠ½

SOLID

Π•Π΄Π½Π° ΠΎΡ‚ основнитС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ, която ΠΌΠ΅ ΠΏΠΎΠ΄Ρ‚ΠΈΠΊΠ½Π° Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°, бСшС обяснСниСто Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ SОLID ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ дядо Π ΠΎΠ±Π°Ρ‡ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π» Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ Π½ΠΈΠ΅ Ρ‡ΡƒΠ²Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ β€” SOLID.
Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ знаят - Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ ΡΡŠΠ²Π΅Ρ‚Π²Π°Ρ‚ Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ прилоТСнията си Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с 5 ΠΏΡ€Π°Π²ΠΈΠ»Π°:

S - SRP (ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° СдинствСната отговорност)
O - OCP (ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° отворСност ΠΈ затворСност)
L - LSP (ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° замСстванС Π½Π° Лисков)
I - ISP (ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° раздСлянС Π½Π° интСрфСйситС)
D - DIP (ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° инвСрсия Π½Π° зависимоститС)

Всички Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ класовС ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π½Π° Π½ΠΈΠ²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ слоСвС (сСрвизи).

Ако смятатС, Ρ‡Π΅ ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ Π½Π° СдинствСната отговорност Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ само с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ клас ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ» трябва Π΄Π° Π²ΡŠΡ€ΡˆΠΈ само Π΅Π΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‚ΠΎ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎΠ½Π΅ Π³Π»Π°Π²Π°Ρ‚Π° Π·Π° SOLID. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π΅ слСдствиС, Π½ΠΎ Π½Π΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° самия ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ.

Π—Π° инвСрсия Π½Π° зависимоститС

ОсобСно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ искам Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π° Π½Π° обяснСниСто Π½Π° ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° инвСрсия Π½Π° зависимоститС (ΠΊΠΎΠΉΡ‚ΠΎ Π΅ D ΠΎΡ‚ SOLID). По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Ρ€Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ просто ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π° ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ ΠΈ инструмСнт, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ посоката Π½Π° зависимоститС си ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° (DOMAIN) нСзависима ΠΎΡ‚ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ Π½Π° рСализацията Π½Π° слоя Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ (DAL).

ΠšΡ€Π°Ρ‚ΠΊΠΎ Π·Π° основното: Clean Architecture, Π ΠΎΠ±ΡŠΡ€Ρ‚ Π‘. ΠœΠ°Ρ€Ρ‚ΠΈΠ½

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ самият ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π½Π°Ρ€Π΅Π΄ с останалитС Π² SOLID, ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, самият ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€Π΅Π· цялата ΠΊΠ½ΠΈΠ³Π° ΠΈ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ основнитС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈ промяна Π½Π° посоката Π½Π° зависимоститС, ΠΊΠΎΠΉΡ‚ΠΎ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ DDD.

Π—Π° Π²Π·Π΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Много чСсто Π² ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Ρ‰Π΅ бъдС спомСнаван ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π²Π°ΠΆΠ½ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: Π·Π° Ρ‚ΠΎΠ²Π°, коя Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, коя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ, ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Ρ‚ΡŠΡ€ΡΠ°Ρ‡ΠΊΠ° ΠΈ Ρ‚.Π½.

Π’Π°ΠΊΠ° Ρ‡Π΅, Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ смята: трябва Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ КАК ΠœΠžΠ–Π• ΠœΠΠ›ΠšΠž ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π—Π°Ρ‰ΠΎΡ‚ΠΎ изискванията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС промСнят, ограничСнията ΠΏΠΎ производитСлността ΡΡŠΡ‰ΠΎ, Π° самата повСдСнчСска ΡΡŠΡΡ‚Π°Π²ΠΊΠ° ΠΈΠΌΠ° тСндСнция Π΄Π° сС промСня. Π’ процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅, някакво Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎ. И силата Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π±ΡŠΡ€Π·ΠΎ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΄Π½Π° тСхнология с Π΄Ρ€ΡƒΠ³Π° (Π·Π° Ρ‚ΠΎΠ²Π°, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π³ΠΎΠ²ΠΎΡ€ΠΈ OCP).

НапримСр, извСднъТ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ вмСсто Postgresql MongoDb, ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ»ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с mock-Π½Π°Ρ‚ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. И ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ условия - Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΊΠ°Ρ€Π° Π΄Π° ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ цялата Π»ΠΎΠ³ΠΈΠΊΠ°.

Π—Π° Π΄Π° Π½Π΅ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° ситуации, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ някои ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ максимално Ρ‰Π΅ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π°Π²Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π΅ абстракцията.

Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ относно DDD

DDD β€” Π”ΠΎΠΌΠ΅ΠΉΠ½ Π”Ρ€Π°ΠΉΠ²ΡŠΠ½ Π”ΠΈΠ·Π°ΠΉΠ½ β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° услуги със слоТна бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° към ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, насочСн към максимално Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π»ΡŠΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (PMs, Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈ ΠΈ Π΄Ρ€.) ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ участници. ВоСст, Π·Π° Π΄Π° ΠΈΠΌΠ° ΠΎΠ±Ρ‰ Π΅Π·ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ всички Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ всСки Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ другия, ΠΈ Π·Π° Π΄Π° мислят всички Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ със ΡΡŠΡ‰ΠΈΡ‚Π΅ бизнСс ΠΏΡ€Π°Π²ΠΈΠ»Π°.

Ако стС ΠΏΡ€ΠΈΠ²ΡŠΡ€ΠΆΠ΅Π½ΠΈΠΊ Π½Π° DDD, ΠΈΠ»ΠΈ искатС Π΄Π° станСтС Ρ‚Π°ΠΊΡŠΠ², ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Π½ΠΎ искатС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ β€” ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° Π·Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚, особСно Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°.

Π’ΡƒΠΊ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ обяснява ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° зависимостната Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΈ Π·Π°Ρ‰ΠΎ, слСдвайки я, Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π—Π°Ρ‰ΠΎ зависимоститС трябва Π΄Π° слСдват Π² посока към ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ с висока ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Π·Π°Ρ‰ΠΎ Π΄ΠΎΠΌΠ΅Π½ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с висока ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°) трябва Π΄Π° Π΅ нСзависим ΠΎΡ‚ инфраструктурата ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ улСсни процСса Π½Π° внСдряванС ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

ΠšΡ€Π°Ρ‚ΠΊΠΎ Π·Π° основното: Clean Architecture, Π ΠΎΠ±ΡŠΡ€Ρ‚ Π‘. ΠœΠ°Ρ€Ρ‚ΠΈΠ½

АбстрахиранС

Дядо Π ΠΎΠ± ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ€Π°Π·ΠΊΠ°Π·Π²Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° наврСдят Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма ΠΈ Π΄Π° Π½Π΅ позволят Π΄Π° Π΅Π²ΠΎΠ»ΡŽΠΈΡ€Π° Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ впослСдствиС.

Π—Π°ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅!
Π‘Π” β€” Ρ‚ΠΎΠ²Π° Π΅ Π΄Π΅Ρ‚Π°ΠΉΠ» Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ (Web, Mobile ΠΈ Π΄Ρ€.) β€” Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
Π€Ρ€Π΅ΠΉΠΌΡƒΡŠΡ€Ρ†ΠΈΡ‚Π΅ β€” Ρ‚ΠΎΠ²Π° Π΅ Π΄Π΅Ρ‚Π°ΠΉΠ» Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ΠžΡ‚ всичко Ρ‚ΠΎΠ²Π° трябва Π΄Π° сС абстрахирамС максимално ΠΈ Π΄Π° Π½Π΅ зависим, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ горСописанитС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π½Π° инвСрсия Π½Π° зависимоститС с интСрфСйси ΠΈ абстракции, зависимостната Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π’ΠΎΠ·ΠΈ Ρ€Π°Π·Π΄Π΅Π» ΠΌΠΈ харСса особСно ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° услуги Π² ASP .NET CORE. Π’ΡƒΠΊ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° услугата ΠΎΡ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ.

Π ΠΎΠ±ΡŠΡ€Ρ‚ описва 4 възмоТни схСми Π·Π° раздСлянС Π½Π° слоСвС.

Π’ΠΎΠΉ пояснява Π·Π°Ρ‰ΠΎ чСсто използваният ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π½Π° трислойната Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°: UI (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ), Услуги (Π”ΠΎΠΌΠ΅ΠΉΠ½), DAL (Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ) β€” Π΅ сравнитСлно лош Π² сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅. Видях Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π½ΠΎ във всСки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ микроуслуга, Π½Π° Π±Π΅ΠΊ-Π΅Π½Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠ΅Π½Π½ΠΎ трислойна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, доста чСсто, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅Π΄ΠΈΠ½-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚-Π΅Π΄ΠΈΠ½-сСрвис. Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΈ Π΄Π²Π΅Ρ‚Π΅ са ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΈ, Π½ΠΎ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с мноТСството Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π² сравнСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° DDD, особСно ΠΏΡ€ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π·Π° измСнСния ΠΈ слоТни услуги.

Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ. Π‘Π°ΠΌΠ°Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΌΠΈ харСса ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π΅ съТалявам Π·Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ΠΎΡ‚ΠΎ, благодаря Π½Π° Π°Π²Ρ‚ΠΎΡ€Π°. На вас, скъпи Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ, благодаря Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, Π½Π΅ Π±ΡŠΠ΄Π΅Ρ‚Π΅ строги β€” Ρ‚Π°Π·ΠΈ публикация Π΅ основана Π½Π° впСчатлСнията ΠΎΡ‚ ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° ΠΈ ΠΌΠΎΠ΅Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ Π΅Π½Ρ‚ΡƒΡΠΈΠ°Π·ΡŠΠΌ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster