Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄

Π“Π»Π°Π²Π½Ρ‹Π΅ характСристики качСствСнного ΠΊΠΎΠ΄Π°

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄

Как часто Π²Ρ‹ ΠΏΠΎΡ€Π°ΠΆΠ°Π΅Ρ‚Π΅ΡΡŒ, читая Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄, ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ «господи, Π½Ρƒ ΠΈ каша. Β». Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, достаточно часто. И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π΄ΡƒΠΌΠ°Π» Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ‡ΠΈΡ‚Π°Π» ваш ΠΊΠΎΠ΄? Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, насколько Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² чистотС своСго ΠΊΠΎΠ΄Π°? МоТно Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ понимаСшь, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ чистый ΠΊΠΎΠ΄.

Π‘Π»ΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ чистому ΠΊΠΎΠ΄Ρƒ, ΠΈ, скорСС всСго, сколько программистов β€” ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. Однако, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ достаточно ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹. Π― собрал Π΄Π΅Π²ΡΡ‚ΡŒ самых Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… ΠΈ описал Π½ΠΈΠΆΠ΅.

1.ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ, чистый ΠΊΠΎΠ΄ сфокусирован

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ класс, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ любая другая ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ нСискаТСнной. Она Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ СдинствСнной обязанности. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: Ссли ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… измСнСния класса, Ρ‚ΠΎ нСльзя ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ большС ΠΎΠ΄Π½ΠΎΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

Но я Π±Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ классами. Π’ свой послСднСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π Π°Π»ΡŒΡ„ ВСстфал (Ralf Westphal) прСдставил Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° СдинствСнной обязанности:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ аспСкт Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ систСмы. АспСкт Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ это ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΈΠ»ΠΈ свойство трСбования, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… аспСктов.

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

2. Π―Π·Ρ‹ΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ написали ΠΊΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π΅Π³ΠΎ создали для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

НС язык Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ простой, Π° программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ язык выглядит просто.

(Ρ†ΠΈΡ‚Π°Ρ‚Π° Π ΠΎΠ±Π΅Ρ€Ρ‚Π° C. ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π°)

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π°ΠΊΠΈ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ ΠΈ язык ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядят Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠ΅. Если Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ нСдостаточно Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… Π½Π°ΠΉΡ‚ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, чистоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

3. НС Π½ΡƒΠΆΠ½ΠΎ избыточности

Код Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ DRY (Don’t repeat yourself β€” Π½Π΅ повторяйся). Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ модификация любого элСмСнта систСмы Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния Π΄Ρ€ΡƒΠ³ΠΈΡ…, логичСски Π½Π΅ связанных элСмСнтов.

4. Π§ΠΈΡ‚Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ приятно

Когда Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ ваш ΠΊΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ Β«Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€Π°Β» (Π΄Π°, знаю, я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρ‰ΠΈΠ»). Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ написали, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ³ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½Π΅ проводя часы Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.

Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ KISS (Keep It Simple, Stupid!) ΠΈ YAGNI (You Ain’t Gonna Need It β€” Π’Π°ΠΌ это Π½Π΅ понадобится). ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ KISS гласит, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСм Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ всСго Ссли ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… простоту, Π° Π½Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, простота Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»ΡŒΡŽ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… услоТнСний. YAGNI это ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ софту Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

5. Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄

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

6. НуТно ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ зависимости

7. МСньшС β€” Π»ΡƒΡ‡ΡˆΠ΅

Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ, Π² ΠΈΠ΄Π΅Π°Π»Π΅ β€” всСго нСсколько строк ΠΊΠΎΠ΄Π°. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ (Π² Ρ‚ΠΎΠΌ числС Π²Π½ΡƒΡ‚Ρ€ΠΈ класса). Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ…ΠΎΡ€ΠΎΡˆΠΎ влияСт Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ 4 β€” Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистам Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ.

8. НСобходимы ΡŽΠ½ΠΈΡ‚- ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‡Π½Ρ‹Π΅ тСсты

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, удовлСтворяСт Π»ΠΈ наш ΠΊΠΎΠ΄ трСбованиям, Ссли Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты? Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π΅ боясь, Ρ‡Ρ‚ΠΎ всС сломаСтся? Код Π±Π΅Π· тСстов β€” просто Π½Π΅ чист. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΡŽΠ½ΠΈΡ‚-тСстирования, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Three Pillars of Unit Tests, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³.

9. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ

Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° со смыслом. Π­Ρ‚ΠΈ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅. Они Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΡ‹ΠΌΠΈ. Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚Π΅ΠΌΠ΅ самодокумСнтированного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ чистый ΠΊΠΎΠ΄?

Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΎΠ΄Π½ΠΎ послСднСС качСствС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠΌ всСго Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ:

Чистый ΠΊΠΎΠ΄ написан Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Π½Π΅ ΠΏΠ»Π΅Π²Π°Ρ‚ΡŒ.

Ρ†ΠΈΡ‚Π°Ρ‚Π° Майкла ЀСтСрса (Michael Feathers).

Он написан Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ относится ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ ΠΊ искусству, ΠΈ ΠΊΡ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° всС Π΄Π΅Ρ‚Π°Π»ΠΈ.

Π’Π΅ΠΌΠ° чистого ΠΊΠΎΠ΄Π° β€” ΠΎΡ‡Π΅Π½ΡŒ слоТна, ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ описанного Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ характСристики чистого ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ, поТалуйста, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ Π² коммСнтариях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄

МнС приходится ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ ΠΈ open source, ΠΈ всячСскиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΈ ΠΊΠΎΠ΄ enterprise ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ИмСнно ΠΎ послСдних я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ сСгодня ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° enterprise ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” отстой. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π³Π»ΡŽΡ‡Π°Ρ‚ ΠΈ тормозят, ΠΈΡ… слоТно Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, постоянно ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ удивляСт.

Но ΡƒΠ΄ΠΈΠ²Π»ΡΡŽΡ‚ люди, написавшиС отстойный ΠΊΠΎΠ΄. Π­Ρ‚ΠΈ люди, с Π½Π΅ΠΌΠ°Π»Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, Π·Π½Π°ΡŽΡ‚ нСсколько языков, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ½ΠΈΠ³, Π·Π½Π°ΡŽΡ‚ ООП, SOLID, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ малопонятныС слова. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· вас, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΡ… этот пост.

ВСория Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Ρ… ΠΎΠΊΠΎΠ½

Π’ 1969 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ экспСримСнт. Π’ Ρ…ΠΎΠ΄Π΅ экспСримСнта Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π±Ρ‹Π»ΠΈ оставлСны Π² Π΄Π²ΡƒΡ… мСстах – Π² Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠΌ унивСрситСтском Π³ΠΎΡ€ΠΎΠ΄ΠΊΠ΅ ΠΈ Π½Π΅Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π°ΠΉΠΎΠ½Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ€ΠΎΠ΄Π°. НС ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠΌ мСстС машина простояла всСго ΠΏΠ°Ρ€Ρƒ Π΄Π½Π΅ΠΉ ΠΈ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ΅Π½Π°, Π° Π² Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠΌ машина простояла Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ нСдСлю. Но ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡƒΡ†Π΅Π»Π΅Π²ΡˆΠ΅ΠΉ машинС Ρ€Π°Π·Π±ΠΈΠ»ΠΈ стСкло, ΠΆΠΈΡ‚Π΅Π»ΠΈ этого самого Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π³ΠΎΡ€ΠΎΠ΄ΠΊΠ° Π·Π° нСсколько часов Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π΅Ρ‘ Π½Π° Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π²Π²Π΅Ρ€Ρ… Π΄Π½ΠΎΠΌ.

Π’ послСдствии ΡƒΡ‡Π΅Π½Ρ‹Π΅ Π½Π°Π·Π²Π°Π»ΠΈ это явлСниС β€œΠ’Π΅ΠΎΡ€ΠΈΠ΅ΠΉ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Ρ… окон”. Богласно Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, любоС проявлСниС бСспорядка ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π½ΠΎΡ€ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ людСй Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…. ВСория ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° нСсколько ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ достовСрной.

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ эффСкт. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ порядка ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ порядок.

Как это влияСт Π½Π° ΠΊΠΎΠ΄

