--- Тип: Книга Статус: Запланировано Название: Software. Ошибки и компромиссы при разработке ПО Автор: - Томаш Лелек - Джон Скит Количество страниц: 464 Прогресс: 0 Формат: Электронная Обложка: Библиотека/Книги/covers/software-oshibki-i-kompromissy.jpg Начата: Закончена: Оценка: Сложность: Теги: - программирование - архитектура - компромиссы - проектирование - распределённые_системы Категории: - Программирование - Проектирование систем Источник: Ссылка: --- # Software. Ошибки и компромиссы при разработке ПО ![[covers/software-oshibki-i-kompromissy.jpg]] ## 📖 О книге Томаш Лелек и Джон Скит делятся опытом десятков лет разработки ПО, разбирая реальные ошибки и компромиссы, с которыми сталкиваются разработчики. Книга не о правильных решениях в вакууме — она о том, как вполне разумный выбор оказывается сомнительным в контексте конкретных условий: производительности, безопасности, затрат на сопровождение и распределённости. Издательство «Питер», 2023, перевод Е. Матвеева. ## 🧠 Ключевые идеи - **Компромиссы неизбежны**: каждое решение в дизайне ПО — это выбор между конкурирующими требованиями; цель разработчика не найти «правильный» ответ, а осознанно выбрать нужный компромисс - **Производительность vs. читаемость**: оптимизация критического пути оправдана, только когда профилирование подтверждает проблему — преждевременная оптимизация создаёт ненужную сложность - **Простота API vs. гибкость**: чем проще API, тем он понятнее, но тем сложнее изменить его без нарушения обратной совместимости — управление версиями требует дисциплины с первого дня - **Атомарность и целостность в распределённых системах**: транзакционные гарантии, привычные в монолите, недостижимы в микросервисах без явных компромиссов — eventual consistency, saga pattern, идемпотентность - **Сторонние библиотеки**: каждая зависимость — это чужой код с чужими решениями; выбор библиотеки влияет на безопасность, производительность и стоимость миграции ## 💬 Важные цитаты - «Создание программных продуктов всегда связано с компромиссами» - «Вполне разумное дизайнерское решение на практике оказывается сомнительным» - «Книга задумана как описание проблем, встречающихся в реальных системах» ## 💡 Как применить в моих проектах ## 🔗 Связанные заметки - [[Чистая архитектура]] - [[Шаблоны корпоративных приложений]] - [[System Design. Пережить интервью]]