ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° 8 шагов

Если Π²Ρ‹ Π²ΡΠ΅Ρ€ΡŒΠ΅Π· ΠΏΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Π΅Ρ‚Π΅ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ своСго Π²Π΅Π±-прилоТСния, сначала ΠΎΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° Π΄Π²Π° вопроса:

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ β€” Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всСгда разрабатываСтся для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ΄Π½ΠΎΠΉ. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° измСнСния, ΠΈ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ мСньшС врСмя Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ТизнСспособно.

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Π΅ΡΡ‚ΡŒ ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ 6 ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-прилоТСния, самым соврСмСнным ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся рСализация Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° ΠΊΠ°ΠΊ single page application, Π³Π΄Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ с бэкСндом рСализуСтся Ρ‡Π΅Ρ€Π΅Π· REST API. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ созданию Π²Π΅Π±-прилоТСния достигаСтся Π·Π° 8 шагов.

1. Π Π°Π±ΠΎΡ‚Π° с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ бэкСнда

Π•ΡΡ‚ΡŒ Π΄Π²Π° способа Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ бэкСнда Π² ΠΎΠ΄Π½ΠΎΠΌ сСрвисС (монолитная Π»ΠΎΠ³ΠΈΠΊΠ°) ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ микросСрвисС. Работая с нСбольшим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ способ, Π° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ идСально ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ.

2. Π’Ρ‹Π±ΠΎΡ€ языка программирования

Если Π²Π°ΠΌ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π±-прилоТСния, ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π° Python (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Django, Flask), Node JS (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Express JS, Koa JS, Gatsby JS), Ruby (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Ruby on Rails, Grape). Если Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ прилоТСния β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Golang (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Gingonic, Beego, Revel). Π•Ρ‰Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ популярный язык программирования ΠΎΡ‚ Microsoft β€” C#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ произносится ΠΊΠ°ΠΊ «ΡΠΈ ΡˆΠ°Ρ€ΠΏ». Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² качСствС языка ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня для CLR. Π‘# Π²ΠΎΠ±Ρ€Π°Π» Π² сСбя ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΎΡ‚ C++, ΠœΠΎΠ΄ΡƒΠ»Π°, Delphi, Smalltalk ΠΈ Java, Π½ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π‘# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ сСбя ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПБ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, C# Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C++ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС классов, Π½ΠΎ допускаСт ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ интСрфСйсов. Π“Π»Π°Π²Π½ΠΎΠ΅, ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹ язык Π²Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ, ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Π΅Ρ‚Π΅.

3. РСализация бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ

Π‘ΠΏΠ΅Ρ€Π²Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ MVC, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ presenter ΠΈ interactor. Но ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ presenter ΠΈ interactor находится Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… уровнях ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ смысловыС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Presenter ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ события ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (UI) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ callback ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ (Interactors). Presenters Π»Π΅Π³ΠΊΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ Π²Π΅Π±-прилоТСния ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для пСрСмСщСния presenters Π½Π° экран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдставлСния (View).

Interactor ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ Π²Π΅Π±-прилоТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ условий ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Interactor Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ„ΠΎΠ½ΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ события ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, presenters, c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ callback.

4. QA-тСстированиС бэкСнда

ВСстированиС Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° вашСго Π²Π΅Π±-прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ постоянно «Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ» Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ автоматичСскоС тСстированиС для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, соотвСтствия UI/UX ΠΈ API. ΠŸΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² тСстирования. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ roadmap для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ испытаниями для всСх Ρ‚ΠΈΠΏΠΎΠ² тСстирования. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлайтС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ инструмСнтов отслСТивания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ покрытия ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ «Π²ΠΈΡΠ½Π΅Ρ‚» ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· Π±Π°Π³ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΠ΅Π².

5. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сваггСра

Swagger – это «ΡƒΠΌΠ½Π°Ρ» докумСнтация RESTful web-API. По сути, это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для спСцификации REST API, Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ Swagger UI. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° счСт Π²Π΅Π±-прилоТСния.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° вашСго Π²Π΅Π±-прилоТСния. Как Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ запросы ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° сСрвСр? Π—Π°Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄ бэкСнда? ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, это Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сваггСра, ΠΏΡ€ΠΈ этом ΠΎΡ‡Π΅Π½ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли сваггСр Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· тСсты. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ API.

6. Π Π°Π±ΠΎΡ‚Π° с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Angular, React, Vue. Π£ Π½ΠΈΡ… Ρƒ всСх Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ свои достоинства, Ρ‚Π°ΠΊ ΠΈ свои нСдостатки. Но я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ΠΎΠΌ React, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π»Π΅Π³Ρ‡Π΅, ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ.

7. QA-тСстированиС Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ двумя основными Π²ΠΈΠ΄Π°ΠΌΠΈ тСстов β€” Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ВСсты Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов. ВСсты Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π·Π°Π΄ΡƒΠΌΠ°Π»ΠΈ, прописывая Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄. Для осущСствлСния QA-тСстирования Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠ°ΠΊ Mocha, Chai, Jest, Ava, Enzyme, Jest β€” ΠΎΠ½ΠΈ самыС Ρ…ΠΎΠ΄ΠΎΠ²Ρ‹Π΅, простыС Π² эксплуатации ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ понятныС ΠΈΠ· всСх.

8. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ качСства Π²Π΅Π±-прилоТСния

