ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΡΡ ΡΡΠ°ΡΡΡ ΠΌΠ΅Π½Ρ ΡΠΏΠΎΠ΄Π²ΠΈΠ³Π»ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅, Π²ΡΡ ΡΠ°ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΠΈΡ
ΡΡ Π½Π° Π³Π»Π°Π·Π°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΡΠΎ
ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΠΎΠ±Π·ΠΎΡΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΏΡΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ ΡΠ»ΠΈΠΊΡΠΈΡ: Π½Π°ΠΆΠΌΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΈ Π²ΠΎΡ ΠΎΠ½ β ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π³Π»Π°Π·Π°ΠΌΠΈ. ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², Π±Π°Π³ΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅, Π° ΠΏΡΠΎΠ΄ΡΠΊΡΡ, ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠΈΠΌΠΈ ΡΠΎΠ±ΠΎΡΠ°ΠΌΠΈ, Π±ΡΠ΄ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π²ΡΡ Π»ΡΡΡΠ΅ ΠΈ Π»ΡΡΡΠ΅, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΠΈΠ»ΠΈΠΉ Ρ Π½Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΡ ΡΠ»ΠΈΠΊΡΠΈΡΠΎΠ² Π½Π΅ Π±ΡΠ²Π°Π΅Ρ. Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΠΎ ΡΡΠΌ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΡΡ Π² ΠΏΠΎΡΡΠ°Ρ Π²ΠΈΠ΄Π° Β«Π²ΠΎΡ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ Π½Π°Ρ ΡΠΎΠ±ΠΎΡΒ»: ΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ, Π² ΡΡΠΌ ΠΈΡ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΡΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΎΡΡΠ°, ΠΈ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΡΡΡ ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
Π₯ΡΠ°ΠΏΠΎΠ²ΠΈΠΊ (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ:
Π§Π΅Π³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅, Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π°Π½Π°Π»ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°? ΠΡ ΠΏΠΎΠ΄Π°ΡΠΌ Π½Π° Π²Ρ ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ, ΠΈ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π·Π° ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ (Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΠΎΠ½ ΡΠ΅ΡΡΠΎΠ²) ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ·ΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ.
Π‘Π°ΠΌΡΠΉ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ, Π½Π΅ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° β
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Β«null pointer exceptionΒ» Π² ΡΠ·ΡΠΊΠ°Ρ , Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null, ΠΈΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Β«attribute not foundΒ» Π² ΡΠ·ΡΠΊΠ°Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΡΠΉ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ β ΡΡΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΠ°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΡΠΈΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π²Π°ΡΠΈΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ, Π±Π΅Π· ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΏΠ»Π΅ΠΉ Π² ΠΌΠΎΡΠ΅.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· β ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΈΡΠΊ Π±Π°Π³ΠΎΠ²
ΠΠ· Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· β ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π ΠΈΡΠΊΠ½Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ: Π±ΡΠ΄ΡΡΠΈ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΎΠ½ Π½Π°ΠΉΠ΄ΡΡ Π² ΠΊΠΎΠ΄Π΅ Β«Π·Π°Π½ΡΡΠ½ΡΠ΅Β» ΠΌΠ΅ΡΡΠ°, Π½ΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π΅ Π½Π°ΠΉΠ΄ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ², Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ², Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡ, Π½ΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·. ΠΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²Π·Π»ΠΎΠΌΡΠΈΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ², Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡ ΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ½Π°ΡΠΈΡ Π»ΠΈ ΡΡΠΎ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Ρ! Π ΡΠΎΠ²Π½ΠΎ ΠΏΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π° ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π² ΡΡΠΎΠΏ-Π»ΠΈΡΡ Β«ΠΏΡΠΎΡΡΡΡ Β» ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊ Π±Π°Π³ΠΎΠ²
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ°Π΅ΠΌΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π·Π°Π΄Π°ΡΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠΈΡΠ΅. ΠΠ΅Π΄Ρ Π² ΡΠ΅Π»ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· β ΡΡΠΎ Π»ΡΠ±Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌΠ°Ρ Π΄ΠΎ ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ:
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. Π‘ΡΠ΄Π° Π²Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΡΡΡΡ /Π»ΠΈΡΠ½ΠΈΡ ΡΠΊΠΎΠ±ΠΎΠΊ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΡΠΎΠ΄Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ / ΡΠΈΠΊΠ»ΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Ρ. Π΄. β Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°. Π Java ΡΠ°ΠΊΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Checkstyle, Π² Python β flake8. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Β«Π»ΠΈΠ½ΡΠ΅ΡΡΒ».
- ΠΠ½Π°Π»ΠΈΠ·Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. Π€Π°ΠΉΠ»Ρ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JSON, YAML, XML, .properties ΠΌΠΎΠ³ΡΡ (ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ!) Π±ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡ Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ. ΠΠ΅Π΄Ρ Π»ΡΡΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΈΡ
-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ΠΏΠ°ΡΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π½Π°ΡΡΡΠ΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° JSON Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Pull Request, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ Π² Run time? Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
YAMLlint ,JSONLint . - ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (ΠΈΠ»ΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ) β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π²ΠΈΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ ΠΈΡ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ.
- ΠΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
AsciiDoctor , ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π΅Ρ Π² HTML/PDF ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ AsciiDoctor (Maven plugin ) ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ Π½Π°ΡΡΡΠ΅Π½Π½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΡΠ»ΠΊΠ°Ρ . Π ΡΡΠΎ β Π²Π΅ΡΠΎΠΌΡΠΉ ΠΏΠΎΠ²ΠΎΠ΄ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΡ Pull Request Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. - ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ β ΡΠΎΠΆΠ΅ Π²ΠΈΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Π£ΡΠΈΠ»ΠΈΡΠ°
aspell ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»Π°Ρ ) Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ C/C++, Java ΠΈ Python. ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π΄Π΅ΡΠ΅ΠΊΡ! - ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ (ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ β ΡΠΌ.
ΡΡΠΎΡ ΠΈΡΡΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄Ρ), Ρ ΠΎΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΠΈΠΏΠ° pytest, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Ρ. ΠΊ. Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΠΎΠΈΡΠΊ Π±Π°Π³ΠΎΠ² Π² ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ, Π° Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΡΡΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ open source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ β ΡΠ΅ΠΌ Π»ΡΡΡΠ΅! ΠΠ»Π°Π²Π½ΠΎΠ΅, Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΎ ΡΡΠΌ ΠΈ ΠΏΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΡ Π΄Π°Π»ΡΡΠ΅.
ΠΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΏΠ΅Π½ΡΠ°ΡΡΠΉ ΡΠΈΠ»ΡΡΡ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ°ΡΠΊΠ°Π΄
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ΅ΡΠ°ΡΠΎΡΠΎΠΉ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ (pipeline), ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π² production. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°ΠΏΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
- ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
- ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
- ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ
- UI ΡΠ΅ΡΡΡ
- ΡΡΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π·Π°Π±ΡΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° N-ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°, Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏ N+1.
ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, Π° Π½Π΅ ΠΈΠ½Π°ΡΠ΅? Π ΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΡΠ·Π½Π°ΡΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π’Π΅ΡΡΠΎΠ²Π°Ρ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π°. ΠΡΡΠΎΡΠ½ΠΈΠΊ:
Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠΉ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅Π³ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΠΊ Π»ΠΎΠΆΠ½ΠΎΠΌΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠΎΠΌΡ ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π²ΡΡ ΠΎΠ±ΡΡΠΎΠΈΡ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈ UI ΡΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΎ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ°. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ β ΡΠ°ΠΌΡΠΉ Π΄ΠΎΡΠΎΠ³ΠΎΠΉ, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΈ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΡΡΡΠΎΠΈΡΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈ Π² ΡΠ°ΡΡΡΡ , Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ!
Π― Π±Ρ Ρ ΠΎΡΠ΅Π» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ΄Ρ. ΠΠ° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΡΡΡ Π³ΡΡΠ·Π½Π°Ρ Π²ΠΎΠ΄Π° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π΄Π΅ΡΠ΅ΠΊΡΠ°ΠΌΠΈ), Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΡΡΡ Π²ΠΎΠ΄Ρ, Π²ΡΠ΅ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΡΠ΅ΡΠ½Ρ.
ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΏΠ΅Π½ΡΠ°ΡΡΠΉ ΡΠΈΠ»ΡΡΡ. ΠΡΡΠΎΡΠ½ΠΈΠΊ:
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΎΡΠΈΡΠ°ΡΡΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ΅ΠΈΠ²Π°ΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΡΡ ΡΡΠ°ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°ΡΠΊΠ°Π΄Ρ Π±ΠΎΠ»Π΅Π΅ Π³ΡΡΠ±ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π±ΠΠ»ΡΡΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ. Π Π½Π°ΡΠ΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ quality gates ΠΈΠΌΠ΅ΡΡ Π±ΠΠ»ΡΡΠ΅Π΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΡΠ΅Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠΉ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΏΡΠΈΡ ΠΎΡΠ»ΠΈΠ²Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ β ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ ΠΈ Π²ΡΡΡΡΠΎΠ΅Π½Ρ. Π ΠΎΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠΎΡΠΎΡΡΠΉ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΡΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ Π³ΡΡΠ±ΡΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΡΠΎΠ»Ρ ΡΠ΅ΡΡΡΠΊΠΈ-Β«Π³ΡΡΠ·Π΅Π²ΠΈΠΊΠ°Β» Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΡΠΊΠ°Π΄Π° ΡΠΈΠ»ΡΡΡΠΎΠ².
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΊΠ°ΠΊ Β«Π³ΡΡΠ·Π΅Π²ΠΈΠΊΒ» Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ΄Ρ ΠΏΠΈΡΡΠ΅Π²ΠΎΠΉ. Π ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΠ²ΡΠ·ΠΊΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°. Π₯ΠΎΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠΌ ΡΠΈΠ»ΡΡΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΡΠΊΠ°Π΄Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ β ΡΡΠ½ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ Π»ΠΈΡΡ ΠΊΠ°ΡΠΊΠ°Π΄Π°ΠΌΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ, Π±Π΅Π· Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΡΠΊΠ°Π΄ΠΎΠ².
Π¦Π΅Π»Ρ Β«Π³ΡΡΠ·Π΅Π²ΠΈΠΊΠ°Β» β ΡΠ°Π·Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°Π΄Ρ ΠΎΡ ΡΠ»Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΆ Π³ΡΡΠ±ΡΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΠΉ code review, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π½ΠΎΡΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π²ΡΠΎΠ΄Π΅ Π»ΠΈΡΠ½ΠΈΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ). ΠΠ°Π³ΠΈ Π²ΡΠΎΠ΄Π΅ NPE Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡ Π΄ΠΎ ΡΠ΅ΡΡΠ° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π±Π°Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ΠΌΠΈΠ½ΡΠ΅ΠΌΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ β ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡ Π΅Π³ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠΎΠ»Π°Π³Π°Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π΅ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΏΠΈΠ·ΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π»Ρ ΠΎΡΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ Π³ΡΡΠ±ΡΠΌΠΈ Π΄Π΅ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎΠΏΡΠΎΡ, ΡΠ»ΡΡΡΠΈΡ Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ Π²ΠΎΠΏΡΠΎΡΡ Β«ΡΠ»ΡΡΡΠ°ΡΡΡ Π»ΠΈ ΠΏΠΈΡΡΠ΅Π²ΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π²ΠΎΠ΄Ρ, Π²Π·ΡΡΠΎΠΉ ΠΈΠ· Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ Π²ΠΎΠ΄ΠΎΡΠΌΠ°, Π΅ΡΠ»ΠΈ Π΅Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΡΠ»Π°Π³?Β»
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π² legacy-ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ°ΠΆΠ½ΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π² ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«quality gateΒ»? Π ΡΠ»ΡΡΠ°Π΅ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ Π²ΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ: Π΅ΡΡΡ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΡΠΎΠ², ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΠ»Π° quality gate. ΠΠΎΠΏΡΡΠΊΠ° ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ gate ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ: Π½Π° legacy-ΠΊΠΎΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ, Π½ΠΎ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π² Π½ΡΠΌ Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠ΄ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ Π²ΠΏΠ΅ΡΠ²ΡΠ΅, Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΡΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ β ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΌΡ ΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΈ Π΄ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°!
Π ΠΈΡΠΎΠ³Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΠΏΠΈΠ·ΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π³ΠΎ Π»ΠΈΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΄Π°ΡΡΡΡ ΠΎΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π²ΡΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ (ΡΠΊΠΎΠ»Ρ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΡΡΠ·Π½ΠΎΠ³ΠΎ) ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ.
ΠΠ·Π²Π΅ΡΡΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ quality gates:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π»ΠΈΠΌΠΈΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ, Ρ. ΠΊ. ΡΠ°ΠΊΠΎΠΉ gate ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΠΊΠ° ΠΈΡ Π»ΠΈΠΌΠΈΡ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½.
- Π€ΠΈΠΊΡΠ°ΡΠΈΡ, Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π²ΡΠ΅Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ , ΠΈ ΠΎΡΠΊΠ°Π· Π² ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. Π’Π°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ PVS-studio ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Codacy. ΠΠ½Π΅ Π½Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² PVS-studio, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ° Ρ Codacy, ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎ Π΅ΡΡΡ Β«ΡΡΠ°ΡΠ°ΡΒ», Π° ΡΡΠΎ Β«Π½ΠΎΠ²Π°ΡΒ» ΠΎΡΠΈΠ±ΠΊΠ° β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ. ΠΠ° ΠΌΠΎΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ Codacy ΠΌΠΎΠ³ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ Π² ΠΏΡΠ»Π»-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ pull request ΠΈΠ·-Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΠΊΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ PR.
- ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΊΠ½ΠΈΠ³Π΅
Continuous Delivery Β«ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΠ°Β» (Β«ratchetingΒ»). ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ.
Π₯ΡΠ°ΠΏΠΎΠ²ΠΈΠΊ
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠ΅Π»ΠΈΠ·Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π²Π°Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Β«ΡΠ΅Π»ΠΈΠ· 7.0.2Β», Π½ΠΎ Β«ΡΠ΅Π»ΠΈΠ· 7.0.2, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ 100500 Checkstyle-ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉΒ». ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² (ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Artifactory), ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ Π»Π΅Π³ΠΊΠΎ.
- Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ pull request ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΡ ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π΅. ΠΡΠ»ΠΈ PR ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΡΠΎ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ quality gate ΠΏΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ. ΠΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ β ΡΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ.
- ΠΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²Π½ΠΎΠ²Ρ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Π°.
Π’Π°ΠΊ ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρ, Π½ΠΎ Π½Π΅ΡΠΊΠ»ΠΎΠ½Π½ΠΎ (ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΠ°), ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ ΠΊ Π½ΡΠ»Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΌΠ°Π½ΡΡΡ, Π²Π½Π΅ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ² ΡΡΠΆΠΎΠ΅. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Ρ. ΠΊ. Π½Π° Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΈ Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΏΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΠ΅, Π° ΡΡΠ°Π·Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈ Π²ΡΠ΅ Π»Π΅Π³ΠΊΠΎ-ΡΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½Ρ.
ΠΠ° ΡΡΠΎΠΌ Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Checkstyle-ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π·Π° ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Β«Ρ
ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΠ°Β» Π½Π°
Π― ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΠΏΡΠΈ ΡΡΠΎΠΌ YAML-ΡΠ°ΠΉΠ» Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ ΡΠ±ΠΎΡΠΊΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
celesta-sql:
checkstyle: 434
spotbugs: 45
celesta-core:
checkstyle: 206
spotbugs: 13
celesta-maven-plugin:
checkstyle: 19
spotbugs: 0
celesta-unit:
checkstyle: 0
spotbugs: 0
Π Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ CI-ΡΠΈΡΡΠ΅ΠΌΠ΅ Β«Ρ
ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡ Π½Π° ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π²ΡΠ΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΡΡΡ Π² ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΈΠ»ΠΈ XML ΡΠΎΡΠΌΠ°ΡΠ΅, Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΠ΅ΠΌΡΡ Π°Π½Π°Π»ΠΈΠ·Ρ. ΠΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² CI-ΡΠΊΡΠΈΠΏΡΠ΅. ΠΠΎΠ΄ΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π½Π°ΡΠΈΡ
open source ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
Π½Π° Π±Π°Π·Π΅ Jenkins ΠΈ Artifactory, ΠΌΠΎΠΆΠ½ΠΎ countWarnings()
ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ xml-ΡΡΠ³ΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ
, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΡ
Checkstyle ΠΈ Spotbugs, Π° compareWarningMaps()
ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ Ρ
ΡΠ°ΠΏΠΎΠ²ΠΈΠΊ, Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Β«Ρ
ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΠ°Β» Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ² ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ aspell. ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ Π²ΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π° ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎ quality gate ΠΏΠΎ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ aspell ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠ»ΠΎΠ²Π°ΡΡΠΌ
Π Π²Π°ΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π²Π΅ΡΡΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π±Ρ Π½ΠΈ Π²Π½Π΅Π΄ΡΡΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ· Π² Π²Π°Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ, Π²Π΅ΡΡΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π°. ΠΡΠ»ΠΈ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΌΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠΎ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ pull request ΠΌΠΎΠ³ΡΡ Β«Π²ΡΠΏΠ»ΡΡΡΒ» Π½ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°, Π° ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² β ΠΈ ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΌΠ°Π΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΡΠΌΠΊΠΈ pull request-ΠΎΠ². ΠΠΏΠ³ΡΠ΅ΠΉΠ΄ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΆΡΡΡΠΊΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ±ΠΎΡΠΊΠΈ β ΡΡΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°.
ΠΡΠ²ΠΎΠ΄Ρ
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π΅ Π½Π°ΠΉΠ΄ΡΡ Π²Π°ΠΌ Π±Π°Π³ΠΈ ΠΈ Π½Π΅ ΡΠ»ΡΡΡΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π΄Π°ΡΡ Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ.
- ΠΠΎΠΈΡΠΊ Π±Π°Π³ΠΎΠ² Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² opensource ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ .
- ΠΠ½Π΅Π΄ΡΡΠΉΡΠ΅ quality gates ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Β«Ρ ΡΠ°ΠΏΠΎΠ²ΠΈΠΊΒ» Π΄Π»Ρ legacy-ΠΊΠΎΠ΄Π°.
Π‘ΡΡΠ»ΠΊΠΈ
Continuous Delivery Π. ΠΡΠ΄ΡΡΠ²ΡΠ΅Π²: ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ: ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΎ ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ!)
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com