Base/Knowledges/Библиотека/Книги/Software. Ошибки и компромиссы при разработке ПО.md

4.0 KiB
Raw Blame History

Тип, Статус, Название, Автор, Количество страниц, Прогресс, Формат, Обложка, Начата, Закончена, Оценка, Сложность, Теги, Категории, Источник, Ссылка
Тип Статус Название Автор Количество страниц Прогресс Формат Обложка Начата Закончена Оценка Сложность Теги Категории Источник Ссылка
Книга Запланировано 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, идемпотентность
  • Сторонние библиотеки: каждая зависимость — это чужой код с чужими решениями; выбор библиотеки влияет на безопасность, производительность и стоимость миграции

💬 Важные цитаты

  • «Создание программных продуктов всегда связано с компромиссами»
  • «Вполне разумное дизайнерское решение на практике оказывается сомнительным»
  • «Книга задумана как описание проблем, встречающихся в реальных системах»

💡 Как применить в моих проектах

🔗 Связанные заметки