Π’ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ прСссинг сроков ΠΈ нСопрСдСлСнности Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ высок, Ρ‡Ρ‚ΠΎ каТСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€œΠ±Ρ‹ΡΡ‚Ρ€ΠΎ ΠΈ грязно” – Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ΠœΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€œΠ±Ρ‹ΡΡ‚Ρ€ΠΎ ΠΈ грязно” Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ всСму ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΏΡƒΡ‚Π΅ΠΌ clipboard inheritance (aka copy-paste), Ρ‚Π°ΠΊ ΠΈ Π·Π° счСт эффСкта Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Ρ… ΠΎΠΊΠΎΠ½.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΊΡ‚ΠΎΡ€ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π° качСство ΠΊΠΎΠ΄Π° – ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Из-Π·Π° этого Π² ΠΊΠΎΠ΄Π΅ часто ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…Π°ΠΊΠΈ ΠΈ Π½Π΅Π»Π΅ΠΏΡ‹Π΅ workaround-Ρ‹. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ эти Ρ…Π°ΠΊΠΈ ΠΈ Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚, люди ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π°ΠΊΠΈ. ΠšΡΡ‚Π°Ρ‚ΠΈ эти Ρ…Π°ΠΊΠΈ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΠΎΡ€ΡƒΠΌΡ‹, Π±Π»ΠΎΠ³ΠΈ ΠΈΠ»ΠΈ pastebin ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ качСство ΠΊΠΎΠ΄Π° Π½Π΅ влияСт Π½Π° качСство прилоТСния. Π£Π²Ρ‹, Π΅Ρ‰Π΅ ΠΊΠ°ΠΊ влияСт. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки. Π§Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ слоТнСС эти ошибки Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ…. ΠŸΡ€Π΅ΡΡΠΈΠ½Π³ сроков ΠΈ слоТности, скорСС всСго, Π½Π΅ даст Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ появится Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ…Π°ΠΊ.

Π’ open source ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ встрСчаСтся Ρ€Π΅ΠΆΠ΅. Π’Π°ΠΌ большС слСдят Π·Π° качСством ΠΈ мСньшС прСссинг сроков.

Код ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ для людСй

Часто программисты Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для людСй. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ, Ρ‚ΠΎ посмотрСв Π½Π° Π½Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· мСсяц, Π²Ρ‹ Π½Π΅ вспомнитС ΠΏΠΎΡ‡Π΅ΠΌΡƒ написали Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ кусок ΠΊΠΎΠ΄Π° ΠΈ Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ ясно Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ намСрСния. К соТалСнию β€œΠ±Ρ‹ΡΡ‚Ρ€Ρ‹Π΅ ΠΈ грязныС” способы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡŒΡŽΡ‚ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎ понимаСмости ΠΊΠΎΠ΄Π°. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° осознанно откладываСтся Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ°ΡƒΠ·Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ провСсти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. Π’Π΅ самыС Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½Π°ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚, Π° ΠΊΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сразу ΠΆΠ΅ послС попадания Π² source control.

Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ свои ΠΊΠΎΠ΄ΠΎΠΌ (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв программисты свои ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹), Ρ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ваш ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв программисты Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ Ρ‡ΡƒΠΆΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ).

ΠŸΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ качСству

ЕдинствСнный способ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ высокой продуктивности ΠΈ эффСктивности – ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ сразу. ЕдинствСнный инструмСнт ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ качСства ΠΊΠΎΠ΄Π° – Π²Ρ‹ сами. Если Π²Ρ‹ Π½Π΅ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ всСгда Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΈ тСсты, Π½ΠΈ инструмСнты статичСского Π°Π½Π°Π»ΠΈΠ·Π°. Π”Π°ΠΆΠ΅ Ρ€Π΅Π²ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… программистов Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚. Код всСгда ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ, ΠΏΡ€ΠΈ этом ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½ ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ΡΡ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ структурС ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ. Код с Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ малопонятным ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ исполнСния скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ошибки. НС допускайтС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, это Π³ΠΎΡ€Π°Π·Π΄ΠΎ дСшСвлС, Ρ‡Π΅ΠΌ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки.

Ясно Π²Ρ‹Ρ€Π°ΠΆΠ°ΠΉΡ‚Π΅ намСрСния Π² своСм ΠΊΠΎΠ΄Π΅, сводитС ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ нСявныС аспСкты. НС Π½Π°Π΄ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ максимально Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ, ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ максимально понятным.