Когда Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ сСдьмой этап, вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π³ΠΎΡ‚ΠΎΠ²ΠΎ. Ну, ΠΈΠ»ΠΈ ΠΎΠ½ΠΎ находится Π½Π° Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ стадии готовности β€” 98%. Π§Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Ρƒ? ЕстСствСнно, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, β€” это ΠΏΠΎΠ½ΡΡ‚ΡŒ, насколько качСствСнно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ врСмя Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π΅Π³ΠΎ износостойкости. Π’ этом Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Lighthouse β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° качСства вашСго Π²Π΅Π±-прилоТСния. Lighthouse ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ систСмный Π°ΡƒΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ доступности Π²Π΅Π±-прилоТСния для понимания ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π‘ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Lighthouse Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π² дальнСйшСм Π² случаС надобности Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π½Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

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

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π΅Π±-сайта

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

Π§Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ, слоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ знания для этого ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ? ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом Π² сСгодняшнСй ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π—Π°Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· сайта ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠœΡ‹ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Β«Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β», подразумСвая ΠΏΠΎΠ΄ этим простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π§Π°Ρ‰Π΅ всСго прилоТСния ΠΏΠΎΡ…ΠΎΠΆΠΈ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ вСрсии сайта, Π½ΠΎ всС-Ρ‚Π°ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ отличия. Π’ ΠΏΠΎΠ»Π½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ функциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° сайтС попросту ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. НапримСр, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ функция встроСнных ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, хотя сСйчас ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ спокойно ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· сайтов популярны срСди новостных рСсурсов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Π±-сайтов, насыщСнных ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ. Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сайт, Π½ΠΎ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ это, Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² прСимущСствах Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Π§Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ?

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

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

Π›ΡƒΡ‡ΡˆΠΈΠ΅ сСрвисы для создания прилоТСния ΠΈΠ· сайта

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ бСсплатный сСрвис Π½Π΅ смоТСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ простоС, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΊ дСмовСрсии. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ спСциалисту Π»ΠΈΠ±ΠΎ ΠΊ ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΌ сСрвисам.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π½ΠΈΡ… ΠΌΡ‹ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π΄Π°Π»Π΅Π΅ – рассмотрим ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ простыС.

Tadapp Native

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Tadapp Native – это Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ‚Π΅Ρ…, Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ. БСрвис завСряСт, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android ΠΈ iOS всСго Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ бСсплатно ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Google Play. ЕдинствСнноС, с Ρ‡Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊ это с Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠ΅ΠΉ сайта. Если Π΅Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ конвСртация, вСроятнСС всСго, ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: ΠΎΡ‚ 890 Ρ€ΡƒΠ±Π»Π΅ΠΉ

Бсылка Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ страницу: Tadapp Native

Appmaker

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Appmaker – сСрвис с 14-Π΄Π½Π΅Π²Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ, Π²ΠΎ врСмя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· сайта ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ iOS ΠΈΠ»ΠΈ Android. Appmaker ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ 3 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Π½Π° WordPress, c WooCommerce ΠΈ Π² Π²ΠΈΠ΄Π΅ Web App (Π²Π΅Π±-вСрсия). На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ истории ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовали Π΄Π°Π½Π½Ρ‹ΠΉ сСрвис.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница: Appmaker

Appverter

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница: Appverter

AppPresser: плагин для WordPress

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница: AppPresser

MobiLoud: плагин для WordPress

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

MobiLoud – это Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π±-рСсурса, созданного Π½Π° WordPress. Он ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ сСрвис, Π½ΠΎ здСсь Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ отличия. MobiLoud прСдоставляСт нСсколько «прСдустановок» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ – ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΈ ΠΎΠ½Π° Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница: Mobiloud

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· сайта

Π›ΡƒΡ‡ΡˆΠΈΠ΅ сСрвисы ΠΌΡ‹ рассмотрСли, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС Π²Π΅Π±-сайта. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм сСрвис Appmaker с бСсплатным ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ созданиС прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСна ссылка Π½Π° скачиваниС Ρ„Π°ΠΉΠ»Π°. На этом всС!

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

Π’Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Java Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ дальшС, Ρ‚Π°ΠΊ-ΠΊΠ°ΠΊ эта ΡΡ‚Π°Ρ‚ΡŒΡ рассчитана скорСС Π½Π° Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Π½ΠΎ всё-ΠΆΠ΅ я Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄, Ссли Π±Ρ‹ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ оставил ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ Π² ΠΌΠΎΠΉ адрСс ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π» Π½Π° ошибки.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня.

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

Для ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… бизнСсмСнов, ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΡ… бизнСса совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ большиС дСньги Π½Π° Β«ΠΊΡ€ΡƒΡ‚ΠΎΠΉΒ» сайт, Π° достаточно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ СдинствСнноС Π·Π° Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ β€” это Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒ Π² Π°Ρ€Π΅Π½Π΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ сайт, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ скорСС ΡΡ‚Π°Ρ‚ΡŒΡ, посвящСнная ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΈ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ извСстныС рСсурсы, ΠΊΠ°ΠΊ Google, Facebook, Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сСрвисы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ рСализация ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ, Π½ΠΎ ΡΡƒΡ‚ΡŒ остаётся Π΅Π΄ΠΈΠ½ΠΎΠΉ.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ заинтСрСсовался:

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Установка Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ:

ΠŸΠΈΡΠ°Ρ‚ΡŒ наш сСрвис ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π° Java, ΠΊΠ°ΠΊ самом распространённом языкС для Π²Π΅Π±-сСрвисов.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ установлСна послСдняя вСрсия Java, сСйчас это 8 вСрсия. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ здСсь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Java. Π’ 97% случаях Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ, Π½ΠΎ Ссли это Π½Π΅ Ρ‚Π°ΠΊ, Ρ‚ΠΎ слСдуя инструкциями Π½Π° этом сайтС Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° исправитС это, установив ΠΈ настроив ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Если ΠΆΠ΅ всё-Ρ‚Π°ΠΊΠΈ это Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, сразу договоримся с Π²Π°ΠΌΠΈ Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π° этих сайтах:

Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΎΡ‚ΠΊΡ€ΠΎΡŽ Π²Π°ΠΌ сСкрСт, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ с 1 Ρ€Π°Π·Π° β€” это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π­Ρ‚ΠΎ нСоспоримый Ρ„Π°ΠΊΡ‚. ΠšΡƒΡ‡Π° ошибок, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ вСрсий, отсутствиС Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ классов ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅ β€” это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ явлСниС.

