Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ
Найти Π² Π”Π·Π΅Π½Π΅

πŸ“– ЭссС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°: взгляд Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· тСксты

НСдавно Майкл Π›ΠΈΠ½Ρ‡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ эссС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повлияли Π½Π° Π΅Π³ΠΎ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО. Π’ спискС β€” ΠΎΡ‚ классики Π€Ρ€Π΅Π΄Π° Брукса ΠΈ ДТоэла Бпольски Π΄ΠΎ свСТих Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти тСксты ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ 40 Π»Π΅Ρ‚ истории индустрии β€” ΠΎΡ‚ 1986 Π΄ΠΎ 2022 Π³ΠΎΠ΄Π°. КаТдоС ΠΈΠ· Π½ΠΈΡ… Π΄Π°Π»ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ Β«Ρ‰Π΅Π»Ρ‡ΠΎΠΊ сознания», ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сторонС Ρ€Π°Π±ΠΎΡ‚Ρ‹: 🧩 ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Β«The Joel TestΒ» Бпольски Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ зрСлости ΠΊΠΎΠΌΠ°Π½Π΄. Вопросы ΠΏΡ€ΠΎ CI/CD, Π±Π°Π³-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ ΠΈ ΡŽΠ·Π°Π±ΠΈΠ»ΠΈΡ‚ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ Π±Ρ‹Π»ΠΈ ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌ: ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‚ Π»ΠΈ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²? πŸ” Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΈΠΏΡ‹ β€” эссС Β«Parse, don’t validateΒ» АлСксис Кинг ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ типизация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‰ΠΈΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² уязвимостСй. Валидация Π½Π° Π²Ρ…ΠΎΠ΄Π΅ нСдостаточна, Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ парсинг ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нСбСзопасныС строки Π² бСзопасныС сущности. βš–οΈ Бущностная ΠΈ случайная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” Π€Ρ€Π΅Π΄ Брукс Π² Β«No Silver BulletΒ» объяснил, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ инструмСнты Π½Π΅ ΡƒΠ±Π΅Ρ€ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ настоящиС Π·Π°Π΄Π°Ρ‡
ОглавлСниС

НСдавно Майкл Π›ΠΈΠ½Ρ‡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ эссС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повлияли Π½Π° Π΅Π³ΠΎ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО. Π’ спискС β€” ΠΎΡ‚ классики Π€Ρ€Π΅Π΄Π° Брукса ΠΈ ДТоэла Бпольски Π΄ΠΎ свСТих Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти тСксты ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ 40 Π»Π΅Ρ‚ истории индустрии β€” ΠΎΡ‚ 1986 Π΄ΠΎ 2022 Π³ΠΎΠ΄Π°.

Π§Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ эти эссС?

КаТдоС ΠΈΠ· Π½ΠΈΡ… Π΄Π°Π»ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ Β«Ρ‰Π΅Π»Ρ‡ΠΎΠΊ сознания», ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сторонС Ρ€Π°Π±ΠΎΡ‚Ρ‹:

🧩 ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Β«The Joel TestΒ» Бпольски Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ зрСлости ΠΊΠΎΠΌΠ°Π½Π΄. Вопросы ΠΏΡ€ΠΎ CI/CD, Π±Π°Π³-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ ΠΈ ΡŽΠ·Π°Π±ΠΈΠ»ΠΈΡ‚ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ Π±Ρ‹Π»ΠΈ ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌ: ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‚ Π»ΠΈ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²?

πŸ” Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΈΠΏΡ‹ β€” эссС Β«Parse, don’t validateΒ» АлСксис Кинг ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ типизация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‰ΠΈΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² уязвимостСй. Валидация Π½Π° Π²Ρ…ΠΎΠ΄Π΅ нСдостаточна, Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ парсинг ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нСбСзопасныС строки Π² бСзопасныС сущности.

βš–οΈ Бущностная ΠΈ случайная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” Π€Ρ€Π΅Π΄ Брукс Π² Β«No Silver BulletΒ» объяснил, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ инструмСнты Π½Π΅ ΡƒΠ±Π΅Ρ€ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ настоящиС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Но Π²ΠΎΡ‚ Β«ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽΒ» ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти) β€” ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

πŸ–₯️ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ Π²Ρ‹Π±ΠΎΡ€ β€” Бпольски Π² Β«ChoicesΒ» Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠ»: каТдая новая настройка β€” это Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Π½Π΅Π³ΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