Если Π²Π°ΠΌ приходится ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‚ΠΎ Π½Π΅ создавайтС Ρ…Π°ΠΊΠΎΠ². ΠŸΠΎΡ‚Ρ€Π°Ρ‚ΡŒΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. БэкономитС Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Если ΠΆΠ΅ ΠΊΠΎΠ΄ совсСм ΠΏΠ»ΠΎΡ…ΠΎΠΉ, Π±Ρ‹Π» сдСлан β€œΠ±Ρ‹ΡΡ‚Ρ€ΠΎ ΠΈ грязно” ΠΈ оброс Ρ…Π°ΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ просто Π²Ρ‹ΠΊΠΈΠ½ΡŒΡ‚Π΅ Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅. Волько Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ всС. Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: программист ΠΏΠΈΡˆΠ΅Ρ‚ 40-60 ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… строк ΠΊΠΎΠ΄Π° Π² дСнь Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ‚Π΅ΠΌΠΏΠ΅ ΠΈ 120-200 Π² ускорСнном (высокая концСнтрация, чСткая Ρ†Π΅Π»ΡŒ, понятно Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ).

Если Π²Ρ‹ сами ΠΏΠΈΡˆΠ΅Ρ‚Π΅ β€œΠ±Ρ‹ΡΡ‚Ρ€ΠΎ ΠΈ грязно”, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ для уточнСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Ρ‚ΠΎ Π²Ρ‹ΠΊΠΈΠ½ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ сразу послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ваш ΠΊΠΎΠ΄ сдСлаСт своС Π΄Π΅Π»ΠΎ.

Если Π²Ρ‹ скопировали Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ мСста ΠΈΠ»ΠΈ, Π½Π΅ Π΄Π°ΠΉ Π±ΠΎΠ³, ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Ρ‚ΠΎ Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² source control. Π’ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ нСпонятныС для вас Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°.

ВсСгда ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ чистоту ΠΈ порядок Π² вашСм ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ инструмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Π°ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ. НС Π±ΡƒΠ΄Π΅Ρ‚Π΅ этого Π΄Π΅Π»Π°Ρ‚ΡŒ – ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ быстро прСвратится Π² ΠΏΠΎΠΌΠΎΠΉΠΊΡƒ. Π‘ΠΎΠ±ΠΈΡ€Π°ΠΉΡ‚Π΅ статистику ΠΏΠΎ плотности ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ постоянно Π² процСссС написания. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€œΠΏΠΎΡ‚ΠΎΠΌβ€ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ наступаСт.

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

Π­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ° качСства ΠΊΠΎΠ΄Π°

ВсС Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΊΡ€ΠΈΠ²ΠΎΠΉ стоимости ошибки:
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄

Ошибка найдСнная ΠΈ устранСнная Π½Π° этапС кодирования Π² 10 Ρ€Π°Π· дСшСвлС, Ρ‡Π΅ΠΌ ошибка найдСнная ΠΏΡ€ΠΈ тСстировании ΠΈ Π² 100 Ρ€Π°Π· дСшСвлС ошибки, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Π² production. Π’ истории Π΅ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ошибок, исправлСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… обошлось Π² дСсятки тысяч Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ².

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ усилиями самих Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°

Π—Π° Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Π»Π΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ программирования я сформулировал, ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½, главнСйший ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Π½Π΅Π³ΠΎ, ΠΌΠ½Π΅ ΠΈ ΠΌΠΎΠΈΠΌ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² порядок самый ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ малосовмСстимых программистов ΠΈ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ систСмы Π±Π΅Π· лишнСго Π½Ρ‹Ρ‚ΡŒΡ.

ΠŸΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ: 15 ΠΌΠΈΠ½ΡƒΡ‚
ΠžΡΠΌΡ‹ΡΠ»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ: 10 ΠΌΠΈΠ½ΡƒΡ‚
ΠžΡ‰ΡƒΡ‚ΠΈΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹: 30 ΠΌΠΈΠ½ΡƒΡ‚

Π—Π°Ρ‡Π΅ΠΌ?

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΊΠΎΠ΄Π΅?

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄

ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄ правится ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° измСнСния приносят нСоТиданности. Π­Ρ‚ΠΎ ΠΈ понятно: программист Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΈ Π΅ΠΌΡƒ приходится Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅. БобствСнно, часто Ρ‚Π°ΠΊ ΠΈ Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠΊΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ способСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° являСтся Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΆΠ΅ – это понятиС сугубо чСловСчСскоС. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρƒ всС Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ Ρ‡Ρ‚ΠΎ называСтся, ΠΎΠ½ Π½Π΅ Π²Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΡΡƒΡ‚ΡŒ; Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄. Волько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ· названия ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚. Волько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ сразу Π²ΠΈΠ΄ΠΈΡ‚ ΡΡƒΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Π½Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Π― ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² большСй стСпСни зависит ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠΉ. ΠžΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠΉ классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π§Π΅ΠΌ Ρ‡Π΅Ρ‚Ρ‡Π΅ сформулированы ΠΈΠΌΠ΅Π½Π°, ΠΈ Ρ‡Π΅ΠΌ ΠΈΡ… большС β€” Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ читаСтся ΠΊΠΎΠ΄.