Π’Π°Ρˆ ΠΏΠΎΠΊΠΎΡ€Π½Ρ‹ΠΉ слуга сам просидСл 3 Π½Π΅Π΄Π΅Π»ΠΈ с ошибкой, ΠΎΠ±Π»Π°Π·ΠΈΠ² Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°ΠΊΠΎΡƒΠ»ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя потСрял связь с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠ»Π΅ΠΆΠ°Π» нСсколько мСсяцСв Π² психиатричСской Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Π΅, Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ± этом… Π­Ρ‚ΠΎ история для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜Ρ‚Π°ΠΊ, Java стоит β€” всё Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ инструмСнт. Π”Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° идСя. ΠšΠ°Ρ‡Π°Π΅ΠΌ ΠΈ ставим ΠΎΡ‚ΡΡŽΠ΄Π° JetBrains.

Волько ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ultimate β€” вСрсия. ΠŸΡ€ΠΎΡΡ‚Π°Ρ вСрсия Π½Π΅ позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ бСсплатный ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° 30 Π΄Π½Π΅ΠΉ, Π΄ΡƒΠΌΠ°ΡŽ с этим Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π˜Ρ‚Π°ΠΊ, срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ, Java Π΅ΡΡ‚ΡŒ.

Начнём

Π’ своё врСмя я ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Π» ΠΊΡƒΡ‡Ρƒ статСй ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΠΈ Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΈΡΠΊΠ»ΡŽΡ‡Ρƒ ΠΏΠΎ максимуму ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π΅Ρ‚, Ρƒ мСня ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ другая вСрсия, Π΄Ρ€ΡƒΠ³ΠΎΠΉ порядок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