πŸ§ͺ ВСстированиС β€” эссС Π­Ρ€ΠΈΠΊΠ° ΠšΡŽΡ„Π»Π΅Ρ€Π° Β«Don’t Put Logic in TestsΒ» объяснило, Ρ‡Ρ‚ΠΎ тСсты Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Β«ΡƒΠΌΠ½Ρ‹ΠΌΠΈΒ», Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ. Π― сам Π»ΠΎΠ²ΠΈΠ» сСбя Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ писал тСсты с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ β€” ΠΈ ΠΎΠ½ΠΈ прятали Π±Π°Π³ΠΈ.

🌐 Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ β€” Β«Choose Boring TechnologyΒ» Дэна МакКинли Π²Π²Π΅Π»ΠΎ понятиС Β«ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²Β»: компания ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС Ρ€ΠΈΡΠΊΠ½ΡƒΡ‚ΡŒ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ тСхнологиями, Π½ΠΎ Π½Π΅ Π²ΠΎ всём сразу. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ часто спасаСт стартапы ΠΎΡ‚ тСхничСских Π΄ΠΎΠ»Π³ΠΎΠ².

πŸ”‘ Личная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ β€” эссС ВСррСнса Π­Π΄Π΅Π½Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ потСрял доступ ΠΊΠΎ всСм своим Π΄Π°Π½Π½Ρ‹ΠΌ, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠ»ΠΎ: Π΄Π°ΠΆΠ΅ оффсайт-бэкапы Π½Π΅ всСгда ΡΠΏΠ°ΡΠ°ΡŽΡ‚. Цифровая Π³ΠΈΠ³ΠΈΠ΅Π½Π° β€” это Π½Π΅ ΠΏΡ€ΠΎ ΠΏΠ°Ρ€Π°Π½ΠΎΠΉΡŽ, Π° ΠΏΡ€ΠΎ Π²Ρ‹ΠΆΠΈΠ²Π°Π½ΠΈΠ΅.

ΠœΠΎΡ‘ ΠΌΠ½Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² этих эссС? Они ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΈ:

  • 🧠 ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ систСмами (ΠΊΠ°ΠΊ Ρƒ Брукса);
  • πŸ› οΈ практичСскиС ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ (ΠΊΠ°ΠΊ Ρƒ Бпольски ΠΈ ΠšΡŽΡ„Π»Π΅Ρ€Π°);
  • πŸ“‰ ΡΠ΄Π΅Ρ€ΠΆΠ°Π½Π½ΠΎΡΡ‚ΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (ΠΊΠ°ΠΊ Ρƒ МакКинли);
  • πŸ”’ Π·Π°Π±ΠΎΡ‚Π° ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… ΠΈ сСбС (ΠΊΠ°ΠΊ Ρƒ Π­Π΄Π΅Π½Π° ΠΈ Π§Π΅Π½Π°).

Π›ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π±Π»ΠΈΠΆΠ΅ всСго идСя Β«parse, don’t validateΒ». Когда-Ρ‚ΠΎ я Ρ‚ΠΎΠΆΠ΅ считал ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ «занудством». Но ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚: Ссли Π² ΠΊΠΎΠ΄Π΅ появляСтся Ρ‚ΠΈΠΏ Username, Ρ‚ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ€Π°Π·Ρ‹.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΌΡ‹ΡΠ»ΡŒ β€” эссС становятся Β«Π²Π΅Ρ‡Π½Ρ‹ΠΌΠΈΒ», Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‚ Π½Π΅ тСхничСский, Π° философский вопрос. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ приходят ΠΈ уходят, Π° ΠΈΠ΄Π΅ΠΈ ΠΏΡ€ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, интСрфСйсы ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ дСсятилСтиями.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π―Π·Ρ‹ΠΊ программирования, стСк ΠΈ инструмСнты β€” это всСго лишь слой. Настоящая сила Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° β€” Π² ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ, Π° ΠΎΠ½ΠΎ формируСтся тСкстами. Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ эссС β€” это ΠΊΠ°ΠΊ ΠΌΠ΅Π½Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²Π°ΡŽΡ‚.

И, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самоС Π²Π°ΠΆΠ½ΠΎΠ΅ β€” ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ классику Ρ€Π°Π· Π² нСсколько Π»Π΅Ρ‚. Часто ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Β«Π½ΠΎΠ²Ρ‹Π΅Β» вопросы ΡƒΠΆΠ΅ Π΄Π°Π½Ρ‹ β€” просто Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ эпохС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами.

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