Всем привет! 👋
Работая почти 10 лет в разработке, всё чаще замечаю, что многие фронтендеры приходят в профессию без формального IT-образования. Недавно наткнулась на статью, где автор — тоже без классического CS-бэкграунда — делится принципами, которые помогают ему принимать правильные решения «здесь и сейчас».
Мне, человеку с бакалавриатом и магистратурой, было особенно интересно почитать, что же он там написал 🙂
---
🧩 Про «умные» принципы, которые иногда только мешают
Автор пишет, что популярные советы вроде
YAGNI (You Aren’t Gonna Need It),
DRY (Don’t Repeat Yourself)
и «преждевременная оптимизация — корень всех зол»
звучат умно, но в реальной жизни часто создают больше путаницы.
И вот принцип, который действительно помогает ему в работе — правило трёх.
---
📌 Правило трёх
Рефакторить или оптимизировать код стоит только после того, как вы написали его три раза:
1️⃣ Первый раз — просто пишете код, который делает только то, что нужно.
2️⃣ Второй раз — появляется та же логика, и вы буквально копируете её, немного адаптируя.
3️⃣ Третий раз — у вас уже три подобные реализации, и теперь ясно, что обобщать, как упрощать и какой уровень абстракции действительно нужен.
Зачем так делать?
Потому что после трёх повторений вы уже точно знаете:
* что в логике действительно общее,
* что можно упростить,
* какой абстракции хватает,
* и не уйдёте в ненужный оверинжиниринг.
---
⚙️ Принцип «Make it work → Make it right → Make it fast»
Очень хочется оптимизировать всё сразу — но быстрый код часто менее читаемый.
Кент Бек предлагает простой порядок:
🔹 Работает? Если нет — сначала добейтесь этого.
🔹 Делает правильно? Если нет — исправьте логику, входы, поведение.
🔹 Достаточно быстро? Если нет — вот теперь можно оптимизировать.
Смысл простой: нет смысла улучшать код, который пока даже не работает или работает неправильно.
---
✔️ Как итог
Хорошие принципы помогают писать код, который:
* легко читать,
* легко понимать,
* легко изменять,
* легко тестировать.
А плохой код «плох по-разному»: слишком много ответственности, мешанина уровней абстракций, странные оптимизации, лишняя логика.
---
Ссылка на статью:
https://piccalil.li/blog/programming-principles-for-self-taught-front-end-developers/
Post #96
189