Часто Π²ΠΈΠΆΡƒ вопросы ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΏΡ€ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ интСрСсныС Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ Spring ΠΈ Hibernate (https://spring.io/, hibernate.org). Π’ 96% случаях Π²Π°ΠΌ это ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ, ΠΈ Π±Π΅Π· Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ скилла Β«solve problemΒ» Π²Ρ‹ увязнитС Ρ‚Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ тяТСло.

Π’Π°ΡˆΠ° альма-ΠΌΠ°Ρ‚Π΅Ρ€ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… β€” это 2 Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

Β«Application serverΒ». Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? А Π²ΠΎΡ‚, Ρ‡Ρ‚ΠΎ Application server.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Π²Π΅Π±-рСсурсов

Π‘ΡƒΡ‚ΡŒ такая, сСрвСр. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСрвСр? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Β«Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π½ΠΎΒ» ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡ Π² систСмС ΠΈ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚Ρ‹. Π­Ρ‚ΠΎ Ρ‚Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°. Но Π² ΠΎΠ±Ρ‰Π΅ΠΌ, рассмотрим 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ сСрвСр ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (GET) β€” просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ число, страницу, ΠΈΠ»ΠΈ Π΅Ρ‰Ρ‘ Π±ΠΎΠ³ Π·Π½Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ. Но, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ POST β€” ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄ этим.

Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ понятно, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‚ΡƒΡ‚ ru.wikipedia.org/wiki/REST.

Π‘Ρ‚Π°Ρ‚ΡŒΡ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ слишком сильно расти. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Ρƒ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ.

Π˜Π΄Ρ‘ΠΌ Π² ΠΌΠΎΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ систСма контроля вСрсий, поэтому ΠΈΠ΄Ρ‘ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ Π΄ΠΈΠ»Π΅Ρ‚Π°Π½Ρ‚Π°, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° (Β«Download ZIPΒ» β€” ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΈ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ).

Π’ ΠΎΠΊΠ½Π΅ привСтствия ΠΈΠ΄Π΅ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«import projectΒ» β€” ΠΆΠΌΡ‘ΠΌ. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ скачанный ΠΈ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π–ΠΌΡ‘ΠΌ Π΄Π°Π»Π΅Π΅, Π΄Π°Π»Π΅Π΅ ΠΈ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° Π½Π΅ откроСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ слоТности

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, Π½ΠΎ Π²Ρ‹ Π½Π΅ запуститС сСрвСр ΠΈ Π½Π΅ смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сайт. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, идСя Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΠΉ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΎΠ½Π° ΡƒΠΌΠ½Π°, Π½ΠΎ Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ.

ОбъяснСниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, заняло Π±Ρ‹ ΠΏΠ°Ρ€Ρƒ страниц ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎ Π±Ρ‹ Π²Π°ΠΌ «мСдвСТью» услугу. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ слоТности β€” ΠΏΠ΅Ρ€Π²Ρ‹Π΅ трудности. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ вашим Β«Π±ΠΎΠ΅Π²Ρ‹ΠΌ ΠΊΡ€Π΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌΒ». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” Π½Π΅ ΠΏΠΈΡ€ΠΎΠΆΠΊΠΈ ΠΏΠ΅Ρ‡ΡŒ. Бсылки свСрху Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚. ΠŸΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 1-2 часа Π½Π° это β€” это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Π― знаю Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сидСли нСсколько Π΄Π½Π΅ΠΉ, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ сумСли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр. Π­Ρ‚ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌ чСсти β€” Π½ΠΎ Ρ„Π°ΠΊΡ‚ β€” Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΊΡ‚. Π’ΠΏΠ΅Ρ€Π΅Π΄. ЗапуститС β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ.

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ tomcat (ΠΊΠ°ΠΊ? ссылки Π²Π²Π΅Ρ€Ρ…Ρƒ, ΠΏΠΎ Π½ΠΈΠΌ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚).

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ тСстированиС сСрвиса

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡ‚ это:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Но Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, этого слСдовало ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. Π£ нас Π½Π΅ создана Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SQLite

ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ с 0 Π½Π΅ просто. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± этом Π½Π° спСциализированных рСсурсах.

ΠœΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ сСрвис: www.codecademy.com (Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Java, SQL, Git, JavaScript ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ супСр ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ), поэтому милости ΠΏΡ€ΠΎΡˆΡƒ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π΄Π΅Π»Π°Π΅ΠΌ это Ρ‚Π°ΠΊ:

Π’Π°Π±Π»ΠΈΡ†Π° создана. МоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ наша систСма. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Ρƒ ΠΈΠΌΡ‘Π½ ΠΈ посмотритС, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ ΡƒΠΆΠ΅ ΠΈΠ· самой Π±Π°Π·Ρ‹.

Π Π°Π·Π±ΠΎΡ€ ΠΊΠΎΠ΄Π°

Начнём ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρƒ нас Π² ΠΊΠΎΠ΄Π΅:

Π’Π°ΠΊ ΡƒΠΆ повСлось, Ρ‡Ρ‚ΠΎ Π² Java всС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² xml-Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‚ΡƒΡ‚ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Ρ„Π°ΠΉΠ» web.xml ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ сСрвлСт Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ссылку ΠΈΠ»ΠΈ имя сСрвлСта.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρƒ нас простоС, поэтому Ρƒ всСго 2 класса (SQLiteClass ΠΈ MainServlet).

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Π΅ΡΡ‚ΡŒ наш прСсловутый сСрвлСт.

А Π²ΠΎΡ‚ ΠΈ наши, упомянутыС Π²Ρ‹ΡˆΠ΅ POST ΠΈ GET запросы, эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сСрвлСта Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запросы ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘ΡƒΡ‚ΡŒ ΠΎΠ΄Π½Π° β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ, Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΡˆΠ»ΠΈ. НичСго слоТного. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ классу, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌΡƒ JDBC:

Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ всё просто, Ρ‚Π΅ ΠΆΠ΅ SQL запросы, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π²Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π² Java-ΠΊΠΎΠ΄. НСбольшой совСт β€” ΠΎΡΡ‚Π΅Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ΡΡŒ всяких надстроСк ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Они Ρ…ΠΎΡ€ΠΎΡˆΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй, ΠΈ слоТныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Но, настоящий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ запрос, Π±Π΅Π· Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ ΠΊΠ°ΠΊ сСриализация ΠΆΠΈΡ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ (особСнно ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ).

Всё, с сСрвСрной Ρ‡Π°ΡΡ‚ΡŒΡŽ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ. Π’ΡƒΡ‚ Π²Π°ΠΌ придётся ΠΏΠΎΡΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ руководства. Π‘Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ‚ΡƒΡ‚ Π½ΠΈΠΊΠ°ΠΊ.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

Π’ΠΎΡ‚ ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. А Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠ²Π΅Ρ€Ρ…ΡŠΠ΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ. Но, скаТу Π²Π°ΠΌ прямо, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ всё зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ, клиСнтская Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ сСрвСрная. И всё Π² основном ΠΈΠ·-Π·Π° JavaScript-Π°. ΠžΡ‡Π΅Π½ΡŒ быстро клиСнтский ΠΊΠΎΠ΄ прСвращаСтся Π² Π½Π°Π±ΠΎΡ€ «простынСй», Π·Π°ΠΏΠ»Π°Ρ‚, Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… вСсСлостСй. JavaScript суров ΠΈ бСспощадСн. На чистом Π½Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ тяТСло. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ JQuery. Π•ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ творСния, Π½ΠΎ ΠΈΡ… ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ здСсь Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Π•ΡΡ‚ΡŒ такая ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°, Ρ‡Ρ‚ΠΎ Π½Π°Π·ΠΎΠ²ΠΈ любоС слово ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π˜Π·Π²Π΅ΡΡ‚Π΅Π½ Π² ΡƒΠ·ΠΊΠΈΡ… ΠΊΡ€ΡƒΠ³Π°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊ Mocha, я Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ ΠΊΠ°ΠΊΠΈΠ΅ мысли посСщали Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π» Π΅ΠΌΡƒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Ρƒ Π»Π°Π΄Π½ΠΎ, это Π±Ρ‹Π»ΠΎ Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρƒ нас Ρ‚Π°ΠΌ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ?

ΠžΠΏΡΡ‚ΡŒ Π΄Π°ΠΌ ссылку Π½Π° ΠΎΡ‚Π»ΠΈΡ‡Π½Π΅ΠΉΡˆΠΈΠΉ рСсурс www.codecademy.com. Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ‚Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ Π΄Π°Ρ‘Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π±Π°Π·Ρƒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π’ΡƒΡ‚ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π§Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΡˆΠ»Ρ‘Ρ‚ Ρ‚ΠΎΡ‚ самый POST β€” запрос ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚. Всё просто, ΠΎΡ‚Π΄Π°Π» Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» с сСрвСра. По русски ΠΎΠ½ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ сСрвСру Β«Π”Π°ΠΉ ΠΌΠ½Π΅ ΠΈΠΌΠ΅Π½Π° всСх, ΠΊΡ‚ΠΎ Ρƒ тСбя Π² Π±Π°Π·Π΅Β» ΠΈΠ»ΠΈ «ЗанСси Π² Π±Π°Π·Ρƒ это имя» ΠΈ Π΄Π°Ρ‘Ρ‚ Π΅ΠΌΡƒ имя.

Π’ΠΎΡ‚ ΠΈ вся клиСнтская Ρ‡Π°ΡΡ‚ΡŒ.

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ рСсурс Π² настоящий ΠΌΠΈΡ€

Как ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, наш сСрвис ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° локальном хостС. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами Π½Π° нашСм ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

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

И ΠΏΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ сразу нСсколько ссылок:

Π§ΠΈΡ‚Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ написано, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ, Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ происходит взаимодСйствиС программиста ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра.

Π‘Π°ΠΌΠΈ сСрвСра ΠΌΠΎΠΆΠ½ΠΎ приобрСсти Π½Π° amazone. Бсылку Π½Π΅ даю, ΠΈΠ±ΠΎ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ, это Π½Π΅ слоТно. Π•ΡΡ‚ΡŒ бСсплатный тСстовый ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. НО! Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ остороТны, ваш ΠΏΠΎΠΊΠΎΡ€Π½Ρ‹ΠΉ слуга сам ΡΠ»Ρ‹ΡˆΠ°Π» истории, ΠΊΠ°ΠΊ со счСтов ΡΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ тысячи Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° хозяина, ΠΈΠ±ΠΎ систСма сама ΡƒΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ сСбС мощности. НС ΠΏΠΎΠΏΠ°Π΄ΠΈΡ‚Π΅ΡΡŒ, я сам ΡƒΠΆΠ΅ ΠΏΠ»Π°Ρ‚ΠΈΠ» нСсколько Ρ€Π°Π· Π·Π° нСпонятныС услуги, Ρ‚Π°ΠΌ всё Π½Π° английском. Если Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ β€” Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий Ρ‚Π°ΠΊΠΎΠ²:

На всякий случай я ΠΎΡΡ‚Π°Π²Π»ΡŽ Ρ‚ΡƒΡ‚ эти ссылки, Π²Π΄Ρ€ΡƒΠ³, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ застопорился Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ ΠΈ Ρ€Π΅ΡˆΠΈΠ» ΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² самый Π½ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ ΠΊΡƒΠ»ΡŒΠΌΠΈΠ½Π°Ρ†ΠΈΠΈ нашСго здСсь обсуТдСния Π”ΠΆΠ°Π²Ρ‹ ΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π½Π΅ΠΉ. Π‘Π»ΠΎΠΆΠ½ΠΎ? Π”Π°. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ? Π”Π°. ВсС, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС сСрвисы, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ, поисковая систСма с ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ индСксов, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π²ΠΈΠ΄Π΅ΠΎ-сСрвис с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ стрим-ΠΊΠ°Π½Π°Π»ΠΎΠ² β€” всё ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ. ΠžΡ‚Π΄Π°Ρ‚ΡŒ β€” Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Понимая эту ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π²Ρ‹ смоТСтС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ систСму, сСрвис ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

Π― Π½Π΅ стану Π»ΡƒΠΊΠ°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±ΠΌΠ°Π½Ρ‹Π²Π°Ρ‚ΡŒ вас ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ. Вряд Π»ΠΈ Π²Ρ‹ Π·Π° 2 ΠΈΠ»ΠΈ 3 Π½Π΅Π΄Π΅Π»ΠΈ станСтС супСр профСссионалами ΠΈ Π±ΡƒΠ΄Π΅Ρ‚Π΅ свободно ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ Π΄ΠΎΠ»Π³ΠΈΠΌΠΈ Π½ΠΎΡ‡Π°ΠΌΠΈ. Π§Π΅ΠΌ дальшС Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π»Π°Π·ΠΈΡ‚ΡŒ Π² Π΄Π΅Π±Ρ€ΠΈ, Ρ‚Π΅ΠΌ большС Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊ ΠΌΠ°Π»ΠΎ Π·Π½Π°Π΅Ρ‚Π΅. Π”ΠΎΡ€ΠΎΠ³Ρƒ осилит ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ, Π²ΠΏΠ΅Ρ€Π΅Π΄, Π΄Π΅Ρ€Π·Π°ΠΉΡ‚Π΅.

Π’ΠΏΠ΅Ρ€Π΅Π΄. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Ρ‚Π°Ρ€Π΅ΡŽΡ‰ΠΈΠΌ Π”ΡƒΡ€ΠΎΠ²Ρƒ ΠΈ Π‘Ρ€ΠΈΠ½Ρƒ ΠΏΠΎΡ€Π° ΡƒΠΉΡ‚ΠΈ Π½Π° ΠΏΠΎΠΊΠΎΠΉ, врСмя ΠΈΡ… славы ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΈ истории ΠΈ списки Forbs. И ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ Π² своё врСмя Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Π΅ΠΉΡˆΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, которая Π·Π°Ρ‚ΠΌΠΈΡ‚ собой Ρ‚Π°ΠΊΠΈΡ… Π³ΠΈΠ³Π°Π½Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ Google, Facebook ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π£Π΄Π°Ρ‡ΠΈ, спасибо, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

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

Π”Π΅Π»Π°Π΅ΠΌ соврСмСнноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с нуля

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ этот β€” Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Бколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠΉΠ΄Ρ‘Ρ‚ Π½Π° созданиС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°? Насколько это слоТно? Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΆΠ΅ со старта ΡƒΠΌΠ΅Ρ‚ΡŒ соврСмСнный Π²Π΅Π±-сайт?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ boilerplate ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ Π²Π΅Π±-прилоТСния со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, спСрва Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ! Π’ качСствС модСльного прилоТСния для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ я Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ wiki-Π΄Π²ΠΈΠΆΠΎΠΊ. Π£ нас Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Π΅ Π² Markdown; ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ (ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ) ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΈ. Всё это ΠΌΡ‹ ΠΎΡ„ΠΎΡ€ΠΌΠΈΠΌ Π² Π²ΠΈΠ΄Π΅ одностраничного прилоТСния с server-side rendering (Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для индСксации Π½Π°ΡˆΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°).

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ пройдёмся ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ для этого понадобятся:

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°: git

НавСрноС, ΠΏΡ€ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ вСсти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Github. КаТдой сСкции ΡΡ‚Π°Ρ‚ΡŒΠΈ соотвСтствуСт ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ (я Π½Π΅ΠΌΠ°Π»ΠΎ Ρ€Π΅Π±Π΅ΠΉΠ·ΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого!).

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°: docker-compose

Начнём с настройки окруТСния. ΠŸΡ€ΠΈ Ρ‚ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρƒ нас имССтся, вСсьма Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ использованиС docker-compose.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ„Π°ΠΉΠ» docker-compose.yml ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ происходит.

НС ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ docker/backend/.dockerignore :

Π’ΠΎΡ€ΠΊΠ΅Ρ€ Π² Ρ†Π΅Π»ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ бэкСнду, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто gunicorn Ρƒ нас ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ запуск ΠΏΠΈΡ‚ΠΎΠ½ΡΡ‡ΡŒΠ΅Π³ΠΎ модуля:

НаконСц, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄. ΠŸΡ€ΠΎ Π½Π΅Π³ΠΎ Π½Π° Π₯Π°Π±Ρ€Π΅ Π΅ΡΡ‚ΡŒ цСлая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ, Π½ΠΎ, судя ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ дискуссии Π½Π° StackOverflow ΠΈ коммСнтариям Π² Π΄ΡƒΡ…Π΅ «РСбят, ΡƒΠΆΠ΅ 2018, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всё Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚?Β» Ρ‚Π°ΠΌ всё Π½Π΅ Ρ‚Π°ΠΊ просто. Π― остановился Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€Ρ„Π°ΠΉΠ»Π°.

Π˜Ρ‚Π°ΠΊ, наш каркас ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π³ΠΎΡ‚ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ содСрТимым!

БэкСнд: каркас Π½Π° Flask

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш бэкСнд ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠŸΠžΠ”ΠΠ―Π’Π¬!

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: каркас Π½Π° Express

Π’ дальнСйшСм Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ потрСбуСтся Node.js Π½Π° машинС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (хотя ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈ сСйчас ΠΈΠ·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ npm init Ρ‡Π΅Ρ€Π΅Π· Docker, Π½Ρƒ Π΄Π° Π»Π°Π΄Π½ΠΎ).

Π’ Dockerfile ΠΌΡ‹ упомянули npm run build ΠΈ npm run start β€” Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² package.json ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Команда build ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ ΠΎΠ½Π° Π½Π°ΠΌ Π΅Ρ‰Ρ‘ пригодится.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² зависимости Express ΠΈ создадим Π² index.js простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ docker-compose up frontend ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ наш Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄! Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° http://localhost:40002 ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΊΡ€Π°ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ классичСскоС β€œHello, world”.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: сборка с webpack ΠΈ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅Ρ‡Ρ‚ΠΎ большС, Ρ‡Π΅ΠΌ plain text. Π’ этой сСкции ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App ΠΈ настроим сборку.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° React ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSX β€” Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ JavaScript, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ синтаксичСскими конструкциями Π²ΠΈΠ΄Π°

Однако, JavaScript-Π΄Π²ΠΈΠΆΠΊΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΅Π³ΠΎ, поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ добавляСтся этап сборки. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ компиляторы JavaScript (Π°Π³Π°-Π°Π³Π°) ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ синтаксичСский сахар Π² ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²Ρ‹ΠΉ классичСский JavaScript, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹, ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

2014 Π³ΠΎΠ΄. apt-cache search java

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ выглядит ΠΎΡ‡Π΅Π½ΡŒ просто.

Он просто Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран нашС привСтствиС Π±ΠΎΠ»Π΅Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ΅Π³Π»Π΅ΠΌ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π°:

Для сборки всСй этой красоты Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ:

webpack β€” ΠΌΠΎΠ΄Π½Ρ‹ΠΉ ΠΌΠΎΠ»ΠΎΠ΄Ρ‘ΠΆΠ½Ρ‹ΠΉ сборщик для JS (хотя я ΡƒΠΆΠ΅ Ρ‚Ρ€ΠΈ часа Π½Π΅ Ρ‡ΠΈΡ‚Π°Π» статСй ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ насчёт ΠΌΠΎΠ΄Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½);
babel β€” компилятор для всСвозмоТных ΠΏΡ€ΠΈΠΌΠΎΡ‡Π΅ΠΊ Π²Ρ€ΠΎΠ΄Π΅ JSX, Π° Π·Π°ΠΎΠ΄Π½ΠΎ поставщик ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Π»ΠΎΠ² Π½Π° всС случаи IE.

Если прСдыдущая итСрация Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° Ρƒ вас всё Π΅Ρ‰Ρ‘ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°, Π²Π°ΠΌ достаточно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

для установки Π½ΠΎΠ²Ρ‹Ρ… зависимостСй. Π’Π΅ΠΏΠ΅Ρ€ΡŒ настроим webpack:

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» babel, Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ frontend/.babelrc :

НаконСц, сдСлаСм осмыслСнной Π½Π°ΡˆΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ npm run build :

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

БэкСнд: Π΄Π°Π½Π½Ρ‹Π΅ Π² MongoDB

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС ΠΈ Π²Π΄Ρ‹Ρ…Π°Ρ‚ΡŒ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Тизнь, Π½Π°Π΄ΠΎ спСрва Π΅Ρ‘ Π²Π΄ΠΎΡ…Π½ΡƒΡ‚ΡŒ Π² бэкСнд. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, ΠΌΡ‹ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΈΡΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π² Markdown ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ β€” ΠΏΠΎΡ€Π° это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ORM для MongoDB Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅, я ΡΡ‡ΠΈΡ‚Π°ΡŽ использованиС ORM ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΏΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° вашС усмотрСниС. ВмСсто этого сдСлаСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ класс для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ DAO:

(Если Π²Ρ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Python, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»ΡΠ½ΡŒΡ‚Π΅ эти ΡΡ‚Π°Ρ‚ΡŒΠΈ!)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ MongoCardDAO ΠΈ Π΄Π°Ρ‚ΡŒ Flask-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΠΌΡƒ доступ. Π₯отя сСйчас Ρƒ нас ΠΎΡ‡Π΅Π½ΡŒ простая иСрархия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (настройки β†’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ pymongo β†’ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… pymongo β†’ MongoCardDAO ), Π΄Π°Π²Π°ΠΉΡ‚Π΅ сразу создадим Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ†Π°Ρ€ΡŒ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ dependency injection (ΠΎΠ½ пригодится Π½Π°ΠΌ снова, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ€ΠΊΠ΅Ρ€ ΠΈ tools).

ВрСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€ΠΎΡƒΡ‚ Π² Flask-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²ΠΈΠ΄ΠΎΠΌ!

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Упс… ΠΎΡ…, Ρ‚ΠΎΡ‡Π½ΠΎ. Нам ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚! Π—Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΏΠ°ΠΏΠΊΡƒ tools ΠΈ слоТим Π² Π½Π΅Ρ‘ скриптик, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

УспСх! Π’Π΅ΠΏΠ΅Ρ€ΡŒ врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ это Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: Redux

Начнём с добавлСния Redux. Redux β€” JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для хранСния состояния. ИдСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто тысячи нСявных состояний, измСняСмых вашими ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… дСйствиях ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрСсных событиях, ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ состояниС, Π° любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ дСйствий. Π’Π°ΠΊ, Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΡ‹ спСрва Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ Π³ΠΈΡ„ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π»ΠΈ запрос Ρ‡Π΅Ρ€Π΅Π· AJAX ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ прописывали ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½Ρ‹Ρ… частСй страницы, Ρ‚ΠΎ Π² Redux-ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ Π½Π°ΠΌ прСдлагаСтся ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ дСйствиС β€œΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° Π³ΠΈΡ„ΠΊΡƒ с анимациСй”, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ глобальноС состояниС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹ΠΊΠΈΠ½Π΅Ρ‚ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ поставит Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос, Π° Π² Π΅Π³ΠΎ success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ дСйствиС, β€œΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° подгруТСнный”. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, сСйчас ΠΌΡ‹ это сами ΡƒΠ²ΠΈΠ΄ΠΈΠΌ.

Начнём с установки Π½ΠΎΠ²Ρ‹Ρ… зависимостСй Π² наш ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ β€” собствСнно, Redux, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для скрСщивания React ΠΈ Redux (written by mating experts), Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ β€” ΠΎΡ‡Π΅Π½ΡŒ нуТная ΡˆΡ‚ΡƒΠΊΠ°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ обоснована Π² Π΅Ρ‘ ΠΆΠ΅ README, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠ΅ β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΠ°, нСобходимая для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Redux DevTools Extension.

Начнём с Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Π½ΠΎΠ³ΠΎ Redux-ΠΊΠΎΠ΄Π°: создания Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ состояния.

Наш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ видоизмСняСтся, ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΡΡΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Redux:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: страница ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ страницы с SSR, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ страницы Π±Π΅Π· SSR! Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ нашим Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ API для доступа ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ ΠΈ свСрстаСм страницу ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅.

ВрСмя Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ ΠΈ Π·Π°Π΄ΠΈΠ·Π°ΠΉΠ½ΠΈΡ‚ΡŒ структуру нашСго состояния. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π½Π° эту Ρ‚Π΅ΠΌΡƒ довольно ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΈ остановится Π½Π° простом. НапримСр, Ρ‚Π°ΠΊΠΎΠΌ:

Π—Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Β«ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°Β», ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π² качСствС props содСрТимоС cardData (ΠΎΠ½ΠΎ ΠΆΠ΅ β€” фактичСски содСрТимоС нашСй ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π² mongo):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для всСй страницы с ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Он Π±ΡƒΠ΄Π΅Ρ‚ отвСтствСнСн Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· API ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Card. А Ρ„Π΅Ρ‚Ρ‡ΠΈΠ½Π³ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ сдСлаСм React-Redux way.

Для Π½Π°Ρ‡Π°Π»Π° создадим Ρ„Π°ΠΉΠ»ΠΈΠΊ frontend/src/redux/actions.js ΠΈ создадим дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаёт ΠΈΠ· API содСрТимоС ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, Ссли Π΅Ρ‰Ρ‘ Π½Π΅:

ΠžΡ…, Ρƒ нас появилось дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ЧВО-ВО ДЕЛАЕВ! Π­Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Π΅:

(ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° свСрхмодный синтаксис для клонирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° вся Π»ΠΎΠ³ΠΈΠΊΠ° унСсСна Π² Redux actions, сама ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° CardPage Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто:

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ page.type Π² наш ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App:

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ остался послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ page.type ΠΈ page.cardSlug Π² зависимости ΠΎΡ‚ URL страницы.

Но Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΌΡ‹ ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ качСствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ прямо сСйчас. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ сдСлаСм это ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π³Π»ΡƒΠΏΠΎ. Π’ΠΎΡ‚ прям совсСм Π³Π»ΡƒΠΏΠΎ. НапримСр, рСгуляркой ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния!

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΊ, сСкундочку… Π° Π³Π΄Π΅ ΠΆΠ΅ наш ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚? ΠžΡ…, Π΄Π° ΠΌΡ‹ вСдь Π·Π°Π±Ρ‹Π»ΠΈ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Markdown!

Π’ΠΎΡ€ΠΊΠ΅Ρ€: RQ

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Markdown ΠΈ гСнСрация HTML для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° β€” типичная «тяТёлая» Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ прямо Π½Π° бэкСндС ΠΏΡ€ΠΈ сохранСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ставят Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… β€” Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°Ρ….

Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ опСнсорсных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ‡; ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Redis ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΡƒ RQ (Redis Queue), которая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ pickle ΠΈ сама ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π°ΠΌ спаунинг процСссов для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ВрСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ рСдис Π² зависимости, настройки ΠΈ Π²Π°ΠΉΡ€ΠΈΠ½Π³!

НСмного Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°.

Для самого парсинга ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΡƒ mistune ΠΈ напишСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

ΠœΡ‹ объявили свой класс Π΄ΠΆΠΎΠ±Ρ‹, ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²Π°ΠΉΡ€ΠΈΠ½Π³ Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ kwargs-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²ΠΎ всС таски. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаёт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΠžΠ’Π«Π™ Π²Π°ΠΉΡ€ΠΈΠ½Π³, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ нСльзя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΠΎΡ€ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ RQ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.) Π§Ρ‚ΠΎΠ±Ρ‹ всС наши таски Π½Π΅ стали Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π²Π°ΠΉΡ€ΠΈΠ½Π³Π° β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Π’Π‘Π•Π₯ Π½Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², β€” Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· Π²Π°ΠΉΡ€ΠΈΠ½Π³Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½ΠΎΠ΅:

ДобавляСм Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΊ нашСй таскС ΠΈ радуСмся ΠΆΠΈΠ·Π½ΠΈ:

РадуСмся ΠΆΠΈΠ·Π½ΠΈ? Π’ΡŒΡ„Ρƒ, я Ρ…ΠΎΡ‚Π΅Π» ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, запускаСм Π²ΠΎΡ€ΠΊΠ΅Ρ€:

Π˜ΠΈΠΈΠΈβ€¦ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚! ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, вСдь ΠΌΡ‹ Π½Π΅ ставили Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ таски!

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ Π½Π°ΡˆΡƒ Ρ‚ΡƒΠ»Π·Ρƒ, которая создаёт Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π°: Π°) Π½Π΅ ΠΏΠ°Π΄Π°Π»Π°, Ссли ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° ΡƒΠΆΠ΅ создана (ΠΊΠ°ΠΊ Π² нашСм случаС); Π±) ставила таску Π½Π° парсинг ΠΌΠ°Ρ€ΠΊΠ΄Π°ΡƒΠ½Π°.

ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с бэкСндом, ΠΌΡ‹ Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ нашСй ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: навигация

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ SSR, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всю Π½Π°ΡˆΡƒ возню с React Ρ…ΠΎΡ‚ΡŒ сколько-Ρ‚ΠΎ осмыслСнной ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нашС single page application Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ single page. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡˆΡƒ Ρ‚ΡƒΠ»Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ создавалось Π΄Π²Π΅ (НЕ ΠžΠ”ΠΠ, А Π”Π’Π•! МАМА, Π― Π’Π•ΠŸΠ•Π Π¬ Π‘Π˜Π“ ДАВА Π”Π•Π’Π•Π›ΠžΠŸΠ•Π !) ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ займёмся Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ссылкам ΠΈ ΡΠΎΠ·Π΅Ρ€Ρ†Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· нашС чудСсноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСзагруТаСтся. Π₯Π²Π°Ρ‚ΠΈΡ‚ это Ρ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ!