НапримСр, Π΅ΡΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ для отсылки увСдомлСния Π½Π° мобильноС устройство:

Π’Ρ€ΠΎΠ΄Π΅ каТСтся, Ρ‡Ρ‚ΠΎ это Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ чистый ΠΊΠΎΠ΄. Но это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ каТСтся.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ простой способ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ β€” мСханичСский. НСкая ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΡŽΠ½Ρ‹ΠΉ программист; пригодная для ΡƒΡ‚Ρ€Π° ΠΈ для Π²Π΅Ρ‡Π΅Ρ€Π°, для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°, Π΄Π°ΡŽΡ‰Π°Ρ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Вакая ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° сущСствуСт.

ВсС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ β€” Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ Π½Π°Π·Π²Π°Π½ΠΎ.

ΠŸΠΎΡ‡Ρ‚ΠΈ Π² любом ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ кусочки, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅, Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈ β€” ваТнСйший ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌ понятноС имя.

Π’ Π½Π°Ρ‡Π°Π»Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ кусочСк ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ вопрос: β€œΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ дСвайс?”

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ дСвайс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° вопрос, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ Π½Π°ΠΉΡ‚ΠΈ, Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ вычисляСт Π΅Π³ΠΎ.

ИдСм дальшС. Π”Π°Π²Π°ΠΉ посмотрим Π²Π½ΡƒΡ‚Ρ€ΡŒ isLocatable(). Π’ Π½Π°Ρ‡Π°Π»Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎΠΆΠ΅ самоС: Π² этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ вопросы:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π°Π½Π³Π»ΠΈΠΉΡΠΊΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ. Π•Π³ΠΎ когнитивная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ низкая: читая ΠΌΠ΅Ρ‚ΠΎΠ΄ isLocatable() Ρ‚Ρ‹ видишь, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΠ΅ΡˆΡŒ своС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅. Читая isDeviceExpired(), Ρ‚Ρ‹ понимаСшь, ΠΊΠ°ΠΊ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ принимаСтся ΠΈ Ρ‚Π²ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ сосрСдоточСно Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·Π° β€” Π΅Π³ΠΎ достаточно лишь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Π—Π°ΠΎΠ΄Π½ΠΎ, кстати, Ρ‚Ρ‹ ΡƒΠ·Π½Π°Π» Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° token пустой. ΠžΠ±Ρ€Π°Ρ‚ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠΌ элСгантным ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом это Π·Π½Π°Π½ΠΈΠ΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΎ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Ах Π΄Π°, Π·Π°ΠΌΠ΅Ρ‚ΡŒ: этому ΠΊΠΎΠ΄Ρƒ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Instant win!

ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ каТСтся, Ρ‡Ρ‚ΠΎ это всС слишком просто ΠΈ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ. ΠžΡ‚Π½ΡŽΠ΄ΡŒ! Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π³Π»ΡƒΠ±ΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ‚Π΅Π±Π΅ показалось.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ всСгда ΠΏΡ€ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя любой Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ тСкст. ИмСнно поэтому ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ произнСсти, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ связный. ВСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых эффСктивных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΌΠΎΠ·Π³Π°: Ρ€Π΅Ρ‡ΡŒ. Если тСкст нСльзя ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· этот парсСр, ΠΌΠΎΠ·Π³ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, нСдостаточно эффСктивныС рСсурсы. ΠžΡ‚ΡΡŽΠ΄Π° быстрая ΡƒΡΡ‚Π°Π»ΠΎΡΡ‚ΡŒ ΠΈ головная боль ΠΏΡ€ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ со ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ‹ понял, Π΄Π°? πŸ™‚

* 300ms β€” срСдняя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ ΠΈ исслСдованиям.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π”Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: ΠΎΠ΄ΠΈΠ½ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² (мноТСствСнный ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ), Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. РаздСляСм ΠΈ Π΄Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π°:

Код поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° iOS:

Если ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π΅Ρ‚, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² кэш. РаздСляСм:

РаспиливаСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· SQL Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π― этот ΠΊΠΎΠ΄ писал сам Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄, Π° сСйчас, ΠΊΠΎΠ³Π΄Π° искал ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π΄ΠΎΠ»Π³ΠΎ пытался ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вся эта каша Π΄Π΅Π»Π°Π΅Ρ‚.

Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ XML для бСсСды с Amazon S3. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΡ‹ Ρ‚ΡƒΠ΄Π° ΠΊΠ»Π°Π΄Π΅ΠΌ, Ρ‚ΠΎ XML создаСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

ВСорСтичСски это довольно понятный ΠΊΠΎΠ΄, Π½ΠΎ Π΄Π°Π²Π°ΠΉ Π΅Π³ΠΎ упростим:

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅

НС всС согласны с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это β€” Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅. Если Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° возрастаСт когнитивная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ программист Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π·Π΄ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ Π²Π²Π΅Ρ€Ρ…-Π²Π½ΠΈΠ· Π² поисках Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΏΠ΅Ρ€Π΅Π΄ Π³Π»Π°Π·Π°ΠΌΠΈ.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ здСсь Π½ΡƒΠΆΠ½Π° ΠΌΡƒΠ΄Ρ€ΠΎΡΡ‚ΡŒ. Ни ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ экстракции всСх Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π½ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄Π° Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π΄Π°Π΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ сами ΠΏΠΎ сСбС. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вкус ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠ΅ чувство наития, ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, Π³Π΄Π΅ стоит Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄, Π° Π³Π΄Π΅ Π½Π΅Ρ‚.

Один ΠΈΠ· способов Ρ€Π΅ΡˆΠΈΡ‚ΡŒ этот ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Выносим всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Ρ‹ Π΄Π½Π΅ΠΉ измСнСния Π½Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ, Ρ‚Π΅Ρ€ΠΏΠΈΠΌ. Π§Π΅Ρ€Π΅Π· дня Ρ‚Ρ€ΠΈ станСт ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ понятно, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ

Π’Π°ΠΊΠΈΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² любом ΠΊΠΎΠ΄Π΅ β€” ΠΎΠ½ ΠΎΡ‚ этого Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅. Π­Ρ‚ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² любоС врСмя, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ»ΠΎΠ²Π° ΠΏΠ»ΠΎΡ…ΠΎ сообраТаСт ΠΈΠ»ΠΈ устал: Ρ‚Ρ‹ Π½Π΅ мСняСшь ΠΊΠΎΠ΄, Ρ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΡˆΡŒ Π΅Π³ΠΎ, это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ бСзопасно.

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ этому Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π΅Π· ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Π•ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ любой объСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” Π΄Π°ΠΆΠ΅ пяти ΠΌΠΈΠ½ΡƒΡ‚ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ΠΌΡƒ.

НС стоит Π±ΠΎΡΡ‚ΡŒΡΡ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½. Напротив, Π±Π°ΠΉΡ‚Ρ‹ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π° Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… Π² соврСмСнном Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ autocomplete.

Update: ΡƒΠ±Ρ€Π°Π» конструкции Π²ΠΈΠ΄Π° Β«if (true) return trueΒ» ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‚.ΠΊ. ΡΡƒΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π΅ Π² этом, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ считаСт своим Π΄ΠΎΠ»Π³ΠΎΠΌ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄? Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π·Π²Ρ‘Π·Π΄Ρ‹

Никогда Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ, ΠΈ Π²ΠΎΡ‚ ΠΎΠΏΡΡ‚ΡŒ! ΠžΠΏΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π½Π° Π₯Π°Π±Ρ€Π΅ появился (ΠΈ Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½) пост, Π½Ρ‹Π½Π΅ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ, ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ. ЯндСкс подсказываСт, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΌ, идСальном, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ, чистом, грязном, ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΈ Ρ‚.Π΄.) ΠΊΠΎΠ΄Π΅ здСсь ΡƒΠΆΠ΅ дСсятки ΠΈ сотни, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, всСгда Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Π½ΠΎ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ мнСнию Π½Π° этот счёт Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ тянСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° ΠΎΠ΄Π½Ρƒ Π·Π²Π΅Π·Π΄Ρƒ πŸ™‚

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π² настоящСС врСмя распространён повсСмСстно. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ этому нСсколько, Π²ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅:

