Software: Ошибки и компромиссы при разработке ПО [Томаш Лелек] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Ошибки и
компромиссы
при разработке ПО

Томаш Лелек
Джон Скит

2023

ББК 32.973.2-018-02
УДК 004.415
Л43

Лелек Томаш, Скит Джон
Л43

Software: Ошибки и компромиссы при разработке ПО. — СПб.: Питер, 2023. —
464 с.: ил. — (Серия «Библиотека программиста»).
ISBN 978-5-4461-2320-9
Создание программных продуктов всегда связано с компромиссами. В попытках сбалансировать скорость, безопасность, затраты, время доставки, функции и многие другие факторы можно обнаружить, что вполне разумное дизайнерское решение на практике оказывается сомнительным. Советы экспертов и яркие примеры, представленные в этой книге, научат вас делать
правильный выбор в дизайне и проектировании приложений.
Мы будем рассматривать реальные сценарии, в которых были приняты неверные решения,
а затем искать пути, позволяющие исправить подобную ситуацию. Томаш Лелек и Джон Скит
делятся опытом, накопленным за десятки лет разработки ПО, в том числе рассказывают о собственных весьма поучительных ошибках. Вы по достоинству оцените конкретные советы
и практические методы, а также неустаревающие паттерны, которые изменят ваш подход к проектированию.

16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
Права на издание получены по соглашению с Manning Publications.
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не
менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
В книге возможны упоминания организаций, деятельность которых запрещена на территории Российской Федерации, таких
как Meta Platforms Inc., Facebook, Instagram и др.
Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет-ресурсы были действующими.

ISBN 978-1617299209 англ.
ISBN 978-5-4461-2320-9 рус.

©2022 by Manning Publications Co. All rights reserved.
© Перевод на русский язык ООО «Прогресс книга», 2023
© Издание на русском языке, оформление ООО «Прогресс книга», 2023
© Серия «Библиотека программиста», 2023

Томаш посвящает эту книгу всему сообществу разработчиков,
использующих открытый код. Большинство инструментов
и архитектур появляется благодаря вашему энтузиазму
и творческому участию. Благодаря вам программные продукты
развиваются и соответствуют современным требованиям.

Джон посвящает написанные им главы всем программистам,
которые хоть раз ломали голову над проблемой, возникшей
из-за часовых поясов или ромбовидных зависимостей.
(А это делало большинство разработчиков…)

Краткое содержание

https://t.me/it_boooks
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
О книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Об авторах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Иллюстрация на обложке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Глава 1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Глава 2. Дублирование кода не всегда плохо: дублирование .
кода и гибкость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Глава 3. Исключения и другие паттерны обработки ошибок в коде . . . . . . 75
Глава 4. Баланс между гибкостью и сложностью . . . . . . . . . . . . . . . . . 112
Глава 5. Преждевременная оптимизация и оптимизация .
критического пути: решения, влияющие на производительность кода . . . . 137
Глава 6. Простота и затраты на обслуживание API . . . . . . . . . . . . . . . 170
Глава 7. Эффективная работа с датой и временем . . . . . . . . . . . . . . . . 198

8  Краткое содержание
Глава 8. Локальность данных и использование памяти . . . . . . . . . . . . . 258
Глава 9. Сторонние библиотеки: используемые библиотеки .
становятся кодом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Глава 10. Целостность и атомарность в распределенных системах . . . . . . 323
Глава 11. Семантика доставки в распределенных системах . . . . . . . . . . 347
Глава 12. Управление версиями и совместимостью . . . . . . . . . . . . . . . 374
Глава 13. Современные тенденции разработки и затраты .
на сопровождение кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

Оглавление
https://t.me/it_boooks
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
О книге . . . . . . . . . . . . . . . . . .