📚 И еще одна книга за явнварь: «Код, который умещается в голове» — 5/5 ⭐️ Рекомендую всем, кто пишет (или пытается писать) код. Да, там много примеров и куски кода занимают примерно половину текста. Но ценность для меня — в очень простых и очень важных правилах чистого дизайна, которые не устареют ни с языком, ни с командой, ни с продуктом. Что мы с Игорем отметили, утащили в долговременную память и записали в наш code_rules.md: 🌱 Кодовая база — как сад Если не ухаживать, всё быстро зарастает «сорняками» и начинает «гнить». Вывод простой: регулярный рефакторинг 🔧, удаление мёртвого кода 🧹 и контроль техдолга — это не «когда-нибудь», это часть процесса. 🏗️ Инженерия — это дисциплина Инженерный подход = системность + контроль процесса. И в разработке ПО это работает так же: меньше героизма, больше практик и повторяемых шагов 🛠️ 📖 Код читают больше, чем пишут «Вы тратите больше времени на чтение кода, чем на его написание.» Значит, оптимизируем не “скорость набора текста”, а понятность: структура, имена, простота чтения и ясная логика. 📉 “Больше кода” ≠ “быстрее результат” «Чем больше вы пишете, тем больше вам приходится читать. Автоматическая генерация кода может только усугубить ситуацию.» Прямое напоминание: лишние строки сегодня = лишняя боль завтра. 🎯 ПО должно поддерживать организацию (и меняться устойчиво) «Цель разработки… — поддержка организации… Вы всегда должны быть готовы вносить изменения в устойчивом темпе.» Если изменения становятся дорогими и опасными — продукт начинает тормозить бизнес. 🧱 Не стройте “идеальную инфраструктуру” в вакууме Сначала реальная функциональность, потом обобщения. Иначе легко попасть в ситуацию, когда полгода строили “фреймворк мечты”, а он не подходит под реальные сценарии 🚫 Не добавляйте «на всякий случай» Избегаем спекулятивной общности и преждевременного усложнения. Делать минимально нужное и простое, а дубли и повторяющиеся паттерны отслеживать по мере роста 💎 Внутреннее качество — это ваша “скорость изменений” Если внутреннее качество падает, способность улучшать систему быстро исчезает — и любые изменения становятся дорогими 🧠 Мозг ошибается (WYSIATI) — значит, нужны опоры Мы склонны делать поспешные выводы по тому, что “на виду”. Поэтому нужны эвристики, чек‑листы и такая организация кода, которая подсвечивает главное, а не прячет смысл в деталях 🔦 📦 Дизайн по контракту Пред-/постусловия и инварианты = ясные правила взаимодействия. И да: инкапсуляция — не про геттеры/сеттеры, а про то, чтобы с объектом можно было работать, не зная его внутренностей 🔁 Практики и инструменты CI — это привычка частой интеграции, а не “галочка” Безопасность удобно прогонять через STRIDE Коммуникация важнее “писанины”: сообщения коммитов, API, интерфейсы — всё должно помогать людям понимать друг друга 🤝 Если вы хотите одну мысль, которая останется после книги: Пишите код так, чтобы он “умещался в голове” — вашей и коллег 🧠✨ Потому что однажды этим “будущим специалистом”, который будет его читать, снова станете вы. https://www.labirint.ru/books/947790/