Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

6Β Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ JavaScript UI Π½Π° 2020Β Π³ΠΎΠ΄ β€” Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° vc.ru

JavaScript β€” это тСхнология, которая Π»Π΅ΠΆΠΈΡ‚ Π² основС соврСмСнных быстрых Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. БущСствуСт мноТСство инфраструктур ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для создания слоТных, быстро Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

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

Π‘Π°ΠΌΡ‹Π΅ популярныС доступныС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JavaScript ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ возмоТности. Π’ частности, ΠΎΠ½ΠΈ:

— ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ синхронизированно

— ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ

— ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ эффСктивны ΠΈ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ доступных JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π²Π΅Π»ΠΈΠΊΠΎ, ΠΈ это число ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ расти. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° эти Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹. Π― пСрСчислил ΠΊΠ°ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅, популярныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ для Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ изящной JavaScript-срСдС ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня β€” Ext JS ΠΎΡ‚ Sencha.

1. Ext JS ΠΎΡ‚ Sencha

НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠΎΡ‰Π½Ρ‹Π΅, Π³ΠΈΠ±ΠΊΠΈΠ΅ интСрфСйсныС инструмСнты для отобраТСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ?

Sencha Ext JS описываСтся как…

Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ полная JavaScript-инфраструктура для создания рСсурсоСмких, кроссплатформСнных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для любого соврСмСнного устройства. Ext JS Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 140 ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ протСстированных Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

НСкоторыС ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя:

— HTML5 ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ- сСтки- Π΄Π΅Ρ€Π΅Π²ΡŒΡ- списки- Ρ„ΠΎΡ€ΠΌΡ‹- мСню- ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтови ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

Ext JS β€” это надСТная, платная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, которая поставляСтся с Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌΠΈ пособиями ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. НСдавниС испытания ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ сСтка Π΄Π°Π½Π½Ρ‹Ρ… Ext JS Π±Ρ‹Π»Π° Π² 300 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ Ρƒ Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ². ЀактичСски, Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚

ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ EPAM / Π₯Π°Π±Ρ€

Π”Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, Π² Π΄Π°Π»Π΅ΠΊΠΎΠΉ-Π΄Π°Π»Π΅ΠΊΠΎΠΉ Π³Π°Π»Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΆΠΈΠ»ΠΈ тСстировщики. Они тСстировали всС, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ, ΠΈ Π½Π° это ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈΡˆΠ»Π° эра Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования, Π° вмСстС с Π½Π΅ΠΉ β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. МногиС Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ тСстировщиков эффСктивнСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ ΡƒΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ JDI Ρ‚Π°ΠΊ Π½Π΅ Π΄ΡƒΠΌΠ°Π»ΠΈ.

Π—Π°Ρ‡Π΅ΠΌ создали JDI, ΠΊΠΎΠ³Π΄Π° ΠΈ Ρ‚Π°ΠΊ Π΅ΡΡ‚ΡŒ нСсколько Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для тСстирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов? Π§Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π•Π ΠΠœ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ JDI β€” Π ΠΎΠΌΠ°Π½ ИовлСв ΠΈ АлСксСй Π“ΠΈΡ€ΠΈΠ½ β€” ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Π½Π° вопросы ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ Π·Π°Π΄Π°ΡŽΡ‚ Ρ‡Π°Ρ‰Π΅ всСго.



Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ JDI?


JDI β€” это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для UI-тСстирования. НазваниС Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Just do it: главная идСя JDI β€” Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ тСсты. Π­Ρ‚ΠΎ опСнсорсный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с GitHub ΠΈΠ»ΠΈ с сайта JDI. JDI ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Java ΠΈ C#. БСйчас ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Python.

Π—Π°Ρ‡Π΅ΠΌ создали JDI?


