О книге

Книга рассчитана на тех, кто уже знаком с основами архитектуры программного обеспечения: базовые концепции затрагиваются лишь в той мере, которая необходима для понимания материала. Читать её лучше последовательно, однако в ряде случаев она может использоваться и как своего рода справочник, поскольку многие главы построены по принципу «одна глава — один вопрос».

В основе книги лежат рабочие заметки, которые велись на протяжении длительного времени. Эти записи — прежде всего поиск ответов на вопросы, возникавшие у нас в процессе создания системы. В ходе поисков мы неоднократно возвращались к уже сделанным выводам, заново проговаривали их и строили на них дальнейшие рассуждения, поэтому в заметках нередко возникали повторы. Часть повторов мы сознательно сохраняем в книге, поскольку они позволяют проследить ход мысли.

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

Отдельно стоит сказать о формулировках. Мы сознательно их упрощали, поскольку стремились прежде всего объяснить суть, а не дать формально непротиворечивое определение. Поэтому мы часто жертвуем их строгостью ради лаконичности и ясности основной идеи.

Что касается примеров кода, то некоторые из них заведомо некорректны с точки зрения производственной практики: где-то не закрыт поток, где-то клиент может подключиться лишь один раз, а где-то не обрабатываются крайние случаи. Другие же примеры, напротив, взяты из наших реальных проектов и включают многие нюансы.