ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ 10 популярных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… шаблонов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

Jul 29, 2018 Β· 7 min read

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ задавались вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ систСмы ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… прСдприятий? Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ нСпосрСдствСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΌΡ‹ опрСдСляСмся с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌ шаблоном, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст Π½Π°ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ качСство ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Π½ΡŽΠ°Π½ΡΠ°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ своСму Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ шаблон?

По ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ,

АрхитСктурный шаблон β€” это ΠΎΠ±Ρ‰Π΅Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ контСкста. АрхитСктурныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ схоТи с шаблонами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΎΡ…Π²Π°Ρ‚.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρƒ 10 самых популярных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… шаблонов, расскаТу ΠΏΡ€ΠΎ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы использования.

1. ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ шаблон

2. ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный шаблон

4. ΠšΠ°Π½Π°Π»Ρ‹ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹

5. Π¨Π°Π±Π»ΠΎΠ½ посрСдника

6. ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ шаблон

1. ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ шаблон

Π”Π°Π½Π½Ρ‹ΠΉ шаблон ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для структурирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π΅ΠΊΠΈΡ… ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡, находящихся Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… уровнях абстракции. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ слой прСдоставляСт слуТбы для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, Π±ΠΎΠ»Π΅Π΅ высокого слоя.

Π§Π°Ρ‰Π΅ всСго Π² ΠΎΠ±Ρ‰ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 4 слоя:

Β· Π‘Π»ΠΎΠΉ прСдставлСния (Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ слой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса)

Β· Π‘Π»ΠΎΠΉ прилоТСния (Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ слой сСрвиса)

Β· Π‘Π»ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ (Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области)

Β· Π‘Π»ΠΎΠΉ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ (Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ…)

ИспользованиС

Β· ΠžΠ±Ρ‰ΠΈΠ΅ дСсктопныС прилоТСния.

2. ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный шаблон

Π”Π°Π½Π½Ρ‹ΠΉ шаблон состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: сСрвСра ΠΈ мноТСства ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдоставляСт слуТбы клиСнтским ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ услуги Ρƒ сСрвСра, Π° ΠΎΠ½, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эти самыС услуги ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, сСрвСр ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Β«ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒΒ» клиСнтскиС запросы.

ИспользованиС

Β· Онлайн прилоТСния (элСктронная ΠΏΠΎΡ‡Ρ‚Π°, совмСстный доступ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, банковскиС услуги).

3. Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ-Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉ

Π’ этом шаблонС Ρ‚Π°ΠΊΠΆΠ΅ задСйствованы Π΄Π²Π° участника β€” Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹Π΅. Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ распрСдСляСт Π·Π°Π΄Π°Ρ‡ΠΈ срСди ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ вычисляСт ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° основании Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ своих Β«ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ…Β».

ИспользованиС

Β· Π’ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΌ главная Π‘Π” считаСтся Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΌ источником, Π° ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ с Π½Π΅ΠΉ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Β· ΠŸΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ шинС Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹Π΅ устройства).

4. ΠšΠ°Π½Π°Π»Ρ‹ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹

Π­Ρ‚ΠΎΡ‚ шаблон ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ производят ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ этап ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°. Π”Π°Π½Π½Ρ‹Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°Π½Π°Π»Ρ‹. Π­Ρ‚ΠΈ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ синхронизации Π΄Π°Π½Π½Ρ‹Ρ….

ИспользованиС

Β· ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ лСксичСский, синтаксичСский, сСмантичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ созданиС ΠΊΠΎΠ΄Π°.

Β· Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Π² Π±ΠΈΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

5. Π¨Π°Π±Π»ΠΎΠ½ посрСдника

Π”Π°Π½Π½Ρ‹ΠΉ шаблон Π½ΡƒΠΆΠ΅Π½ для структуризации распрСдСлСнных систСм с нСсвязными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² слуТбы. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ посрСдник ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡŽ взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ свои возмоТности (слуТбы ΠΈ характСристики) Ρƒ посрСдника (Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°). ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ услугу Ρƒ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°. Π—Π°Ρ‚Π΅ΠΌ Π±Ρ€ΠΎΠΊΠ΅Ρ€ пСрСнаправляСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ подходящСй слуТбС ΠΈΠ· своСго рССстра.

ИспользованиС

6. ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ шаблон

