π ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠΈ ΠΈ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΠΠ) Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π·Π°ΡΠΈΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . π ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΎΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΅Π³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. βοΈ ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅ΠΆΠ΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° ΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. π§ ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΠ², ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠ°ΠΏΠΎΠ² ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ· Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» (Π‘Π€Π).
π―Β Π¦Π΅Π»ΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠ»Π°Π²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ, Π½Π°ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ Π΅Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ποΈ Π’Π°ΠΊΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΡΠΈΠ½Ρ Π² ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΏΠΎΡΠ°Ρ , ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ IT-Π°ΡΡΡΠΎΡΡΠΈΠ½Π³Π° ΠΈ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΡΡ Π°ΠΊΡΠΈΠ²ΠΎΠ².
Π ΡΠΈΡΠ»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ, ΠΎΡΠ½ΠΎΡΡΡΡΡ:
-
πΒ ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ:Β ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π΅ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ.
-
π‘οΈΒ ΠΠ½Π°Π»ΠΈΠ· Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (Security Code Review):Β ΠΏΠΎΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠΎΠ² OWASP Top Ten, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, Π±ΡΠΊΠ΄ΠΎΡΠΎΠ² ΠΈ Π½Π΅Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
-
πΒ ΠΡΠ΅Π½ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:Β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° (ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SOLID, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
-
βοΈΒ Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ² Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠ°Π²:Β Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ°ΡΠ°, Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Π±Π΅Π· Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°.
-
π§©Β ΠΠ½Π°Π»ΠΈΠ· Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ:Β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (Π’Π, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ) ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ.
π§¬Β ΠΠ±ΡΠ΅ΠΊΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡΡΠ°Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ²
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΈ Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π‘ΠΎΡΠ·ΠΎΠΌ Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ. Π§Π΅ΠΌ ΠΏΠΎΠ»Π½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ Π±Π°Π·Π°, ΡΠ΅ΠΌ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ ΡΠΎΡΠ½Π΅Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
π¦Β ΠΠ±ΡΠ΅ΠΊΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
-
πΒ ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄:Β ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Python, Java, C++, C#, JavaScript, Go, PHP, Kotlin, Swift ΠΈ Π΄Ρ.), Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΊΡΠΈΠΏΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
-
βοΈΒ ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ):Β ΡΠ°ΠΉΠ»ΡΒ
.exe,Β.dll,Β.so,Β.dylibΒ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². -
πΒ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:Β ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π), Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ UML, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
-
ποΈΒ Π‘Ρ Π΅ΠΌΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ :Β ΠΊΠΎΠ΄ DDL, Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠΈΠ³Π³Π΅ΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π·Π°ΠΏΡΠΎΡΡ ORM.
-
π²Β Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ (VCS):Β ΠΏΠΎΠ»Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Git, Mercurial, SVN Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ.
-
π§ͺΒ Π’Π΅ΡΡΠΎΠ²ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ:Β ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ (unit tests), ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ, ΠΎΡΡΠ΅ΡΡ ΠΎ ΠΏΠΎΠΊΡΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° (code coverage), ΠΏΡΠΎΠ³ΠΎΠ½Ρ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
πΒ ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π΄Π»Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°
-
πΒ ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΠ Π² Π²ΠΈΠ΄Π΅ Π°ΡΡ ΠΈΠ²Π° ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° Π·Π°ΠΊΡΡΡΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉΒ (ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ Ρ ΡΡΠ΅ΠΉ SHA-256 Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ).
-
πΒ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡΒ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
-
ποΈΒ ΠΡΠΎΠ΅ΠΊΡΠ½Π°Ρ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΒ (Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»Π°ΡΡ).
-
π§°Β Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΈΡ Π²Π΅ΡΡΠΈΠΉΒ (ΡΠ°ΠΉΠ»ΡΒ
package.json,Βrequirements.txt,Βgo.mod,Βpom.xml). -
πΒ ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Open Source).
-
βοΈΒ ΠΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π°Β (Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΄Π΅Π±Π½ΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ).
-
π¬Β ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠ° ΡΡΠΎΡΠΎΠ½ (e-mail, ΡΠ°ΡΡ), ΠΎΡΠ½ΠΎΡΡΡΠ°ΡΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ ΠΠ.
βΒ ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π²ΡΠ½ΠΎΡΠΈΠΌΡΡ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ°
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π°ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β». ΠΠ°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
-
π Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ β[Π½ΠΎΠΌΠ΅Ρ] ΠΎΡ [Π΄Π°ΡΠ°] Π² ΡΠ°ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ?
-
π Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΡ, Π½Π΅ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΊΠ°ΠΊΠΎΠ²Π° ΠΈΡ ΠΏΡΠΈΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΡΠ±?
-
π§Ή ΠΠ°ΠΊΠΎΠ²Π° ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΠΈ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΠΈ) ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π₯ΠΎΠ»ΡΡΠ΅Π΄Π°, ΡΠΈΠΊΠ»ΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΠ°ΠΊΠΊΠ΅ΠΉΠ±Π°)?
-
π ΠΠΌΠ΅ΡΡΡΡ Π»ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π°Π²ΡΠΎΡΡΡΠ²Π° ΠΈΠ»ΠΈ Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ (GPL, MIT, Apache ΠΈ Π΄Ρ.)?
-
πͺ Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΠΊΠΎΠ΄ Π½Π΅Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ, Π±ΡΠΊΠ΄ΠΎΡΡ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ?
-
π§© Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΠ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π°)?
-
β±οΈ ΠΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ O(n^2) ΡΠ°ΠΌ, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ O(n log n)), Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ ?
-
π§ͺ ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ (Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ/Π²Π΅ΡΠΎΠΊ) Π΄Π»Ρ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ?
-
π ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²?
-
π Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠΎΠ½Π° β152-Π€Π Β«Π ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Β» ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΎΠ² Π€Π‘Π’ΠΠ Π ΠΎΡΡΠΈΠΈ?
-
π οΈ ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΠ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ², CI/CD) Π±Π΅Π· Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ?
πΒ Π’Π΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π±Π°Π·Π° ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ
ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΈΠ½ΡΠ΅Π·Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π°ΡΡΠ½ΡΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½: ΡΠ΅ΠΎΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΌΠ΅ΡΡΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΄Π΅Π±Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ. 𧬠РΡΠ°ΠΌΠΊΠ°Ρ Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ:
-
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· (Static Analysis):Β ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±Π΅Π· Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π»ΠΈΠ½ΡΠ΅ΡΡ (SonarQube, ESLint, Pylint), Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ (PVS-Studio, Clang Static Analyzer), Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
-
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· (Dynamic Analysis):Β Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Π΅ (ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅) Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΏΠΎΠΊΡΡΡΠΈΡ. π§ͺ
-
Π€ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (Formal Verification):Β ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ).
-
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· (Comparative Analysis):Β ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ Ρ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ°Π·ΡΠ°ΠΌΠΈ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ°ΡΠ° (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Winnowing, ΠΌΠ΅ΡΡΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
-
Π Π΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ (Reverse Engineering):Β Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² (Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°ΡΠ΅Π»ΡΡΡΠ²Π°).
π¨βπ»Β ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π‘ΠΎΡΠ· Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β»?
ΠΡΠ±ΠΎΡ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌ ΡΡΠ΄Π΅Π±Π½ΡΡ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ Π΄Π΅Π»Π° ΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΠΊΠΈ. Π‘ΠΎΡΠ· Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» (Π‘Π€Π) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΄ΠΎΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ².
-
βοΈΒ ΠΡΠΎΡΠ΅ΡΡΡΠ°Π»ΡΠ½Π°Ρ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΎΡΡΡ:Β Π‘Π€Π ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΄Π΅Π±Π½ΠΎ-ΡΠΊΡΠΏΠ΅ΡΡΠ½Π°Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π²Π½ΠΎΠΉ, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΠ»Π΅Π½ΡΠΌΠ° ΠΠ΅ΡΡ ΠΎΠ²Π½ΠΎΠ³ΠΎ Π‘ΡΠ΄Π° Π Π€ β28 ΠΎΡ 21.12.2010 Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ· ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΡΠΌ Π΄Π΅Π»Π°ΠΌ.
-
πΒ ΠΡΡΡΠ°Ρ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²:Β ΡΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ Β«ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΒ», Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΒ»), ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ (CISSP, OSCP, Oracle Certified Professional) ΠΈ ΡΡΠ°ΠΆ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ 7 Π»Π΅Ρ.
-
π¬Β ΠΠ°ΡΡΠ½Π°Ρ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΡΡΡ:Β ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ Π‘Π€Π Π±Π°Π·ΠΈΡΡΡΡΡΡ Π½Π° ΠΠΠ‘Π’ Π ΠΠ‘Π/ΠΠΠ 25010-2015 Β«ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²Β» ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΡ Π ΠΎΡΡΡΠ°Π½Π΄Π°ΡΡΠ°.
-
π€Β ΠΠ±ΡΠΎΠ»ΡΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ:Β Π²ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΠ±ΠΎΡΠΎΡΠ΅ Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ AES-256.
-
π°Β ΠΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:Β ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅ (ΠΎΡ 100 000 ΡΡΠ±.) ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΠΊΡΡΡΡΠ΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠΈ.
-
π‘οΈΒ ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ:Β Π‘Π€Π Π½Π΅ Π°ΡΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΎΡΠΎΠ½ ΡΡΠ΄Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ»ΠΈ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ.
πΒ Π Π΅Π³Π»Π°ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΡΠ°ΠΏΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ
ΠΡΠΎΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π‘ΠΎΡΠ·Π΅ Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΡΡΡΠΎΠ³ΠΎ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°Π΄ΠΈΠΈ:
-
π€Β ΠΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΈ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΡΠ΄ΠΈΡ:Β ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ Π‘Π€Π Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ Π΄Π΅Π»Π°, ΡΠ°Π·ΡΡΡΠ½ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ.
-
πΒ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΠΎΠ²:Β Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠ² (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 15-20 Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅ΡΡΠ°).
-
ποΈΒ ΠΡΠΈΠ΅ΠΌΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ²:Β Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎ Π°ΠΊΡΡ Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ (Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ SHA-256) Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ.
-
π¬Β ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°):
-
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· (3-7 ΡΠ°Π±ΠΎΡΠΈΡ Π΄Π½Π΅ΠΉ).
-
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ (2-5 Π΄Π½Π΅ΠΉ).
-
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² (1-3 Π΄Π½Ρ).
-
-
πΒ Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΡΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΎΡΠΌΠ΅, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡ. 25 Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠΎΠ½Π° β73-Π€Π.
-
π£οΈΒ ΠΡΠ΄Π°ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΄Π΅:Β ΡΠΊΡΠΏΠ΅ΡΡ Π³ΠΎΡΠΎΠ² Π΄Π°ΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ Π² ΡΡΠ΄Π΅Π±Π½ΠΎΠΌ Π·Π°ΡΠ΅Π΄Π°Π½ΠΈΠΈ.
ποΈΒ 5 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ΅ΠΉΡΠΎΠ² Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β»
ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ (ΠΎΠ±Π΅Π·Π»ΠΈΡΠ΅Π½Π½ΡΠ΅ Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π‘Π€Π.
ΠΠ΅ΠΉΡ β1 βοΈ Π‘ΠΏΠΎΡ ΠΎ Π½Π΅Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ Π°ΡΡΡΠΎΡΡΠΈΠ½Π³Π΅
Π‘ΠΈΡΡΠ°ΡΠΈΡ:Β ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊ (ΠΊΡΡΠΏΠ½ΡΠΉ ΡΠΈΡΠ΅ΠΉΠ»Π΅Ρ) Π·Π°ΠΊΠ»ΡΡΠΈΠ» Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΊΠ»Π°Π΄ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° Π·Π° 6 ΠΌΠ»Π½ ΡΡΠ±. ΠΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ ΡΠ΄Π°Π» ΠΊΠΎΠ΄, Π½ΠΎ ΡΠΊΠ»Π°Π΄ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ β ΡΠ΅ΡΡΠ»ΠΈΡΡ ΠΎΡΡΠ°ΡΠΊΠΈ.
Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β ΠΠΊΡΠΏΠ΅ΡΡ Π‘Π€Π ΠΏΡΠΎΠ²Π΅Π» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Java-ΠΊΠΎΠ΄Π° ΠΈ Π²ΡΡΠ²ΠΈΠ» ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅: ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ update/insert. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π’Π Π² 14 ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠ½ΠΊΡΠ°Ρ
.
ΠΡΠΎΠ³:Β Π‘ΡΠ΄ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΠ» ΠΈΡΠΊ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ 6 ΠΌΠ»Π½ ΡΡΠ±. ΠΈ Π²Π·ΡΡΠΊΠ°Π» ΡΡΡΠ°Ρ 1,8 ΠΌΠ»Π½ ΡΡΠ±.
ΠΠ΅ΠΉΡ β2 π‘οΈ ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π‘ΠΈΡΡΠ°ΡΠΈΡ:Β Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΠ»Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ Π±Π°Π½ΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
50 ΡΡΡ. ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ (ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ²) ΡΠΊΡΠΏΠ΅ΡΡ Π‘Π€Π ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΡΠΊΡΡΡΡΠΉ HTTP-Π·Π°ΠΏΡΠΎΡ ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρ Π² Π·ΠΎΠ½Π΅ .ru, Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ» Π»ΠΎΠ³ΠΈΠ½Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠΊΠ΄ΠΎΡ Π±ΡΠ» Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ Π΄Π°ΡΠ΅ 01.04.2023.
ΠΡΠΎΠ³:Β ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΏΡΠ°Π²ΠΎΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΡΠ³Π°Π½Ρ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΡΠΆΠ΄Π΅Π½ ΠΏΠΎ ΡΡ. 272 Π£Π Π Π€.
ΠΠ΅ΠΉΡ β3 π§© ΠΠ»Π°Π³ΠΈΠ°Ρ Π² Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ΅
Π‘ΠΈΡΡΠ°ΡΠΈΡ:Β ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Π Π²ΡΠΈΠ³ΡΠ°Π»Π° ΡΠ΅Π½Π΄Π΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΠ±ΠΎΡΠΎΡΠ° (Π‘ΠΠ) Π΄Π»Ρ Π³ΠΎΡΠΎΡΠ³Π°Π½Π°. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Π ΠΏΠΎΠ΄Π°Π»Π° ΠΈΡΠΊ, ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· ΠΈΡ
ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ²Π΅ΡΡ
Π±ΡΡΡΡΠΎΠ³ΠΎ Ρ
ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Rabin-Karp) ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ 78% ΡΠ΅ΠΊΡΡΠ° ΠΊΠΎΠ΄Π° ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Β tempDocFlowVar23). ΠΠΊΡΠΏΠ΅ΡΡ Π‘Π€Π ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ», ΡΡΠΎ Π±ΡΠ»Π° ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π° Π΄Π°ΠΆΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½Π°Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv3, ΡΡΠΎ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠΎΠ³:Β ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΠ°ΡΡΠΎΡΠ³Π½ΡΡ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΅Π΅ΡΡΡ Π½Π΅Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΡΡ
ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ².
ΠΠ΅ΠΉΡ β4 π ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° (Π΄ΠΎΡΡΠ΄Π΅Π±Π½ΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅)
Π‘ΠΈΡΡΠ°ΡΠΈΡ:Β ΠΡΡΠΏΠ½ΡΠΉ ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ ΠΈΡΠΏΡΡΡΠ²Π°Π» ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈ 10k RPS. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π°ΡΠ΄ΠΈΡ Π½Π΅ Π΄Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°ΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘Π€Π.
Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β ΠΠΊΡΠΏΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π» Python-ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π² Π½Π΅ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ O(n^2)). ΠΠ°ΠΌΠ΅Π½ΠΈΠ» Π½Π° Ρ
ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ (O(1)) ΠΈ Π²ΡΡΠ²ΠΈΠ» ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· middleware.
ΠΡΠΎΠ³:Β Π‘ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΎΡΠ»Π° Π² 40 ΡΠ°Π·. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° 15 ΠΌΠ»Π½ ΡΡΠ±. Π² Π³ΠΎΠ΄.
ΠΠ΅ΠΉΡ β5 π¨ββοΈ Π£Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ: ΡΠ°Π±ΠΎΡΠ°ΠΆ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π‘ΠΈΡΡΠ°ΡΠΈΡ:Β ΠΠΎ ΡΠ°ΠΊΡΡ ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ (ΠΠ‘Π£ Π’Π) Π±ΡΠ»ΠΎ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π΅Π½ΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΠΏΠΎ ΡΡ. 274 Π£Π Π Π€.
Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ΅ΡΡΠ°:Β ΠΠΊΡΠΏΠ΅ΡΡ Π‘Π€Π ΠΏΡΠΎΠ²Π΅Π» Π°Π½Π°Π»ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git. Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (ΡΠ²ΠΎΠ»Π΅Π½Π½ΡΠΉ Π·Π° Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π΄ΠΎ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°) Π²Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉΒ emergency_stop(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π»Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΡ
Π΄Π°ΡΡΠΈΠΊΠΎΠ². ΠΠΊΡΠΏΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΈ IP-Π°Π΄ΡΠ΅Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΠΏΡΡ.
ΠΡΠΎΠ³:Β ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘Π€Π ΠΏΡΠΈΠ½ΡΡΠΎ ΡΡΠ΄ΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ» 3 Π³ΠΎΠ΄Π° ΡΡΠ»ΠΎΠ²Π½ΠΎ Ρ Π²ΠΎΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΡΠ±Π°.
β οΈΒ ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎΠ± ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π΅ ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΡΠΌ Π΄Π΅Π»Π°ΠΌ
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΠ»Π΅Π½ΡΠΌΠ° ΠΠ΅ΡΡ ΠΎΠ²Π½ΠΎΠ³ΠΎ Π‘ΡΠ΄Π° Π ΠΎΡΡΠΈΠΉΡΠΊΠΎΠΉ Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡ 21 Π΄Π΅ΠΊΠ°Π±ΡΡ 2010 Π³. N 28 Β«Π ΡΡΠ΄Π΅Π±Π½ΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π΅ ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΡΠΌ Π΄Π΅Π»Π°ΠΌΒ», ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π΅Π±Π½ΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΌΡ Π΄Π΅Π»Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ (ΠΠΠ), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΄Π΅Π±Π½ΠΎ-ΡΠΊΡΠΏΠ΅ΡΡΠ½Π°Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π²Π½ΠΎΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΡΠ°ΠΆΠ΄Π°Π½ΡΠΊΠΈΠΌ ΠΊΠΎΠ΄Π΅ΠΊΡΠΎΠΌ Π Π€ ΠΈ Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΌ Π·Π°ΠΊΠΎΠ½ΠΎΠΌ Β«Π Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡ Β».
π¨Β ΠΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΠΠ, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ Π²ΠΏΡΠ°Π²Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΌΡ Π΄Π΅Π»Ρ.Β ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ°ΠΊΠΈΠΌΠΈ Π»ΠΈΡΠ°ΠΌΠΈ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ·Π½Π°Π½ΠΎΒ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌΒ (ΡΡ. 75 Π£ΠΠ Π Π€) ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π΄Π΅Π»Π°.
Π‘ΠΎΡΠ· Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΠΠΠ), ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΠ°Π²Π½ΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. π ΠΡΠΎ Π΄Π°Π΅Ρ Π‘Π€Π Π·Π°ΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΏΠΎ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΡΠΌ Π΄Π΅Π»Π°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ Π³ΡΠ°ΠΆΠ΄Π°Π½ΡΠΊΠΈΠΌ ΠΈ Π°ΡΠ±ΠΈΡΡΠ°ΠΆΠ½ΡΠΌ Π΄Π΅Π»Π°ΠΌ.
π§ͺΒ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ Π² Π‘ΠΎΡΠ·Π΅ Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΡΠ΅Π΄ΡΡΠ²:
| ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ | ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ / ΠΠ΅ΡΠΎΠ΄ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
| π Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ | SonarQube Enterprise, PVS-Studio, ReSharper, Clang-Tidy | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠ΅ΡΡΠΈΠΊ, ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ |
| π΅οΈ ΠΠ½Π°Π»ΠΈΠ· Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ | Checkmarx, Fortify SCA, Dependency-Check (OWASP) | ΠΠΎΠΈΡΠΊ Π±ΡΠΊΠ΄ΠΎΡΠΎΠ², ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ, Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ |
| π ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· | Valgrind, GDB, strace, Intel VTune Profiler | ΠΡΠ»ΠΎΠ² ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° |
| π Π Π΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ | IDA Pro, Ghidra, x64dbg, dnSpy | ΠΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (C#, C++, Delphi) |
| 𧬠ΠΠ½Π°Π»ΠΈΠ· ΠΏΠ»Π°Π³ΠΈΠ°ΡΠ° | MOSS (Measure of Software Similarity), JPlag | ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΏΠΈΠΉ ΠΊΠΎΠ΄Π° |
πΒ ΠΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π² ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π΅
ΠΠΊΡΠΏΠ΅ΡΡΡ Π‘Π€Π ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠ΅ ΠΈ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ:
-
Π¦ΠΈΠΊΠ»ΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ (McCabe):Β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΡΡΠ΅ΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ >15 ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ (Π²ΡΡΠΎΠΊΠΈΠΉ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ).
-
ΠΠ»ΡΠ±ΠΈΠ½Π° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ (DIT):Β ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ 2-4. Π§ΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ.
-
Π‘Π²ΡΠ·Π½ΠΎΡΡΡ (LCOM):Β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (LCOM > 1 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°).
-
ΠΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ (Comment Density):Β ΠΎΡ 20% Π΄ΠΎ 30% Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
-
ΠΠΎΠΊΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠ°ΠΌΠΈ (Test Coverage):Β ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 80% Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
-
ΠΡΠΎΡΠ΅Π½Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° (Duplication):Β Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 3-5%.
πΒ Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ° Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² (Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡ. 25 β73-Π€Π ΠΈ Π²Π΅Π΄ΠΎΠΌΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ):
-
ΠΠ²ΠΎΠ΄Π½Π°Ρ ΡΠ°ΡΡΡ:Β Π΄Π°ΡΠ°, ΠΌΠ΅ΡΡΠΎ, Π½ΠΎΠΌΠ΅Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΠΊΡΠΏΠ΅ΡΡΠ΅, Π²ΠΎΠΏΡΠΎΡΡ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡ. 307 Π£Π Π Π€.
-
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ:Β ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ ΠΎΠ΄Π° Π°Π½Π°Π»ΠΈΠ·Π°, Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΊΡΠΎΠ² (Ρ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°).
-
Π‘ΠΈΠ½ΡΠ΅Π· ΠΈ ΠΎΡΠ΅Π½ΠΊΠ°:Β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½Π½ΠΎ-ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ±ΠΎΡΠΌΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΠ.
-
ΠΡΠ²ΠΎΠ΄Ρ:Β ΡΠ΅ΡΠΊΠΈΠ΅, ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Β«Π²Π΅ΡΠΎΡΡΠ½ΠΎΒ» ΠΈΠ»ΠΈ Β«Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΒ» β ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎ-ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅.
-
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:Β Π»ΠΈΡΡΠΈΠ½Π³ΠΈ ΠΊΠΎΠ΄Π°, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ².
πΒ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ·ΡΠ² ΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠΎΠ²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΡΡΠ΄Π΅Π±Π½ΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ, ΡΡΠ΅Π±ΡΡΡΠΈΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²Π°. π§ Π‘ΠΎΡΠ· Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠ΅ΠΉ, Π°ΠΊΠΊΡΠ΅Π΄ΠΈΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π° Π²ΡΡΠΎΡΠ°ΠΉΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅.
β ΠΠ΅ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°ΠΉΡΠ΅ Π·Π°ΡΠΈΡΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠ°Π² ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²!Β ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Π΅ΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠ²ΡΠ΅ΡΠ΅ Π² ΡΡΠ΄Π΅Π±Π½ΠΎΠΌ ΡΠΏΠΎΡΠ΅ ΠΎΠ± Π°Π²ΡΠΎΡΡΡΠ²Π΅ ΠΊΠΎΠ΄Π° β ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌ.
πΒ ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄Π΅Π»Π° ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅!
Π‘ΠΎΡΠ· Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ
ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β»
ΠΠ°ΡΡΠ½Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΡΠ°Π²ΠΎΠ²Π°Ρ Π±Π΅Π·ΡΠΏΡΠ΅ΡΠ½ΠΎΡΡΡ. Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ.Β π¬βοΈπ»
π Π‘Π²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ.
π ΠΠΎΠ½ΡΠ°ΠΊΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π‘ΠΎΡΠ·Π° Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β»
-
π ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ:Β https://fedexpertiza.ru
-
βοΈ Π’Π΅Π»Π΅ΡΠΎΠ½ Π³ΠΎΡΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ: +7 (495) 666-5-666 (ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ)
π¬Β ΠΠ°ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ Π² Π‘ΠΎΡΠ·Π΅ Β«Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡ ΡΡΠ΄Π΅Π±Π½ΡΡ
ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²Β» ΡΠΆΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ!
ΠΠ°ΡΠΈ ΡΠΊΡΠΏΠ΅ΡΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌΒ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ°Π²Π° Π² ΡΡΠ΄Π΅. π§ββοΈποΈβ
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ ΡΡΠ°ΡΡΠΈ:
π§¬Β ΠΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π°
π₯ ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° Π³ΠΎΠ΄Π½ΠΎΡΡΠΈ ΠΊ Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Π΅
βοΈ ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠ°Π²ΠΎΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ°Π²ΠΎΠ²ΠΎΠ³ΠΎ…
π οΈΒ Π‘ΡΠ΄Π΅Π±Π½Π°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ…
π₯ ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΡΠΈΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ
π§Β Π‘ΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΊΡΠΎΠ²Π»ΠΈ
ΠΠΎΠ²ΡΠ΅ ΡΡΠ°ΡΡΠΈ:
π Π¦Π΅Π½ΡΡ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ· Π³ ΠΠΎΡΠΊΠ²Π°: ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π·Π°ΡΠΈΡΠ° ΠΏΡΠ°Π² ΠΏΠ°ΡΠΈΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΡΠ°ΡΠ΅ΠΉ
π§ͺΒ ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° Π»Π°ΠΊΠΎΠΊΡΠ°ΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΈ ΠΏΠΎΠΊΡΡΡΠΈΠΉ
π§΄Β ΠΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π° ΠΏΠ°ΡΡΡΠΌΠ΅ΡΠ½ΡΡ ΠΈ ΠΊΠΎΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²
π§ Β ΠΡΠΈΡ ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π°Β