Массовая цифровизация, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ тСхзадания программистам ставят люди, Π΄Π°Π»Ρ‘ΠΊΠΈΠ΅ ΠΎΡ‚ IT (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π·Π°Π²ΠΎΠ΄ΠΎΠ²) ΠΈ ΠΎΠ½ΠΈ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ качСство ΠΊΠΎΠ΄Π°.

ВысокиС Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ Π² IT Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ всСх-всСх-всСх, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ, пройдя курсы «Π²Π°ΠΉΡ‚ΠΈ-Π²Π°ΠΉΡ‚ΠΈ Π·Π° мСсяц» ΠΈ имСя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΈ.

БправСдливости Ρ€Π°Π΄ΠΈ: Π½Π΅ всСгда это ΠΏΠ»ΠΎΡ…ΠΎ. Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ°Π»ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Π°Ρ, Ρ‚ΠΎ Π΅Ρ‘ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ особо Π½Π΅Π·Π°Ρ‡Π΅ΠΌ (ΠΈ Ρ‚Π°ΠΊ Π»Π΅Ρ‚Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚, Π½Ρƒ вСдь ΠΏΡ€Π°Π²Π΄Π° ΠΆΠ΅!). Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ обрСтСния ΠΎΠΏΡ‹Ρ‚Π° пСрСходят Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅.

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π΅Ρ‰Ρ‘ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ достаточно быстро. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ процСссорной Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности. Одно ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считаСтся эффСктивной ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ количСству элСмСнтов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… N, Ρ‚.Π΅. ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ N Π² k Ρ€Π°Π· врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² k Ρ€Π°Π·.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° опрСдСляСтся Π½Π΅ ΠΏΠΎ этому ΡƒΡ‡Π΅Π±Π½ΠΎ-Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ, Π° ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ цСлям ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° ΠΊΠ°ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ («Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ N Π½Π΅ большС k»), Ρ‚Π°ΠΊ ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ («ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Π½Π΅ дольшС 0,5 сСкунды») ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ («Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 80% ΠΎΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… согласились, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° открываСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ»).

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задСйствуСт условно нСбольшоС количСство памяти ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ процСссорной мощности, Π½ΠΎ ΠΈ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎ процСссору, ΠΈ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠ΅, ΠΈ ΠΏΠΎ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŽ.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ слСгка ΡƒΡΠ΅Ρ‡ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌ ΠΊΠΎΠ΄Π°: Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ куски Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· #define Π·Π°Π±Π»Π°Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ языка Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅, Ссли это оказываСтся Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ. Однако всё это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, баловство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ приносит ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ скорСС Π²Ρ€Π΅Π΄ΠΈΡ‚. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡƒΡ‚Ρ‘ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, трСбуСтся ΠΎΡ‡Π΅Π½ΡŒ высокая квалификация.

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π½ΠΎ ΠΈ прСкрасСн: Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ, красиво ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½, Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… мСстах ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, понятСн Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ поколСниям программистов. Π’Ρ‹ΡΡˆΠΈΠΉ ΠΏΠΈΠ»ΠΎΡ‚Π°ΠΆ ΠΎΡ‚ ΠΌΠΈΡ€Π° IT. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠ°ΠΊ говорится, излишни.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ моя классификация Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°. НапримСр, ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ красиво ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ссли оптимизация Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°? ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΡŽ Π½Π° Π²Ρ‹ΡΡˆΡƒΡŽ истину Π² этом вопросС, Π½ΠΎ надСюсь, Ρ‡Ρ‚ΠΎ эта Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ, Π΄Π°Π² ΠΏΠΈΡ‰Ρƒ для Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄?

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ· Ρ‡Π΅Π³ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚. НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° – Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: Π·Π° Π΅Π³ΠΎ качСством Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ нСобходимости рСгулярно ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΡ„ΠΈΠΊΡΠΈΡ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ чистый ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ΅Π½.

Брэм Коэн, Π°Π²Ρ‚ΠΎΡ€ BitTorrent, писал: «Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ любой ΠΈΠ΄ΠΈΠΎΡ‚, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ качСство написанного ΠΈΠ΄ΠΈΠΎΡ‚ΠΎΠΌ». И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, нСсмотря Π½Π° постоянноС ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ рядов программистов, качСством ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ…Π²Π°ΡΡ‚Π°Ρ‚ΡŒΡΡ Π½Π΅ всС.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ характСристики качСствСнного ΠΊΠΎΠ΄Π° – это Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ этих ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² позволяСт ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ чистым ΠΈ красивым – Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Cyanide and Happiness