Π’ Π΄Π°Π½Π½ΠΎΠΌ шаблонС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΈΡ€Ρ‹. ΠŸΠΈΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ услуги ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Ρ… участников (ΠΏΠΈΡ€ΠΎΠ²), Ρ‚Π°ΠΊ ΠΈ сСрвСра, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ услуги Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΈΡ€Π°ΠΌ. ΠŸΠΈΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ сСрвСром, ΠΈΠ»ΠΈ всСм сразу, Π° Ρ‚Π°ΠΊΠΆΠ΅ способСн со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свою Ρ€ΠΎΠ»ΡŒ.

ИспользованиС

Β· ΠŸΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Π΅ прилоТСния (ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Spotify).

7. Π¨ΠΈΠ½Π° событий

Π­Ρ‚ΠΎΡ‚ шаблон, Π² основном, взаимодСйствуСт с событиями ΠΈ состоит ΠΈΠ· 4 Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: источник события, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ события, ΠΊΠ°Π½Π°Π» ΠΈ шина событий. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ сообщСния для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° шинС событий. ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹. ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ увСдомлСния ΠΎ появлСнии сообщСний, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ°Π½Π°Π»Π°Ρ… ΠΈΠ· ΠΈΡ… подписки.

ИспользованиС

Β· Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Android

8. МодСль-прСдставлСниС-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€

Π­Ρ‚ΠΎΡ‚ шаблон Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ MVC-шаблон. Он раздСляСт ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° 3 части:

1. модСль β€” содСрТит ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»;

2. прСдставлСниС β€” ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСдставлСния);

3. ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ β€” занимаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π­Ρ‚ΠΎ дСлаСтся с Ρ†Π΅Π»ΡŒΡŽ разграничСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ способов Π΅Π΅ прСдставлСния ΠΈ принятия ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Данная схСма ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ позволяСт эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°.

ИспользованиС

Β· АрхитСктура WWW-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанных Π½Π° основных языках программирования.

9. Доска

Π’Π°ΠΊΠΎΠΉ шаблон ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π¨Π°Π±Π»ΠΎΠ½ «Доска» состоит ΠΈΠ· 3 Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

Β· доска β€” это структурированная глобальная ΠΏΠ°ΠΌΡΡ‚ΡŒ, содСрТащая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· пространства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ;

Β· источник знания β€” спСциализированныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ со своим собствСнным прСдставлСниСм;

Β· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ управлСния β€” Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚, настраиваСт ΠΈ исполняСт ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ доскС. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ доскС. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡ‰ΡƒΡ‚ Π½Π° доскС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Одним ΠΈΠ· способов поиска являСтся сопоставлСниС шаблонов с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ источником Π·Π½Π°Π½ΠΈΠΉ.

ИспользованиС

Β· идСнтификация ΠΈ отслСТиваниС транспортных срСдств;

Β· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ структур Π±Π΅Π»ΠΊΠ°;

Β· интСрпрСтация сигналов Sonar.

10. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€

Он ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ языкС программирования. Π’ основном, Ρ‚Π°ΠΌ расписано, ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ строки (ΠΈΠ½Π°Ρ‡Π΅ говоря: «прСдлоТСния» ΠΈΠ»ΠΈ «выраТСния»), написанныС Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ языкС программирования. Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ класс ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу языка.

ИспользованиС

Β· языки запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (SQL);

Β· языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для описания ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… шаблонов

НиТС приводятся ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… шаблонов.

ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ шаблон

ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный шаблон

Π¨Π°Π±Π»ΠΎΠ½ Β«Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ-Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉΒ»

Π¨Π°Π±Π»ΠΎΠ½ Β«ΠšΠ°Π½Π°Π»Ρ‹ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹Β»

Π¨Π°Π±Π»ΠΎΠ½ Β«ΠŸΠΎΡΡ€Π΅Π΄Π½ΠΈΠΊΒ»

ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ шаблон

Π¨Π°Π±Π»ΠΎΠ½ Β«Π¨ΠΈΠ½Π° событий»

Π¨Π°Π±Π»ΠΎΠ½ «МодСль-прСдставлСниС-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Β»

Π¨Π°Π±Π»ΠΎΠ½ «Доска»

Π¨Π°Π±Π»ΠΎΠ½ Β«Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Β»

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ прилоТСния: разбираСмся Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ· Β«Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅Β» рассказываСт, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ.

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

