59 lines
4.0 KiB
Markdown
59 lines
4.0 KiB
Markdown
---
|
||
Тип: Книга
|
||
Статус: Запланировано
|
||
Название: 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. Пережить интервью]]
|