Π‘ΠΏΠ΅Ρ€Π²Π° навСсим свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΊΠ»ΠΈΠΊΠΈ ΠΏΠΎ ссылкам. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ HTML со ссылками Ρƒ нас ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ с бэкСнда, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρƒ нас Π½Π° React, потрСбуСтся нСбольшой React-спСцифичСский фокус.

ДобавляСм Π³Π»ΡƒΠΏΠ΅Π½ΡŒΠΊΠΈΠΉ Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€ ΠΏΠΎΠ΄ это Π΄Π΅Π»ΠΎ:

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ URL страницы Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ β€” Π΄Π°ΠΆΠ΅ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Hello, world-ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΠΎ адрСсу demo-ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ. БоотвСтствСнно, навигация Π²ΠΏΠ΅Ρ€Ρ‘Π΄-Π½Π°Π·Π°Π΄ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚Π²Π°Π»ΠΈΠ»Π°ΡΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Ρ‘Ρ€Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ с history, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ это!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… ΠΏΠΎ ссылкам URL Π² адрСсной строкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Однако, ΠΊΠ½ΠΎΠΏΠΊΠ° «Назад» сломаСтся!

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ β€” дСйствиС navigate:

Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ история Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: server-side rendering

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя для нашСй Π³Π»Π°Π²Π½ΠΎΠΉ (Π½Π° ΠΌΠΎΠΉ взгляд) Ρ„ΠΈΡˆΠ΅Ρ‡ΠΊΠΈ β€” SEO-Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±ΠΈΡ. Π§Ρ‚ΠΎΠ±Ρ‹ поисковики ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ создаваСмый динамичСски Π² React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° React, ΠΈ Π΅Ρ‰Ρ‘ ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ снова ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.

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

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

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