ΠšΠ°Ρ‚Ρ Павловская для Skillbox Media

Π•Π²Π³Π΅Π½ΠΈΠΉ ЁлчСв

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²ΠΎ Β«Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅Β». РаньшС Π±Ρ‹Π» фулстСком, бэкСндСром ΠΈ DevOps, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ» ΠΎΡ‚Π΄Π΅Π»ΠΎΠΌ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π» iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² GeekBrains, Π±Ρ‹Π» Π΄Π΅ΠΊΠ°Π½ΠΎΠΌ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π°. Бостоит Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Podlodka iOS Crew, Π²Π΅Π΄Ρ‘Ρ‚ YouTube-ΠΊΠ°Π½Π°Π» с Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠ°ΠΌΠΈ ΠΏΠΎ Flutter. Π’ Twitter ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΠΎΠ΄ Π½ΠΈΠΊΠΎΠΌ @tygeddar.

Π― люблю ΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, какая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π»ΡƒΡ‡ΡˆΠ΅. ΠœΠΎΠΆΠ΅Ρ‚, ΠΈΠ·-Π·Π° своСго Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ пСрфСкциониста ΠΈΠ»ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π° ΠΌΠΎΠΆΠ΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ лСнь ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² ΠΏΠ»ΠΎΡ…ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π‘ΠΏΠΎΠΉΠ»Π΅Ρ€: большС всСго я люблю Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MVC. Π”Π°Π»ΡŒΡˆΠ΅ расскаТу, ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ½Π΅ Π½Π΅ нравятся всякиС MVVM, MVP ΠΈ VIPER. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½Π΅Π΄Π°Π²Π½ΠΎ я разобрался Π²ΠΎ Flux ΠΈ Π΅Ρ‘ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Redux ΠΈ понял, Ρ‡Ρ‚ΠΎ ΠΈΡ… я Ρ‚ΠΎΠΆΠ΅ нСдолюбливаю.

Π’ основС ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Ρ‚Ρ€Π΅Π΄ Π°Π²Ρ‚ΠΎΡ€Π° Π² Twitter.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° MVC

Π― Ρ‚ΠΎΠ³Π΄Π° Π±Ρ‹Π» студСнтом, Π΄Π΅Π»Π°Π» курсовыС ΠΈ ΠΏΠ΅Ρ‚-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π£ Π½ΠΈΡ… Π±Ρ‹Π»Π° слоТная вёрстка ΠΈ нСпростая структура Π‘Π”, Π½ΠΎ максимально простая Π»ΠΎΠ³ΠΈΠΊΠ°. Код получался простым, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ мСня Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ устраивал.

МнС Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ написано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ инструмСнтам ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ…. Π― Π±Ρ‹Π» счастлив ΠΈ Π½Π΅ Π·Π°Π±ΠΈΠ²Π°Π» Π³ΠΎΠ»ΠΎΠ²Ρƒ Ρ‡Π΅ΠΏΡƒΡ…ΠΎΠΉ.

Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² своём ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ β€” пСрСнёс Π΅Ρ‘ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ». По Ρ„Π°ΠΊΡ‚Ρƒ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ Π½Π΅ измСнилось, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»Π΅ΠΆΠ°Π» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Π˜Π·ΡƒΡ‡Π°Ρ дискуссии Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈ рассуТдая ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, я понял, Ρ‡Ρ‚ΠΎ «толстая» модСль ΠΌΠ½Π΅ Π½Π΅ нравится. ΠŸΡƒΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ модСль остаётся Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ дальшС управляСт Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ всё слоТнСС, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΏΡƒΡ…Π»Π΅Π΅ (ΠΏΡ€Π°Π²Π΄Π°, Π½Π΅ ΠΊΠ°ΠΊ UIViewController Π² iOS). Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» с этим Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ, выносил Π»ΠΎΠ³ΠΈΠΊΡƒ Π² сторонниС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π» Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, Π½ΠΎ это ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ мСняло: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ, просто ΠΊΠΎΠ΄ пСрСносился ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

ΠŸΠΎΡ‡Π΅ΠΌΡƒ MVC Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…

Π’ 2013 Π³ΠΎΠ΄Ρƒ я пСрСсСл Π½Π° Laravel, разобрался с Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ классов Π² PHP, Π½Π°Ρ‡Π°Π» Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ООП ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» Β«Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄Β» Π‘Ρ‚ΠΈΠ²Π° МакконнСлла.

Π‘Ρ‚Π°Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ Π½Π΅ стоит ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ всё Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» β€” ΠΊΠΎΠ΄ ΠΈ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ структуру, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· MVC ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° я Π½Π°Ρ‡Π°Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π’ Π½ΠΈΡ… появились ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сильно ΠΏΠΎΡ…ΡƒΠ΄Π΅Π» β€” ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π±Π°Π·Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π» ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Π» ΠΎΡ‚ Π½ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ отправлял Π½Π° HTML-страницу.

АрхитСктура ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ Π±Ρ‹Π»Π° идСальной, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ подошла Π±Ρ‹ Π½ΠΈ для ΠΎΠ΄Π½ΠΎΠΉ слоТной систСмы. Но для ΠΌΠΎΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΊΡ€ΡƒΡ‚ΠΎΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ: ΠΊΠΎΠ΄ получался Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π° всС элСмСнты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ довольно нСзависимы.

Как я Π΄Π΅Π»Π°Π» систСму управлСния
VDS-сСрвСром

Π’ слоТной систСмС нСльзя ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, поэтому ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π» Π²Π΅Π±- ΠΈ API-интСрфСйсы, доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, Π²Ρ‹Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊ: HTML ⟷ JavaScript (ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с API) ⟷ API ⟷ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ⟷ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Всё это Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° MVC.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Когда я ΡƒΠ²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… компаниях, Ρ‚ΠΎ осознал нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… нюансов.

АрхитСктура Π½Π΅ Π΄Π°Ρ‘Ρ‚ прСимущСств. Ни ΠΎΠ΄Π½Π° продвинутая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Π±Ρ‹Π»Π° Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я Π΄Π΅Π»Π°Π» Π² самом Π½Π°Ρ‡Π°Π»Π΅. Π—Π° всё врСмя я ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ поэтому ΠΌΠΎΠ³ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·Ρƒ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Но ΠΌΠ΅ΠΆΠ΄Ρƒ MVC ΠΈ MVP Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ β€” ΠΊΡ€ΠΎΠΌΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ классов ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π΅Ρ…, ΠΊΠΎΠ³Π΄Π° элСмСнты Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Компании ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Одни говорят, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ MVVM, Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΎ ΠΆΠ΅ самоС называСтся MVC. Π― Π²ΠΈΠ΄Π΅Π» ΠΏΡΡ‚ΡŒ MVVM-систСм, ΠΈ всС Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” VIPER, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ благодаря Π•Π³ΠΎΡ€Ρƒ Волстому Π΅ΡΡ‚ΡŒ подробная докумСнтация ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Но Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΈ отличия.

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ°Ρ. Π’Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈΠ·-Π·Π° мСйнстримности бСсполСзно. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MVVM, Π½ΠΎ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ»Π°Π΄Ρ‘Ρ‚ Π² Ρ€Π°Π·Π½Ρ‹Π΅ части ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

АрхитСктура Π½Π΅ спасёт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС ΠΎΠ½Π° Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ успСха.

Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ MVC Π½Π° самом Π΄Π΅Π»Π΅

Π― постоянно ΠΈΠ·ΡƒΡ‡Π°Π» Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Ρ‡ΠΈΡ‚Π°Π» ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ спорил с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, нСсколько Ρ€Π°Π· пСрСсматривал идСю MVC Π² языкС Smalltalk ΠΈ нСсколько Ρ€Π°Π· мСнял ΠΊ Π½Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ я понял, Ρ‡Ρ‚ΠΎ MVC β€” это Π½Π΅ Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ нСсколько классов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. МодСль β€” Π½Π΅ ΠΏΡ€ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ ΠΏΡ€ΠΎ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΈ ΠΏΠΎΡ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MV.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π±Ρ‹Π»ΠΈ ΠΈ Π΄ΠΎ MVC, ΠΈΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Главная Π·Π°Π΄Π°Ρ‡Π° MVC β€” ΡΠ²ΡΠ·Π°Ρ‚ΡŒ UI со всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. ЕдинствСнная рСкомСндация ΠΎΡ‚ создатСля β€” ΠΏΡ€ΠΈ надобности ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ View свой фасад для Model ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½-Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ.

View β€” это ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Model β€” ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π—Π°Π΄Π°Ρ‡Π° Controller β€” Π½Π΅ Π±Ρ‹Ρ‚ΡŒ прослойкой ΠΌΠ΅ΠΆΠ΄Ρƒ V ΠΈ M, Π° всСго лишь ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ MVC β€” Π½Π΅ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ UI с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ частями прилоТСния. А ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΡƒΠΆΠ΅ пускай Π΄ΡƒΠΌΠ°Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€. Π­Ρ‚ΠΎ Π½Π΅ космичСская инТСнСрия.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ MVP, MVVM ΠΈΠ»ΠΈ VIPER Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ MVC, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Ρ‘. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π° Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ View, это стало Π΅Π³ΠΎ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ MVC Π² Apple, MVVM ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ β€” это MV, Π³Π΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠ±Ρ€Π°Π»ΠΈ Π·Π° Π½Π΅Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ. Из всСх соврСмСнных MV(x) ΠΈΠΌΠ΅Π½Π½ΠΎ MVVM большС всСго ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ MVC.

ВсС эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅. Иногда слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΎ Ρ‡Ρ‘ΠΌ Ρ‚Π΅Π±Π΅ говорят, хотя Π·Π°Π΄Π°Ρ‡Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ понятнСС.

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

Как Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² любой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, ΠΈ ΠΈΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ стоит ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ внимания. Но это Π½Π΅ Ρ‚Π°ΠΊ. Π£ мСня Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ».

Π“Π»Π°Π²Π½ΠΎΠ΅ β€” рСализация. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π°, ΠΊΠ°ΠΊ Π΅Ρ‘ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅. Всё зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ классы, Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ элСмСнты ΠΈ ΠΊΠ°ΠΊ классы ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. ВсС ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ваш стандарт, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Model β€” ваша ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. АрхитСктура MVC Π½Π΅ Π΄Π°Ρ‘Ρ‚ инструкций, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния. Π’Π°ΡˆΠ° ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² Model ΠΊΠ°ΡˆΡƒ, Π³Π΄Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° классов β€” Service, Π° вторая ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° β€” Helper.

НуТно Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² основах. НС стоит ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΈΠ· Ρ‡Π΅Π³ΠΎ ΠΎΠ½Π° логичСски слСдуСт. Π’ΡƒΡ‚ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ история, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, SOLID ΠΈ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Β«Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄Β» Π‘Ρ‚ΠΈΠ²Π° МакконнСлла.

Π‘ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° я Π½Π°Ρ‡Π°Π» Ρ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π£ мСня появилась ΠΊΡƒΡ‡Π° сущностСй с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ названиями ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, я создал ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ экшСнов. Π’ ΠΈΡ‚ΠΎΠ³Π΅ сам запутался, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ с Ρ‡Π΅ΠΌ взаимодСйствуСт.

Redux Ρ…ΠΎΡ€ΠΎΡˆΠ° для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΡ„Π»Π°ΠΉΠ½, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ происходит ΠΊΡƒΡ‡Π° асинхронных Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… событий. Π’Π°ΠΌ этот Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚ стоит Ρ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ спасёт Π²Π°ΠΌ Тизнь. Но Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ MV ΠΈ Π½Π΅ ΠΏΠ°Ρ€ΠΈΡ‚ΡŒΡΡ.

Π’Ρ‹Π²ΠΎΠ΄: Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