ВсС дСйствия, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½ΠΈΠΌ, позволяя ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ЛинСаризация состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… этапов: Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, вынСсти Π΅Π΅ Π½Π° наимСньший ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΈ рСкурсивно ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ с подвСтвями. Π”ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅:

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ многочислСнных ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ², Ссли ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Если Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части ΠΊΠΎΠ΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. НС стоит ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСды ΠΈ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΈΠΌΠΈ ΠΊΠΎΠ΄. МногиС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоят ΠΏΠ΅Ρ€Π΅Π΄ программистами, ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Ρ‹; стоит просто ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹ Π½Π΅ всСгда, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ класса ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ»ΠΈ просто ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄. Π’ любом случаС, ΠΈΡ… Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡ… Π±Ρ‹Ρ‚ΡŒ ΠΈ слишком ΠΌΠ½ΠΎΠ³ΠΎ. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρƒ Π½Π΅Π΅ это Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚.

Иногда пСрСнос Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π±Π»Π°Π³ΠΈΠΌΠΈ намСрСниями программистов: ΠΌΠ°Π»ΠΎ Π»ΠΈ, ΠΊΠΎΠΌΡƒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. НапримСр, это происходит, ΠΊΠΎΠ³Π΄Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписываСтся, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΆΠ°Π»ΠΊΠΎ – Π²ΠΎΡ‚ ΠΎΠ½Π° ΠΈ пылится Π² коммСнтариях мСсяцами. Если Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ, Ρ‚ΠΎ это Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. РСгулярноС тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ – ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π΅Π΅ качСства. Если Π·Π°Ρ‚ΡΠ½ΡƒΡ‚ΡŒ с этим процСссом, Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ слишком Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ, ΠΈ поиск Π±Π°Π³ΠΎΠ² Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΊΡƒΠ΄Π° большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ ΠΌΠΎΠ³ Π±Ρ‹.

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

НС стоит ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ ошибкам с Π½Π΅Π½Π°Π²ΠΈΡΡ‚ΡŒΡŽ ΠΈ яростно Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ΅Π»ΠΎΡ‡ΡŒΡŽ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΡ‚ Π±Π°Π³ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ, Π½ΠΎ этот процСсс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄Ρ‚ΠΈ Π½Π° ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈ программисту. Π­Ρ‚ΠΎ позволяСт ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ошибок Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ΄Ρƒ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, поэтому стоит Π·Π°ΠΏΠ°ΡΡ‚ΠΈΡΡŒ Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ эту Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ПО.

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

МоТно Π·Π°ΠΊΠΈΠ½ΡƒΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Π² ΡˆΠΊΠ°Ρ„ ΠΎΠ΄Π½ΠΎΠΉ большой ΠΊΡƒΡ‡Π΅ΠΉ ΠΈ ΠΏΠΎΠΏΠ»ΠΎΡ‚Π½Π΅Π΅ Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²Π°Π»ΠΈΠ»ΠΎΡΡŒ, Π° ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ всС ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ΄ΠΈΠ½: Π²Π΅Ρ‰ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΡˆΠΊΠ°Ρ„ Π·Π°ΠΊΡ€Ρ‹Ρ‚. Однако снова Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС. Π’Π°ΠΊ ΠΆΠ΅ ΠΈ с ΠΊΠΎΠ΄ΠΎΠΌ: Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΌΡ‹ пСрСписываСм Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ способом, Π½Π΅ мСняя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΈ сниТаСт количСство ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Код Π½Π°ΡˆΠΈΡ… ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ спСциалистами. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ свСТим взглядом, Π½Π°ΠΉΡ‚ΠΈ Π·ΠΎΠ½Ρ‹ роста ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄. НСрСдко ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ. Π‘Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ситуации, ΠΊΠΎΠ³Π΄Π° junior-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ свСТим взглядом смотрят Π½Π° ΠΊΠΎΠ΄ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅Π³ ΠΈ вносят ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ. Вакая совмСстная Ρ€Π°Π±ΠΎΡ‚Π° позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ качСство ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

Π­Ρ‚ΠΎ автоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ статичСского Π°Π½Π°Π»ΠΈΠ·Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ людСй ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠ³ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ code review. Благодаря этому ΠΌΡ‹ ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *