Пока только на английском на сайте O'Reilly.
У меня в канале есть конспект всех глав первого издания.
Я просмотрела содержание и хочу рассказать, чем новое издание "Проектирования высоконагруженных приложений" отличается от первого.
У второго издания два автора: автор первого Мартин Клеппман и Крис Риккомини.
В новом издании 14 глав (в первом было 12).
1️⃣ Компромиссы в архитектуре систем данных
По сравнению с первым изданием добавлено про клауд, микросервисы и serverless.
2️⃣ Определение нефункциональных требований
Часть аспектов рассматривалась в первой главе первого издания, но отдельной главы про НФТ не было. Во втором издании глава начинается с кейса сисдиз-интервью: проектирования Твиттера! 🔥
3️⃣ Модели данных и языки запросов
Много пересечений с первым изданием, но добавлено про GraphQL, event sourcing и CQRS, схемы Звезда и Снежинка аналитических БД.
4️⃣ Хранение и извлечение данных
Кроме рассмотренных в первом издании LSM и B-Tree индексов, многое добавлено: про колоночные БД, облачные DWH, vector embeddings.
5️⃣ Кодирование и эволюция данных
По содержанию показалось похоже на аналогичную главу в первом издании.
6️⃣ Репликация
7️⃣ Шардирование
8️⃣ Транзакции
Судя по оглавлению, в этих трех главах темы примерно те же, что и в первом издании. Но тут грех жаловаться, эти темы просто великолепно раскрыты в первом издании.
9️⃣ Проблемы распределённых систем
Похоже на первое издание, но дополнительно у меня глаз зацепился за новый пункт "Ограничения TCP".
1️⃣0️⃣ Согласованность и консенсус
Надо сказать, что в первом издании это довольно трудно читаемая глава. Возможно, во втором издании она лучше структурирована и будет легче читаться.
1️⃣1️⃣ Пакетная обработка
В первом издании много говорилось про MapReduce. В новом издании рассмотрено больше тем, в частности есть про объектные хранилища (S3).
1️⃣2️⃣ Потоковая обработка
Здесь тоже количество тем расширено, заметила отдельный пункт про Change Data Capture.
1️⃣3️⃣ Философия потоковых систем
По оглавлению сильно напоминает последнюю главу первого издания, но вероятно глубже раскрывает идею dataflow-first архитектуры.
1️⃣4️⃣ Doing the right thing
Затруднилась перевести так, чтобы правильно передать смысл. На русском мы не говорим "Делаем правильные вещи". Возможно, подходящей будет формулировка "Поступаем этично". В этой главе идет речь про приватность, утечки данных, влияние алгоритмов и последствия.
❗️ Встречала мнение, что кабанчика стоит читать, чтобы подготовиться к сисдиз собесу. Дело в том, что эта замечательная эта книга не учит именно прохождению собесов, в отличие от книг Алекса Ксю и Чжиюн Тань.
Что обычно нужно на сисдиз собесе:
➡️ Собрать функциональные требования
✅ Собрать нефункциональные требования (тут кабанчик поможет)
➡️ Базово спроектировать API по ФТ
➡️ Базово продумать основные сущности доменной модели
➡️ Высокоуровнево спроектировать систему, которая будет удовлетворять функциональным требованиям
✅ Добавить или изменить компоненты системы, чтобы чтобы удовлетворить нефункциональным требованиям (тут кабанчик поможет)
Кабанчика однозначно стоит читать, чтобы углубить знания и подтвердить свою сеньорность на техсобесе/сисдизе и в реальной работе. Особенно в части работы с БД в распределенных системах. Повторюсь, что главы про транзакции, репликацию, шардирование просто шикарны, приходите повторять их перед собесом по конспектам.
Но вот именно для тренировки собеса нужно добирать примеров в других источниках.
Как вы считаете, в вашей работе будут полезны знания из кабанчика?