На Β«Π₯Π°Π±Ρ€Π΅Β» Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΠ± MVC β€” Β«ΠžΡ…ΠΎΡ‚Π° Π½Π° мифичСский MVC. ΠžΠ±Π·ΠΎΡ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ пСрвоисточникам ΠΈ ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ самому» ΠΈ Β«ΠžΡ…ΠΎΡ‚Π° Π½Π° мифичСский MVC. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса». ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈΡ…, Ссли ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ β€” Π°Π²Ρ‚ΠΎΡ€ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π», Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Чистая АрхитСктура для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Π₯ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Многим Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, сСрвСрных ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌ, Ρ‚.ΠΊ. являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ построСнии Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π²Π΅Π±Π΅ ΠΎΠ½ прСдставлСн ΠΎΡ‡Π΅Π½ΡŒ скудно, хотя ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ написан Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VS Code.

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ примСнСния этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π²Ρ‹ ΠΎΡ‚Π²ΡΠΆΠ΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π‘ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ прСдставлСния Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго прилоТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ React, Preact, Vue, Mithril Π±Π΅Π· пСрСписывания бизнСс Π»ΠΎΠ³ΠΈΠΊΠΈ, Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΄Π°ΠΆΠ΅ Π²ΡŒΡŽΡ…ΠΈ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Angular 1, Π²Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ смоТСтС пСрСвСсти Π΅Π³ΠΎ Π½Π° Angular 2+, React, Svelte, WebComponents ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ свою Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ прСдставлСния. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Angular 2+, Π½ΠΎ Π½Π΅Ρ‚Ρƒ спСциалистов для Π½Π΅Π³ΠΎ, Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ смоТСтС пСрСвСсти ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π±Π΅Π· пСрСписывания бизнСс Π»ΠΎΠ³ΠΈΠΊΠΈ. А Π² ΠΈΡ‚ΠΎΠ³Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Ρ€Π΅ΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Π§Ρ‚ΠΎ ΠΆΠ΅ это Π·Π° магия такая?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Чистая АрхитСктура

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ это, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π° Π ΠΎΠ±Π΅Ρ€Ρ‚Π° «Чистая АрхитСктура» (Robert C.Martin Β«Clean ArchitectureΒ»). ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎ ссылкС.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ:

ДостигаСтся такая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π·Π° счСт раздСлСния прилоТСния Π½Π° слои Service, Repository, Model. Π― ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Чистой АрхитСктурС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ MVC ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ слои:

ΠšΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Чистая АрхитСктура

Π’Π΅Π± Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΡˆΠ»Π° большой ΠΏΡƒΡ‚ΡŒ развития, начиная ΠΎΡ‚ простого скриптования Π½Π° jquery Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… SPA ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. И сСйчас Π²Π΅Π± прилоТСния стали Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ большими Ρ‡Ρ‚ΠΎ количСство бизнСс Π»ΠΎΠ³ΠΈΠΊΠΈ стало сопоставимо ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ сСрвСрныС, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ слоТныС ΠΈ большиС прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ пСрСносят бизнСс Π»ΠΎΠ³ΠΈΠΊΡƒ с сСрвСра Π½Π° Π²Π΅Π± прилоТСния для экономии Π½Π° стоимости сСрвСров, Чистая АрхитСктура ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΎΡ‚ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ².

Π’ Ρ‚ΠΎΠΆΠ΅ врСмя Ссли ваша Π·Π°Π΄Π°Ρ‡Π° просто вСрстка ΠΈ анимация Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΎΠ², Ρ‚ΠΎ Π§ΠΈΡΡ‚ΡƒΡŽ АрхитСктуру просто Π½Π΅ΠΊΡƒΠ΄Π° Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Если ваша бизнСс Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π΅ ΠΈ ваша Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅, Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ прочувствуСтС гибкости Чистой АрхитСктуры, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠ»Π°Ρ†Π΄Π°Ρ€ΠΌΠΎΠΌ для Π²Π·Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ роста прилоТСния.

Π“Π΄Π΅ ΡƒΠΆΠ΅ примСняСтся?

Чистая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ привязана ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ языку программирования. ДСсятилСтия Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для написания Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π³ΠΎ ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… для сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Asp.Net Core, Java Spring ΠΈ NestJS. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ популярна ΠΏΡ€ΠΈ написании iOs ΠΈ Android ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Но Π² Π²Π΅Π± Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ½ прСдстал Π² ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… Angular.

Π’Π°ΠΊ ΠΊΠ°ΠΊ я сам Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Typescript, Π½ΠΎ ΠΈ C# Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‚ΠΎ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΡŒΠΌΡƒ ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ для Asp.Net Core.

Π’ΠΎΡ‚ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния:

Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ написано Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ, дальшС ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ частям ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ для Asp.Net Core прилоТСния, Π½ΠΎ для Java Spring, WinForms, Android, React Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ ΠΊΠΎΠ΄ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, мСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ язык ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π²ΡŒΡŽΡ…ΠΎΠΉ (Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ).

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅Π±-прилоТСниях

