CLEAN CODE (principles, approaches)
1. What is clean code
Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ - ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ:
ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ (ΠΊΠ»Π°ΡΡΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²) ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈ Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ.
Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΠΊΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π² Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠΈ. ΠΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π³ΠΎ. ΠΡΠ΅ Π»ΠΈΡΠ½Π΅Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ½ΠΎΡΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ. Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄Π²ΠΈΠΆΡΡΠΈΡ ΡΡ ΡΠ°ΡΡΠ΅ΠΉ
ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌ, ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΠ΅Π½. Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ Π»Π΅Π³ΡΠ΅ ΠΈ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Unit ΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΈΡ . ΠΠΎΠ΄ Π±Π΅Π· ΡΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π·Π²Π°Π½ ΡΠΈΡΡΡΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΌ ΠΎΠ½ Π½Π΅ Π±ΡΠ» Π±Ρ ΠΈ ΠΊΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ Π±Ρ Π½Π΅ ΡΠΈΡΠ°Π»ΡΡ.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅. ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Code Convention ΠΈ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π°Π΄ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°
ΠΠΈΠ½ΠΈΠΌΡΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΠΊΠΎΠ΄Π΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΊΠΎΠ΄
Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌ, Π½ΠΎ ΡΡΡΠ΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
2. What is code smells
Code smells (ΠΊΠΎΠ΄ Ρ "Π·Π°ΠΏΠ°ΡΠΊΠΎΠΌ") - Π»ΡΠ±ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π³Π»ΡΠ±ΠΎΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΎ Π½Π΅ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡ, ΠΈ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΈΡΡΠΎΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³:
Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ, Π½Π΅ΡΠ΅ΡΠΊΠΈΠΉ Π½Π΅ΠΉΠΌΠΈΠ½Π³
Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠ»Π°ΡΡΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π΅Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· 4β20 ΡΡΡΠΎΠΊ. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΡΠ°ΡΡΡ ΠΈΡ Π½ΠΈΡ Π² Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²: ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΡΠ΄Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΎΠ½ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΠΌΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ. Π Π°Π±ΠΎΡΠ°Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠ²Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΅ΠΌΡ Π΄Π°Π½Π½ΡΠ΅.
ΡΠ°ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ.
ΡΡΡΠ΅Π»ΡΠ±Π° Π΄ΡΠΎΠ±ΡΡ. ΠΡΠΎ Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΠ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ². Β«Π‘ΡΡΠ΅Π»ΡΠ±Π° Π΄ΡΠΎΠ±ΡΡΒ» ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° Β«Π Π°ΡΡ ΠΎΠ΄ΡΡΡΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΒ», Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ. Π Π°ΡΡ ΠΎΠ΄ΡΡΠ°ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Β«Π‘ΡΡΠ΅Π»ΡΠ±Π° Π΄ΡΠΎΠ±ΡΡΒ» β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠ΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ².
Π½Π°Π»ΠΈΡΠΈΠ΅ "Π·Π°Π²ΠΈΡΡΠ»ΠΈΠ²ΡΡ " ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ.
Π½Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ KISS, DRY, YAGN, SOLID.
3. What is anti patterns
ΠΡΠΎ ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, ΠΊΠΎΠ΄Π΅, ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ. ΠΠ½Π°Π½ΠΈΠ΅ ΠΎ Π²ΡΠ΅Π΄Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ
Copy and Paste Programming
Π‘Π°ΠΌΡΠΉ ΠΌΠ°Ρ ΡΠΎΠ²ΡΠΉ ΠΈΠ· Π²ΡΠ΅Ρ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ².
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π΅ ΡΡ ΠΎΠΆΠΈΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ, Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ Π²ΡΠΎΡΡΡ Π·Π°Π΄Π°ΡΡ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ
Π£Ρ ΡΠ΄ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° β Π΅ΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ»Π΅Π½ΡΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ Π΅Π³ΠΎ.
ΠΠΎΠ½ΠΈΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π° β ΡΠ°ΡΡΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠ°Π²ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ.
Π£ΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ΄Π° β Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π±ΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΡΠΎ ΡΡΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠΏΠ°Π»Π° Π²ΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΡΠ΄Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Code Review Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΎΠ±Π·ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π±Π΅Π· Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²ΡΠ³ΠΎΠ΄Ρ ΠΈ ΡΠΎΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ΄Π°.
Boat anchor
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°.
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Ρ ΠΎΡΡ ΠΎΠ½ΠΈ ΡΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° Β«Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅Β», Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ΄ΡΡΡΡ Π΅ΡΡ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π΅ Π½Π΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π½Π½ΠΎΡΡΠΈ.
Hard code
Π₯Π°ΡΠ΄-ΠΊΠΎΠ΄ β ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΡΠΎΡ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΡΠ°ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠ»Π΅ΡΠ°ΡΡΡΡ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ
ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π΅Π΄ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ².
Soft code
Π‘ΠΎΡΡ-ΠΊΠΎΠ΄ β ΠΏΠ°ΡΠ°Π½ΠΎΠΈΠ΄Π°Π»ΡΠ½Π°Ρ Π±ΠΎΡΠ·Π½Ρ Ρ Π°ΡΠ΄-ΠΊΠΎΠ΄Π°. ΠΡΠΎΡ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΎΡΡΠΌ ΠΊΠΎΠ½ΡΠΎΠΌ ΠΏΠ°Π»ΠΊΠΈ ΠΎ Ρ Π°ΡΠ΄-ΠΊΠΎΠ΄Π΅ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ.
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠΉ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ.
Π Π°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²Π»Π΅ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ.
ΠΠΎΠ»ΠΎΡΠΎΠΉ ΠΌΠΎΠ»ΠΎΡΠΎΠΊ
ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ) Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΠΉ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π½Π΅ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ°ΠΌΠΎΡΠ°Π·Π²ΠΈΡΠΈΡ.
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΠ»Π°
ΠΡΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡ. ΠΠ°Π½Π½ΡΠΉ Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π΅Ρ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π²ΡΠΎΠ·Π°ΠΌΠ΅Π½ΠΎΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ, Π° Π·Π½Π°ΡΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ.
ΠΠ»ΡΡΡ:
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΆΠΈΠ²ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΌΡΡΠ»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π½Π΅ΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ, ΡΠ΅ΠΌ ΠΈΡΠΊΠ°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΈΡΠΊΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ Π²Π·Π²Π΅ΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ Π΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΈΡΠΈΡΠ΅ ΡΠΈΡΡΡΠΉ, ΡΠΈΡΠ°Π΅ΠΌΡΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ. ΠΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π½Π° Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΡΡ Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΠΏΠΎΠΊΠ° ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ Π·Π°ΡΠ²ΡΡ ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π ΡΡΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠΎΡΡΠ°. ΠΡΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΡΡΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΡ Π·Π° ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° O(n2) ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ O(n) ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΠ»Π°ΡΡ ΠΠΎΠ³Π°
ΠΠ»Π°ΡΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
Π ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΡΠΎΠ΅ΠΊΡΡ, Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠ°ΡΡΠ΅Ρ, ΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΊΠ»Π°ΡΡΡ ΠΠΎΠ³Π°. Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΡΠ°ΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΏΠΎ ΠΌΠ΅Π»ΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°.
Π‘ΡΡΠ°Ρ
ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ΅ΡΠ° Π² ΡΠΎ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΡΠ°Ρ Ρ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°Π·Π±ΠΈΡΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° ΠΌΠ΅Π»ΠΊΠΈΠ΅.
Π ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. Π Π°ΡΠΏΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΊΠ»ΡΠ±ΠΊΠΎΠ² ΠΏΡΡΠΆΠΈ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΊΡΡΠΏΠ½ΡΠΉ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (ΠΊΠ»Π°ΡΡ ΠΠΎΠ³Π°). ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² β Π½Π΅ ΠΏΠ°Π½Π°ΡΠ΅Ρ. Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠ°Π·Π±ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΠ°ΠΌΠ΅ΡΠ°ΠΉΡΠ΅ ΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡΠ°Π·ΡΡΠ±Π°ΠΉΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΡΡΠΌΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ (ΠΏΠΎΠ»ΡΠ΅ΡΠ³Π΅ΠΉΡΡΠ½ΡΠ΅) ΠΊΠ»Π°ΡΡΡ
ΠΠ΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΡΠ»ΠΎΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ.
Π ΡΡΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠΎΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠΎΠ²Π΅ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π‘ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ²Β». ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅Π½Π½ΡΡ ΡΠΎΠ»Ρ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄ΠΈΠ·Π°ΠΉΠ½, Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΠ΅ ΠΏΠΈΡΠΈΡΠ΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΎΡ Π½ΠΈΡ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
More info:
4. Best practices (KISS, DRY, YAGNI). Good Software principles
DRY (Donβt Repeat Yourself)
ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»ΠΎΡΠ² Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ·Π±Π΅Π³Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ. If some code fragment is duplicated in several places inside a program, there is a high probability of two catastrophic situations:
When making even small changes to the source code, you need to change the same code in several places. It will require additional time, effort and attention(often it is not easy).
The first item follows the second one. You or another developer from your team may accidentally miss one of the changes(it can happen simply by merging branches in vcs) and face the subsequent bugs in the application. These bugs can be frustrating to you because you have heard that such a bug has already been fixed.
ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° => ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π±Π°Π½Π΄Π»ΠΎΠ² => perfomans => user experience => ΠΎΡΠΊΠ»ΠΈΠΊ ΡΠ°ΠΉΡΠ° => ΡΠ·Π΅Ρ 5 ΡΠ΅ΠΊ Π½Π° ΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ. Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ·Π΅ΡΠΎΠ²
KISS (Keep it simple, stupid!)
ΠΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠΉ, ΡΡΠΏΠΈΡΠ°. ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π½Π½ΠΎΡΡΠΈ
Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ (ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ) Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠ΅Π»ΡΡ. ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ, ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈ Π΅Π³ΠΎ Π»Π΅Π³ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ.
This principle says that the code must be as simple as possible without complex structures, otherwise it will complicate debugging and maintenance of the code. Besides, it will be more difficult for another programmer to understand the code's logic, which in its turn will also require additional time and effort.
By doing this, you will make life easier for yourself and your colleagues, because complexity generates bugs.
+ ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΠΉ ΠΎΠ½Π±ΠΎΠ°ΡΠ΄ΠΈΠ½Π³ =>
YAGNI (You arenβt going to need it)
_ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈ/ΠΈΠ»ΠΈ ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, β ΡΠΎ Π΅ΡΡΡ ΠΎΡΠΊΠ°Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ.
ΠΠ°ΠΌ ΡΡΠΎΠΈΡ ΠΏΡΡΠ°ΡΡΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π°. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ°ΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, ΠΎΡΠ»Π°Π΄ΠΊΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅ΡΠ°ΡΡΡΡ.
The desire to implement at once all the necessary (and sometimes even unnecessary) functionality from the very beginning of the project. That is, when a developer adds all the possible methods to the class from the very beginning and implements them, and may even never use them in the future. Thus, according to this recommendation, first of all, implement only what you need, and later, if necessary, extend the functionality.
Code review
_ ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ΅Π»ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠΎΡΠ΅ΡΡ - ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ => ΠΊΠΎΠΌΠ°Π½Π΄Π° + ΡΠ΅Π²ΡΡΠ²Π΅ΡΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠ² => prod. Code reviewβs purpose is to find and fix overlooked mistakes and to improve the overall quality and security of software. Advantages:
Members of your team can learn from each other by reviewing each other's code.
A general analysis report says that if you review at an earlier stage, the cost to fix this will be lower and thus it will reduce the overall cost of the application.
Code reviews will decrease the number of those bugs that make it to production.
Things like readability, efficiency, and maintainability of your code may not always directly affect your users but they are tremendously important for your project in the long run.
Code reviews also make it easy to spot potential vulnerabilities and to fix them before they make their way to your servers.
The following points should be checked:
Readability
Functional correctness
Completeness
Hidden implications
Coding standards, code guide (arnbn)
Tests
SOLID
Solid - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ 5-Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ(ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ).
Solid ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ . ΠΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ . ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ»Π°ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ°ΠΉΠ» β Π² ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ-ΡΠΎ, Ρ ΡΠ΅Π³ΠΎ Π΅ΡΡΡ Π³ΡΠ°Π½ΠΈΡΡ, ΠΎΡΠ΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.