Π’ Π•Π ΠΠœ постоянно приходят Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΈ тСстировщикам Π½ΡƒΠΆΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт быстро ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты, Π»ΠΎΠ³ΠΈΡ€ΡƒΠ΅Ρ‚ всС дСйствия Π½Π° понятном ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ языкС ΠΈ создаСт наглядныС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹. Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ инструмСнтов для тСстирования UI Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ нСдостаточно для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ Selenium Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅, ΠΈ Π½Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтов. Π’ HTML Elements ΠΎΡ‚ «ЯндСкса» ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, Π½ΠΎ этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½ ΠΏΠΎΠ΄ вСрстку HTML-страниц. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ Π΄Π°Π²Π½ΠΎ Π½Π΅ обновлялся. ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅, Π² ΠΎΠ΄ΠΈΠ½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. JDI Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пригодятся Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ UI. Π’ Ρ‚ΠΎΠΌ числС, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах ΠΈ дСсктоп-прилоТСниях.

Но вСдь Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ. Π§Π΅ΠΌ JDI отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…?


Нас часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅: JDI ΠΈΠ»ΠΈ Selenide, JDI ΠΈΠ»ΠΈ Cucumber? Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. Selenium ΠΈΠ»ΠΈ Selenide – это, скорСС, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для JDI, ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ с Π½ΠΈΠΌ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚. Но ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ элСмСнтами β€” Ρ‚Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² JDI. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ Cucumber, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ BDD, находятся, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²Ρ‹ΡˆΠ΅ JDI ΠΏΠΎ этой шкалС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой абстракции. ΠœΡ‹, кстати, совСтуСм вмСстС с JDI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слои BDD ΠΈ CI.

JDI – это такая прослойка, которая позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Page Objects ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ элСмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Π΄Ρ€ΠΎΠΏΠ΄Π°ΡƒΠ½Π°ΠΌΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Когда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтах, имССтся Π² Π²ΠΈΠ΄Ρƒ прСдставлСниС ΠΎΠ± элСмСнтС. НапримСр, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ, Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ UI. Кнопка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π²Π΅Π±Π΅ ΠΈΠ»ΠΈ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, вСрстка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΉ, это ΡƒΠΆΠ΅ вопрос ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π“Π»Π°Π²Π½ΠΎΠ΅ – Π΅ΡΡ‚ΡŒ идСя ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅: Π΅Π΅ нСльзя ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ»ΠΈ Π΄Ρ€ΠΎΠΏΠ΄Π°ΡƒΠ½ΠΎΠΌ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JDI Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ дСйствия Π²Ρ€ΠΎΠ΄Π΅ поиска Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, заполнСния Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π² мСню: это ΡƒΠΆΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ JDI Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ Π½ΠΈΡ… ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚: Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ, Π½ΠΎ тСкст Π½Π° Π½Π΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСльзя.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JDI Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ бизнСсом, Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ. НапримСр, Β«ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Β». Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты Π½Π΅ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Β«ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Β», ΠΈ это Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π° UI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ….

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты? ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ FindBy, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Selenium, ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JFindBy, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности: ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ тСксту, ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (value), ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ (type). МоТно ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ конструкторов ΠΈΠ»ΠΈ интСрфСйсов. ПослСдний способ Π΄Π°Π΅Ρ‚ ряд прСимущСств. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вмСсто мобильной ΠΊΠ½ΠΎΠΏΠΊΡƒ для Π²Π΅Π±Π°, ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ для Π²Π΅Π±Π° тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ писали для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств. ВСстировщику Π½Π΅ придСтся ΠΌΠ΅Π½ΡΡ‚ΡŒ Page Objects ΠΈ тСстовый сцСнарий, Ссли Π½Π΅ помСнялась Π»ΠΎΠ³ΠΈΠΊΠ°. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ JDI ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² – ΠΎΠ½ Π½Π΅ привязан ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсткС. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ HTML Elements ΠΎΡ‚ «ЯндСкса». Π’Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты, Π½ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° вСрстку HTML-страниц.

Π Π°Π±ΠΎΡ‚Π° с простыми Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ элСмСнтами – ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, тСкстом – позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ тСсты Π±ΠΎΠ»Π΅Π΅ наглядными. А Ρ€Π°Π±ΠΎΡ‚Π° со слоТными элСмСнтами – Π΄Ρ€ΠΎΠΏΠ΄Π°ΡƒΠ½Π°ΠΌΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Ρ‡Π΅ΠΊ-листами – Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСстировщику. НСобходимая информация ΠΎΠ± элСмСнтС (Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) располоТСна Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² JDI ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ настроСна интСграция с Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΌΠΈ систСмами, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ большС ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π°ΠΊΠΈΡ… тСстов.

Как Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с JDI?


Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, JDI Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с GitHub ΠΈΠ»ΠΈ с сайта. Π’Ρ‹ скачиваСтС Π°Ρ€Ρ…ΠΈΠ², Π³Π΄Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΡƒΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ настроСн: Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΈΠ½Π³. Если Π²Ρ‹ сами Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JDI ΠΊΠ°ΠΊ dependency ΠΊ Π½Π΅ΠΌΡƒ.

Π’ качСствС Π΄Π²ΠΈΠΆΠΊΠ° JDI ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Selenium. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ (Π΄Π°ΠΆΠ΅ свой собствСнный), это Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

Π‘Π»ΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с JDI?


Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты Π½Π° JDI, достаточно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ наши ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π½Π° GitHub. МоТно ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π½Π° курсы ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π•Π ΠΠœ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π² ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅. На Π½ΠΈΡ… ΠΌΡ‹ ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ числС с JDI, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ студСнты.

Иногда тСстировщики хотят Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² JDI, Π½Π΅ подозрСвая, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ½ устроСн слоТнСС, Ρ‡Π΅ΠΌ снаруТи. Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ «внутрСнностях» Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° смогут Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ уровня Senior.

ΠŸΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ тСстировщики JDI?


JDI использовали ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 50 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π² Π•Π ΠΠœ, ΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Как Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ JDI?


Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ находится Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС ΠΎΠΊΠΎΠ»ΠΎ пяти Π»Π΅Ρ‚, всС это врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ устраняли Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹ ΠΈ добавляли Π½ΠΎΠ²Ρ‹Π΅ возмоТности. БСйчас Ρƒ JDI Π΅ΡΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²ΡƒΡ… дСсятков Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ².

25 июля Π² ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅ ΠΊΠΎΠΌΠΈΡ‚Ρ‚Π΅Ρ€Ρ‹ JDI встрСтятся с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ расскаТут, ΠΊΠ°ΠΊ внСдряли JDI, с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Ρ€Π΅ΡˆΠ°Π»ΠΈ.

Если Π²Π°ΠΌ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ здСсь ΠΈ слСдитС Π·Π° новостями Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ JDI Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅.

На Selenium Camp Π ΠΎΠΌΠ°Π½ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказал, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JDI. Π’ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎ Π΅Π³ΠΎ выступлСния:

Π’ΠΎΠΏ-5 JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² 2020 Π³ΠΎΠ΄Ρƒ. Π§Π°ΡΡ‚ΡŒ 1

ВСроятно, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΎ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅: вводишь Π² поисковикС Β«Π»ΡƒΡ‡ΡˆΠΈΠ΅ JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈΒ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΡˆΡŒ Π² ΠΎΡ‚Π²Π΅Ρ‚ Ρ†Π΅Π»ΡƒΡŽ Π³ΠΎΡ€Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ нСпросто Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских частСй Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²? Автор ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ сСгодня ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π°, ΠΊΠ°ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅Ρ€Ρ‹ ΠΈΡ‰ΡƒΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠΌ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ созданиС интСрфСйсов.

Π’ основу составлСния этого Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π»Π΅Π³Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ опроса Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 450 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ· ValueCoders. Бюда ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсных инструмСнтов.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· ValueCoders Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ React


Π―, ΠΊΠΎΠ³Π΄Π° ΡƒΠ·Π½Π°Π»Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π³ΠΎΠ»ΠΎΡΡƒΡŽΡ‚ Π·Π° React, Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΠ»Π°ΡΡŒ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ участников опроса сочло React ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали React Π²ΠΎ мноТСствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ясно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны этого инструмСнта. Π’ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… возмоТностСй:
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования.
  • Бинхронизация состояния прилоТСния ΠΈ интСрфСйса.
  • БистСмы ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° возмоТности React ΠΏΡ€ΠΈ создании Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ это ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Π½ΠΎ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ρ‡Ρ‚ΠΎ мСня ΡƒΠ΄ΠΈΠ²ΠΈΠ»ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ Π½Π° ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π»Π΅Π³ΠΊΠΎ.

ΠžΠ±Π·ΠΎΡ€ нашСго прилоТСния


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

