Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

Π‘Π°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ сподСлимС Π½Π°ΡˆΠ΅Ρ‚ΠΎ искуство Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° SonarQube Π·Π° ΠΊΠΎΠ½Ρ‚ΠΈΠ½ΡƒΠΈΡ€Π°Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΌΠ΅Ρ€Π΅ΡšΠ΅ Π½Π° ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π²ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ процСси Π½Π° систСмот DPO (Π΄ΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π½ΠΈΠΎΡ‚ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½ΡˆΠΊΠΈΠΎΡ‚ смСтководствСн систСм Alameda) Π½Π° Националниот Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ Π·Π° ΠΏΠΎΡ€Π°ΠΌΠ½ΡƒΠ²Π°ΡšΠ΅.

Националниот Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ Π·Π° ΠΏΠΎΡ€Π°ΠΌΠ½ΡƒΠ²Π°ΡšΠ΅ (Москва Π±Π΅Ρ€Π·Π° Π³Ρ€ΡƒΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ) Π΅ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΊΠ»ΡƒΡ‡Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΠΎ финансиската инфраструктура, ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΈ смСтководство Π·Π° Ρ…Π°Ρ€Ρ‚ΠΈΠΈ ΠΎΠ΄ врСдност Π½Π° руски ΠΈ странски ΠΈΠ·Π΄Π°Π²Π°Ρ‡ΠΈ Π²ΠΎ врСдност ΠΎΠ΄ повСќС ΠΎΠ΄ 50 Ρ‚Ρ€ΠΈΠ»ΠΈΠΎΠ½ΠΈ Ρ€ΡƒΠ±Π»ΠΈ. Π—Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈΠΎΡ‚ ΠΎΠ±Π΅ΠΌ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡˆΡ‚ΠΎ Π³ΠΈ Π²Ρ€ΡˆΠΈ систСмот, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΊΠΎΠ½Ρ‚ΠΈΠ½ΡƒΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° функционалноста, Π±Π°Ρ€Π°Π°Ρ‚ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° висококвалитСтСн ΠΈΠ·Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° систСмитС. Π•Π΄Π½Π° Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° ΠΏΠΎΡΡ‚ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠ²Π°Π° Ρ†Π΅Π» Π΅ статичкиот Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube. Π’ΠΎ ΠΎΠ²Π°Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° ќС Π³ΠΎ опишСмС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ искуство Π·Π° бСспрСкорно ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° статичкиот Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube Π²ΠΎ постоСчкитС Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ процСси Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ ΠΎΠ΄Π΄Π΅Π».

Накратко Π·Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ‚

ΠΠ°ΡˆΠ°Ρ‚Π° компСтСнтност Π³ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° слСднитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: плаќања Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π½Π° NSD, ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со СлСктронски Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ (EDF), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΡ€Π°ΠΊΠΈ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ Π·Π° Ρ‚Ρ€Π³ΠΎΠ²ΠΈΡ˜Π° (Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° трансакции ΠΏΡ€Π΅ΠΊΡƒ ΡˆΠ°Π»Ρ‚Π΅Ρ€), ΠΊΠ°Π½Π°Π»ΠΈ Π·Π° СлСктронска ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈ NSD ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ повСќС. Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ, Ρ‚Ρ€Π΅Π±Π° ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ°Ρ‚Π° страна Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ активности. Π Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Π²Ρ€Π· основа Π½Π° Π±Π°Ρ€Π°ΡšΠ°. АпликациитС ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ слуТбСници Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π°Ρ‚ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π°Ρ€ΠΈΡ‚Π΅: Ρ‚ΠΈΠ΅ Π³ΠΈ собираат Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈ Π½ΠΈ ја ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ Π½ΠΈΠ²Π½Π°Ρ‚Π° визија Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π²ΠΊΠ»ΠΎΠΏΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π‘Π»Π΅Π΄Π½Π° Π΅ стандардната шСма: Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° ΠΊΠΎΠ΄ - Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ - ΠΏΡ€ΠΎΠ±Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° - испорака Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠ»ΠΎ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

Π—ΠΎΡˆΡ‚ΠΎ SonarQube?

Ова Π΅ ΠΏΡ€Π²ΠΎ искуство Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ ΠΎΠ΄Π΄Π΅Π» Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ - ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Ρ‚ΠΎΠ° Π³ΠΎ ΠΏΡ€Π°Π²Π΅Π²ΠΌΠ΅ Ρ€Π°Ρ‡Π½ΠΎ, ΠΏΡ€Π°Π²Π΅Ρ˜ΡœΠΈ само ΠΏΡ€Π΅Π³Π»Π΅Π΄ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ. Но, Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈΠΎΡ‚ ΠΎΠ±Π΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π±Π°Ρ€Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° овој процСс. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, Ρ‚ΠΈΠΌΠΎΡ‚ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΈ нСискусни Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΊΠΎΠΈ Π½Π΅ сС цСлосно Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ΠΈ со прописитС Π·Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ ΠΈΠΌΠ°Π°Ρ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡ˜Π° Π΄Π° ΠΏΡ€Π°Π²Π°Ρ‚ повСќС Π³Ρ€Π΅ΡˆΠΊΠΈ. Π—Π° Π΄Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚, бСшС ΠΎΠ΄Π»ΡƒΡ‡Π΅Π½ΠΎ Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° статички Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ SonarQube вСќС сС ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡˆΠ΅ Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ NSD систСми, нСмашС Π΄ΠΎΠ»Π³ ΠΈΠ·Π±ΠΎΡ€. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ, ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΎΠ΄Π΄Π΅Π»ΠΈ Π³ΠΎ користСа Π·Π° Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚ ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° микроуслугитС Π²ΠΎ систСмот АламСда (сопствСниот Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π΅Π½ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½ΡˆΠΊΠΈ смСтководствСн систСм Π½Π° NSD), Π²ΠΎ CFT (информациски систСм Π·Π° водСњС смСтководство, биланси, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° Π·Π°Π΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅), Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ Π΄Ρ€ΡƒΠ³ΠΈ систСми. Π—Π° СкспСримСнти, Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌΠ΅ со бСсплатната Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° SonarQube. Па Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ со Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜.

ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°

НиС имамС:

  • автоматско ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ Π½Π° систСмот Π²ΠΎ TeamCity;
  • ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π΅ процСсот Π½Π° ΠΈΡΠΏΡ€Π°ΡœΠ°ΡšΠ΅ ΠΊΠΎΠ΄ ΠΏΡ€Π΅ΠΊΡƒ MergeRequest ΠΎΠ΄ Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ Π³Π»Π°Π²Π½Π°Ρ‚Π° Π³Ρ€Π°Π½ΠΊΠ° Π²ΠΎ GitLab (процСс Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ спорСд GitHub Flow);
  • SonarQube, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° систСмот DPO Π½Π° распорСд.

ΠΠ°ΡˆΠ°Ρ‚Π° Ρ†Π΅Π»: ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ автоматска Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π²ΠΎ процСситС Π½Π° CI/CD Π½Π° DPO.

Π’Ρ€Π΅Π±Π° Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°: процСс Π½Π° автоматска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ со статички Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ со сСкоС MergeRequest Π΄ΠΎ Π³Π»Π°Π²Π½Π°Ρ‚Π° Π³Ρ€Π°Π½ΠΊΠ°.

ОниС. Π¦Π΅Π»Π½Π°Ρ‚Π° слика Π΅ слСдна: ΡˆΡ‚ΠΎΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ ќС постави ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, сС стартува автоматска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚. Ако Π½Π΅ΠΌΠ° Π³Ρ€Π΅ΡˆΠΊΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ сС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈ Π΄Π° сС ΠΏΡ€ΠΈΡ„Π°Ρ‚Π°Ρ‚, Π²ΠΎ спротивно Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΠΎΠΏΡ€Π°Π²Π°Ρ‚. Π’Π΅ΡœΠ΅ Π²ΠΎ ΠΏΠΎΡ‡Π΅Ρ‚Π½Π°Ρ‚Π° Ρ„Π°Π·Π° успСавмС Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ Π±Ρ€ΠΎΡ˜ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚. БистСмот ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ флСксибилни поставки: ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° Π½Π° Ρ‚Π°ΠΊΠΎΠ² Π½Π°Ρ‡ΠΈΠ½ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° спСцифичнитС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅, Π·Π° сСкој систСм ΠΈ стил Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅.

ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ QualityGate Π²ΠΎ SonarQube

Анализата Π½Π° QualityGate Π΅ Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ Π³ΠΎ Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ Π²ΠΎ Π΄Π»Π°Π±ΠΎΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΡ€Π²ΠΈΡ‡Π½ΠΎ користСвмС ΠΏΠΎΠΈΠ½Π°ΠΊΠΎΠ² пристап, покомплСксСн ΠΈ, Π½Π° нСкој Π½Π°Ρ‡ΠΈΠ½, Π½Π΅ сосСма Ρ‚ΠΎΡ‡Π΅Π½. ΠŸΡ€Π²ΠΎ, Π΄Π²Π°ΠΏΠ°Ρ‚ΠΈ Π³ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠΈΠ²ΠΌΠ΅ ΡΠΊΠ΅Π½ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅ΠΊΡƒ SonarQube: ја скСниравмС Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° ја споимС Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠ° Π³ΠΎ спорСдивмС Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Овој ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ бСшС стабилСн ΠΈ Π½Π΅ сСкогаш давашС ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. И Ρ‚ΠΎΠ³Π°Ρˆ Π΄ΠΎΠ·Π½Π°Π²ΠΌΠ΅ Π΄Π΅ΠΊΠ° намСсто Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Π΄Π²Π°ΠΏΠ°Ρ‚ΠΈ Π½Π° SonarQube, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° поставимС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ (QualityGate) ΠΈ Π΄Π° ја Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ само Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° ΡˆΡ‚ΠΎ ја ΠΏΡ€ΠΈΠΊΠ°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ ΠΈ спорСдуватС.

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

ЗасСга сè ΡƒΡˆΡ‚Π΅ користимС ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚. Π’Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° SonarQube Π½Π΅ Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π΅Π½ со Π½Π΅ΠΊΠΎΠΈ програмски Ρ˜Π°Π·ΠΈΡ†ΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΎ ΠΈ Delphi. Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ само PLSql ΠΊΠΎΠ΄ Π·Π° Π½Π°ΡˆΠΈΠΎΡ‚ систСм.

Π Π°Π±ΠΎΡ‚ΠΈ Π²Π°ΠΊΠ°:

  • НиС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ само PL/SQL ΠΊΠΎΠ΄ Π·Π° Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
  • SonarQube ΠΈΠΌΠ° QualityGate ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π΅ сС Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° со ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅.
  • Π‘Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π²ΠΎΡ‚ΠΎ Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ бСшС 229. Ако ΠΈΠΌΠ° повСќС Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΎΠ³Π°Ρˆ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ.
  • ΠŸΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ, Π°ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ сС ΠΏΠΎΠΏΡ€Π°Π²Π°Ρ‚, ќС Π±ΠΈΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° QualityGate.
  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ²ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ·Π°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ со тСстови ΠΈΡ‚Π½.

Π¨Π΅ΠΌΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°:

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

ΠšΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° сцСнариото ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Π°Ρ‚ Π΄Π΅ΠΊΠ° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Π΅ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½. Π—Π½Π°Ρ‡ΠΈ сС Π΅ Π²ΠΎ Ρ€Π΅Π΄.

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

ΠšΠΎΠΏΡ‡Π΅Ρ‚ΠΎ Π‘ΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅ станува достапно.

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

Π’ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° сцСнариото, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠ° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ Π³Ρ€Π°Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стана повСќС ΠΎΠ΄ ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ². Π—Π½Π°Ρ‡ΠΈ сС Π΅ Π›ΠžΠ¨Πž.

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

ΠšΠΎΠΏΡ‡Π΅Ρ‚ΠΎ Π·Π° ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅ Π΅ Ρ†Ρ€Π²Π΅Π½ΠΎ. Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ΠΌΠ° Π·Π°Π±Ρ€Π°Π½Π° Π·Π° ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²Ρ€Π· основа Π½Π° ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Ρ‚ΠΎΠ° сС ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ Π΄ΠΈΡΠΊΡ€Π΅Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΈΠΎΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡. Π’ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° спрСчитС додавањС Π½Π° Ρ‚Π°ΠΊΠ²ΠΈ обврски Π²ΠΎ Π³Π»Π°Π²Π½Π°Ρ‚Π° Π³Ρ€Π°Π½ΠΊΠ°.

Како Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ SonarQube ΠΈ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»

Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡ˜Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ

Π‘Π»Π΅Π΄Π½ΠΎ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ситС Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Π½ΠΈ ΠΎΠ΄ систСмот, бидСјќи SonarQube Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° спорСд Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ строги стандарди. Она ΡˆΡ‚ΠΎ Ρ‚ΠΎΡ˜ Π³ΠΎ смСта Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΌΠΎΠΆΠ΅Π±ΠΈ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ Π½Π΅ Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄. Π—Π°Ρ‚ΠΎΠ°, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ ΠΎΠ²Π° Π΅ навистина Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ ΡƒΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ наши услови. На овој Π½Π°Ρ‡ΠΈΠ½ Π³ΠΎ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΠΌΠ΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Π‘ΠΎ Ρ‚Π΅ΠΊΠΎΡ‚ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, систСмот ќС Π½Π°ΡƒΡ‡ΠΈ Π΄Π° Π³ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π° ΠΎΠ²ΠΈΠ΅ нијанси.

Π”ΠΎ ΡˆΡ‚ΠΎ дојдовмС

ΠΠ°ΡˆΠ°Ρ‚Π° Ρ†Π΅Π» бСшС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅ Π΄Π°Π»ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡Π»ΠΈΠ²ΠΎ Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π΄Π° Π³ΠΎ прСнСсСмС ΠΏΡ€Π΅Π³Π»Π΅Π΄ΠΎΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°. И Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π³ΠΈ ΠΎΠΏΡ€Π°Π²Π΄Π° ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°ΡšΠ°Ρ‚Π°. SonarQube Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ со Ρ˜Π°Π·ΠΈΡ†ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π½ΠΈ сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ, ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΈΠΌΠ° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π» Π΄Π° ΡƒΡ‡ΠΈΠΌΠ΅ ΠΎΠ΄ совСти Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ. Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ, Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ смС ΠΎΠ΄ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€Π²ΠΎ искуство со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° SonarQube ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ Π²ΠΎ ΠΎΠ²Π°Π° насока. ΠžΡ‡Π΅ΠΊΡƒΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ќС ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π·Π°ΡˆΡ‚Π΅Π΄ΠΈΠΌΠ΅ повСќС Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π½Π°ΠΏΠΎΡ€ Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌΠ΅ со Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ‡ΠΎΠ²Π΅Ρ‡ΠΊΠΈΠΎΡ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€. МоТСби Π²ΠΎ Ρ‚ΠΎΡ˜ процСс ќС Π³ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌΠ΅ нСдостатоцитС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΡƒΡˆΡ‚Π΅ Сднаш ќС сС ΡƒΠ²Π΅Ρ€ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΊΡƒΠ» Ρ€Π°Π±ΠΎΡ‚Π° со Π³ΠΎΠ»Π΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π».

Π’ΠΎ ΠΎΠ²Π°Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π·Π±ΠΎΡ€ΡƒΠ²Π°Π²ΠΌΠ΅ Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ запознавањС со статичкиот Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube. Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅. Ако стС заинтСрСсирани Π·Π° ΠΎΠ²Π°Π° Ρ‚Π΅ΠΌΠ°, Π²ΠΎ Π½ΠΎΠ²Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ќС опишСмС ΠΏΠΎΠ΄Π΅Ρ‚Π°Π»Π½ΠΎ ΠΊΠ°ΠΊΠΎ Π΄Π° поставитС сè ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

Автор Π½Π° тСкстот: Π°Ρ‚Π°ΡšΠ°

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€