S-ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠ°ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ. ΠΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΈΡΠΈΠ½Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ.
ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ:
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ;
ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ;
ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΌΠΎΠ³Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
O-ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ-Π·Π°ΠΊΡΡΡΠΎΡΡΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ (ΠΊΠ»Π°ΡΡΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ β ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΡ, Π° Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΡ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° β ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΡΠΉ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ, ΡΡΠΎΠΊ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΡΠΎΠΊ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ-Π·Π°ΠΊΡΡΡΠΎΡΡΠΈ:
Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡ ΠΈ Π΄Π΅Π»Π°Π»ΠΈ Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ;
ΠΏΠΎΠ±ΡΠΆΠ΄Π°Π΅Ρ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ (Π° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ) ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ;
ΠΎΠ±ΡΠ°ΡΠ°Π΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π½Π° ΠΌΠ΅ΡΡΠ° ΡΡΡΠΊΠ° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ;
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ;
Π΄Π΅Π»Π°Π΅Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅ΡΡΠ²ΡΠΌ.
L-ΠΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠ°ΡΠ±Π°ΡΡ ΠΠΈΡΠΊΠΎΠ²
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ»ΡΠΆΠΈΡΡ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠ². Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΏ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π΅ Π·Π½Π°Ρ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ β ΠΊΠ»Π°ΡΡΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Γ½ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ.
ΠΠ°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ (ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ).
I-ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ.
Π‘ΡΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ Π²ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ , ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ Π·Π°Π²ΠΈΡΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
ISP ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π»ΠΈΡΡΡ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄ΡΠΎΠ±ΠΈΡΡ (ΡΠ°Π·Π΄Π΅Π»ΡΡΡ).
Π js Π½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±ΠΎΡΠΎΡΡΡΡ Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ;
Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ;
ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ;
ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π΄ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΎΡΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ;
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ²Π»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ.
ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ: Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΠ΄Π°ΠΏΡΠ΅Ρ. ΠΠ΄Π°ΠΏΡΠ΅Ρ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Ρ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ SoundEmitter
ΠΈ TimeInterval
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ (Π°Π΄Π°ΠΏΡΠ΅Ρ), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ IntervalSoundEmitter
Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ TimeInterval
ΠΈ ΠΎΡ SoundEmitter
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΠ²ΡΠ·Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ IntervalSoundEmitter
ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.

D-ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ:
ΠΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ; ΠΎΠ±Π° ΡΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ.
ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, Π΄Π΅ΡΠ°Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ(ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°).
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ:
Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΠ΄Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ;
ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ;
Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΡΠΎΡΠ΅;
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΆΡΡΡΠΊΠΎ ΡΡΠ΅ΠΏΠ»Π΅Π½Ρ, ΠΎΠ½ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΡ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅ ΠΈ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±ΡΠ΄ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΡ β ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ OCP.
Π‘ΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ β ΡΡΠ΅ΠΏΠ΅Π½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ ΡΡΠΏΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈ ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π‘Π²ΡΠ·Π½ΠΎΡΡΡ β ΡΡΠ΅ΠΏΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ, ΡΠ΅ΠΌ ΡΡΡΠΎΠΆΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡ SRP, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅.
Useful link:
Last updated
Was this helpful?