Π“Π»Π°Π²Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π² создании этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° стала Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ. Она позволяСт ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ занятиями ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… достиТСния. ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ эту Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΠ»ΠΎΠΆΠΈΠ² Π² основу прилоТСния экосистСму Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Redux. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΌΡ‹ создали Ρ€Π°Π·Π΄Π΅Π» прилоТСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ свСдСния ΠΎ достиТСниях ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ, ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ, ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΡ… ΠΈΠ³Ρ€Ρƒ, ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ ΠΎΡ‚Π·Ρ‹Π²Ρ‹.


БвСдСния ΠΎΠ± ΡƒΡ‡Π΅Π½ΠΈΠΊΠ΅ ΠΈ ΠΎ Π΅Π³ΠΎ занятиях

БобствСнно говоря, я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с React Π² Ρ…ΠΎΠ΄Π΅ создания этого прилоТСния. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ React β€” это ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΉ всСми Π»ΠΈΠ΄Π΅Ρ€ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-инструмСнтов? НСт, Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚. МногиС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ особо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Vue, Π½Π°Π·Π²Π°Π² этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΈ вспомнив ΠΎ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² Π½Ρ‘ΠΌ стандартных Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств.

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

А для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² слоТно Π΄Π°ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚Ρ€ΠΎΠΉΠΊΠΎΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² β€” Angular, React ΠΈ Vue. ΠœΡ‹, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π»ΠΈ 5 самых интСрСсных Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ собираСтся Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π² 2020 Π³ΠΎΠ΄Ρƒ.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ пятёрка Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-инструмСнтов


Если ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ популярности ΠΈ распространённости инструмСнтов Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚ΠΎ Π²ΠΎΡ‚ β€” ΠΏΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ:
  • React
  • Vue
  • Angular
  • Ember
  • Backbone.js

Π’ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих инструмСнтов слоТилось Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². И Ссли Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ основу для своСго ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ³Π°Π΄Π°Π΅Ρ‚Π΅, сдСлав ставку Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих инструмСнтов. Π’ΠΎΡ‚ свСдСния ΠΏΠΎ Π½ΠΈΠΌ Π·Π° послСдниС ΡˆΠ΅ΡΡ‚ΡŒ мСсяцСв, собранныС срСдствами npmtrends.com.
ΠžΠ±ΡŠΡ‘ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² angular, ember-source, react, vue ΠΈ backbone
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² angular, ember-source, react, vue ΠΈ backbone

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Начнём с React.

1. React


Π’ JavaScript-ΠΌΠΈΡ€Π΅ React β€” это, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ, Π»ΠΈΠ΄Π΅Ρ€. Π’ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ΄Π΅ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, ΠΎΠ½Π° Π²Π²ΠΎΠ΄ΠΈΡ‚ Π²ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ мноТСство собствСнных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³ΠΈΠ±ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ React Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ мноТСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов. Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ список ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов, прСдставлСнный Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ совмСстно с React. Π­Ρ‚ΠΎ β€” Redux, MobX, Fluxy, Fluxible, RefluxJS. Π’ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ jQuery AJAX, Superagent, Axios ΠΈ Fetch API.

β–ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ


Π’ΠΎΡ‚ Ρ‚Π²ΠΈΡ‚ ΠΎΡ‚ 24 октября сСго Π³ΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сообщаСтся ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² React ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ возмоТности ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° (Concurrent Mode). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ React постоянно ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ этот Ρ€Π΅ΠΆΠΈΠΌ. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ссылки Π½Π° выступлСния с React Conf 2019, посвящённыС ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ нововвСдСниям React, Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… (создаваСмых с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.lazy) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React.Suspense. ОбС эти Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ React-прилоТСния Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌΠΈ Π·Π° счёт выполнСния Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π­Ρ‚ΠΎ позволят React Π½Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ высокоприоритСтных Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ прилоТСния Π½Π° воздСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

▍Suspense ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ


ВСхнология React.Suspense позволяСт ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ асинхронной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² React-прилоТСниях. Если ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π² Π΄Π²ΡƒΡ… словах, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΎΠ½Π° позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ выполнСния Π½Π΅ΠΊΠΈΡ… условий ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго прилоТСния.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²ΠΎ, появившССся Π² React 16.8, это Ρ…ΡƒΠΊΠΈ (Hook). Π₯ΡƒΠΊΠΈ React ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ваТнСйшими возмоТностями React ΠΈ ΠΏΡ€ΠΈ этом ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· примСнСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², основанных Π½Π° классах. Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΈΡ… возмоТностСй β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. React содСрТит нСсколько встроСнных Ρ…ΡƒΠΊΠΎΠ², Π½ΠΎ ΠΏΡ€ΠΈ этом позволяСт программисту ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Ρ…ΡƒΠΊΠΈ.

React-прилоТСния состоят ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΈ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ для формирования интСрфСйса. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Flux ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Π’ React-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ понятия ΠΊΠ°ΠΊ состояниС (state) ΠΈ свойства (props) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Они прСдставлСны ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π˜Ρ… использованиС позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. НапримСр β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, Π² интСрфСйс прилоТСния, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

▍ЭлСмСнты экосистСмы React


Π’ΠΎΠΊΡ€ΡƒΠ³ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ React слоТилась цСлая экосистСма, прСдставлСнная Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ составныС части этой экосистСмы:
  • Π‘Π°ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° React ΠΈ React Router β€” срСдство для управлСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • ΠŸΠ°ΠΊΠ΅Ρ‚ react-dom, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DOM.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Firefox ΠΈ Chrome.
  • JSX β€” язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ HTML-элСмСнты Π² JavaScript-ΠΊΠΎΠ΄Π΅.
  • БрСдство ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки create-react-app, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для создания ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Redux, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для управлСния состояниСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Axios, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с сСрвСрными API.

Π—Π°Π²Π΅Ρ€ΡˆΠ°Ρ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎ React ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

2. Angular


На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ AngularConnect 2019 ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Angular сдСлала заявлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ Angular 9 ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π’ частности, планируСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ компилятор Angular Ivy стандартным срСдством, доступным для всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Angular β€” это ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. РаньшС для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Angular ΠΊ страницС достаточно Π±Ρ‹Π»ΠΎ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π΅Ρ‘ HTML-ΠΊΠΎΠ΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΅ΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Angular.

Angular извСстСн своСй Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ. ИмСнно поэтому всё Π΅Ρ‰Ρ‘ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ вСрсии Angular 1.x. Однако ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π² наши Π΄Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Angular 2+ ΠΈΠ·-Π·Π° MVC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, которая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ измСнилась Π² сторону Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, основанной Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ….

Π’ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Angular, придётся, ΠΏΡ€ΠΈ освоСнии этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ трудностями. Π’Π°ΠΊ, для создания Angular-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ практичСски ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TypeScript. Π₯отя это ΠΈ услоТняСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с Angular, Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ полоТСния Π΄Π΅Π» Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹. Π’ частности, это ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° счёт ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ контроля Ρ‚ΠΈΠΏΠΎΠ², это Π΄Π°Ρ‘Ρ‚ программисту Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

▍ЭлСмСнты экосистСмы Angular


Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ составныС части экосистСмы Angular:
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ созданиС Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Набор ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Angular-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²: @angular/common, @angular/compiler, @angular/core, @angular/forms, @angular/http, @angular/platform-browser, @angular/platform-browser-dynamic, @angular/router ΠΈ @angular/upgrade.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Zone.js, которая позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ контСкстами выполнСния ΠΊΠΎΠ΄Π°.
  • Π―Π·Ρ‹ΠΊΠΈ TypeScript ΠΈ CoffeeScript.
  • ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Angular-прилоТСниях ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм RxJS ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… (Observable) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  • Angular Augury β€” срСдство для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Angular-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • ВСхнология Angular Universal, прСдназначСнная для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвСрного Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Angular-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Angular β€” это ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π΄Π°ΡŽΡ‰ΠΈΠΉ соврСмСнному Π²Π΅Π±-программисту всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. На Angular стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² своё распоряТСниС ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ стандартных срСдств ΠΈ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ использованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Π°ΡΡ‚ΡŒ 2

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Если Π±Ρ‹ Π²Π°ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ?


Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ HTML/CSS, PHP ΠΈ Python-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²