ЕдинствСнный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытался ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π§ΠΈΡΡ‚ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π±Ρ‹Π» Angular. Но ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ это просто уТасно, Ρ‡Ρ‚ΠΎ Π² 1, Ρ‡Ρ‚ΠΎ Π² 2+.

И ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для этого ΠΌΠ½ΠΎΠ³ΠΎ:

НачинаСм ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π§ΠΈΡΡ‚ΡƒΡŽ АрхитСктуру Π±ΡƒΠ΄Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ прилоТСния, максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ Π² страховой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, страховыС случаи, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ страхования ΠΈ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° лишь малая Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, Π½ΠΎ ΠΏΠΎ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π½Π΅ΠΌ со слоя Controller, Π° View слой ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π² самом ΠΊΠΎΠ½Ρ†Π΅. А ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ создания рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ слой Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅.

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Controller

Controller β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° взаимодСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π° Π²Π΅Π± страницС, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² консоли линукса, ΠΈΠ»ΠΈ сСтСвой запрос, ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ IO событиС приходящСС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π² чистой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ событиС ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ бизнСс процСссы. Π’ идСальном случаС Controller Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ View, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Web, React-Native ΠΈΠ»ΠΈ Electron.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для нашСго прилоТСния. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ Ρ‚Π°Ρ€ΠΈΡ„ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ:

Π£ нас получился ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±Π΅Π· чистой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Ссли ΠΎΡ‚Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ React.Component Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Π’Π°ΠΊ ΠΏΠΈΡˆΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сущСствСнных нСдостатков. Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π’Π΅Π΄ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚Π°Ρ€ΠΈΡ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅, Π½ΠΎ ΠΈ Π½Π° Π»Π΅Π½Π΄ΠΈΠ½Π³Π΅ ΠΈ мноТСствС Π΄Ρ€ΡƒΠ³ΠΈΡ… мСст для привлСчСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ услугС.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вынСсти Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ слой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Service.

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Service

Service β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° всю бизнСс Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния. Если Controller’Ρƒ понадобилось ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ β€” ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ это Ρ‡Π΅Ρ€Π΅Π· Service. Если нСскольким ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ понадобилась ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Service. Но сам слой Service Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΎ слоС Controller ΠΈ View ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ вынСсСм Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π² сСрвис ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΠΌ сСрвис Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли нСскольким ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Ρ‚Π°Ρ€ΠΈΡ„Ρ‹, ΠΎΠ½ΠΈ смогу ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚ΡƒΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ· сСрвисов. Π’ сСрвисах Π³Π»Π°Π²Π½ΠΎΠ΅ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ SOLID ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° свою Π·ΠΎΠ½Ρƒ отвСтствСнности. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ΄ΠΈΠ½ сСрвис ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвис Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Π°Ρ€ΠΈΡ„Π°ΠΌΠΈ.

Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли источник Π΄Π°Π½Π½Ρ‹Ρ… помСняСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ fetch ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π½Π° websocket ΠΈΠ»ΠΈ grps ΠΈΠ»ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСстовыми? И Π²ΠΎΠΎΠ±Ρ‰Π΅ Π·Π°Ρ‡Π΅ΠΌ бизнСс Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ источникС Π΄Π°Π½Π½Ρ‹Ρ…? Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сущСствуСт слой Repository.

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Repository

Repository β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ качСствС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ сСрвСр, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ°ΠΌΡΡ‚ΡŒ, localstorage, sessionstorage ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слой Service ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ вынСсСм сСтСвыС запросы ΠΈΠ· сСрвисов Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈ этом Π½Π΅ мСняСм:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ достаточно ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ запрос ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ любой сСрвис смоТСт ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот запрос. ПозТС ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π΅ трогая ΠΊΠΎΠ΄ сСрвиса ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° врСмя тСстирования.

Π’ сСрвисС UserProfilService ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Π·Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² бизнСс слоС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ трСбования, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π² слоС сСрвиса Π½Π΅Ρ‚Ρƒ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Controller β€” Service β€” Repository Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄ Π² вашС Π·Π°Π²Ρ‚Ρ€Π°.

Настало врСмя Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ Π·Π° Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π»ΠΈ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅. Π—Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ слой Models.

МодСли: DTO, Entities, ViewModels

Models β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° описаниС структур с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠ΅ описаниС ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ с Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для построСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… хранящихся Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ модСль профиля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ сообщим ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ слоям Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π΅ с абстрактным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π° с Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *