📖 "Создание событийно-управляемых микросервисов" Адама Беллемара
Какое-то время назад завершил чтение этой книги и вот, наконец, выбрал время написать о ней свои впечатления.
💡 Содержание. Данная работа описывает создание распределённых систем сквозь призму потоков данных. И если под микросервисами обычно подразумевают отдельные небольшие приложения, общающиеся по сети (как правило, это REST), то здесь автор излагает концепцию и соответствующие паттерны событийно-управляемых архитектур (Event-Driven Architecture, EDA). Всё вращается, скорее, вокруг данных и операций над ними, нежели вокруг функциональности.
Книга относительно небольшая, но это не должно вводить в заблуждение. Погружение в событийный подход и идеи использования брокеров сообщений (кстати, автор настаивает на термине "брокер событий") отнимают довольно много времени и сил. Но это не единственное, что причинит боль. Об этом ниже.
💡 Минусы. Здесь вынужден остановиться подробнее, чтобы ненароком не создать рекламу. Вот они.
👉 Терминология. Автор в стремлении донести мысли вводит собственные термины, в которых порой начинаешь путаться. Плюс на страницах книги легко можно встретить слова вроде "квинтэссенция", "дуальность", "эмерджентность" и "петля гистерезиса".
👉 Слог. Очень тяжко читать длинные предложения типа "масло масленое" с кучей некритичных для понимания слов. Пример (а их много!): "При этом команды могут чрезмерно полагаться на платформу коннекторов для получения и приёма данных и отказаться от рефакторинга своих приложений в собственные приложения, управляемые событиями". Почему "получение" и "приëм" отделены, почему тут хочется отрефакторить (не переделать, не трансформировать) код в своë (а раньше чужое было?) приложение? Или вот: "Все совместно используемые данные публикуются в наборе потоков событий, образуя непрерывный поток..." Так поток или набор потоков — вопрос. Или вот ещё: "...процесс производства нового потока событий..." Звучит как что-то из области тяжёлого машиностроения.
👉 Перевод. Ну, камон, зачем писать вещи типа "масштабное управление микросервисами", когда речь не о масштабах, а масштабировании? Или зачем терзать читателя пассажами вроде такого: "Потребители данных используют ссылку на индексный ID для доступа к данным"? В этом случае, видимо, на масло масленое от косноязычного автора наслоился неудачный перевод. Также часто по тексту видна калька с английского вроде "производство в поток" или "нижестоящий потребитель". А то, что "перезагрузка темы" означает, перечитать топик брокера сообщений с начала, я лично долго не мог понять.
👉 Непоследовательность. К примеру, на странице 100 слово "отфильтровать" предполагает неуспешность проверки и отбрасывание некоторых данных, а уже на следующей странице "фильтр" это про то, что "соответствует необходимым критериям". Для тех же, кто дочитает до 189 страницы, увидит, что фильтрация это что-то вроде сходящегося шлюза или конъюнкции нескольких условий, синхронизирующих параллельные потоки...
Другой пример: на одной странице в рассуждениях используется поле updated_at, а на соседней (при схожих обстоятельствах) — уже updated-at. К слову, опечатки в книге тоже есть.
💡 Резюме. Если вы уже глубоко в теме, то, возможно, эту книгу есть смысл прочитать, чтоб поразмышлять о разных аспектах и неочевидных решениях (хотя туманные формулировки снизят радость знания). Однако ж если вы только планируете погружаться в проблематику событийно-управляемых архитектур и пока слабо представляете себе, что такое брокеры и при чём тут Кафка, то эта книга точно не для вас. Она очень тяжёлая, причиняет много боли и страданий, приходится постоянно возвращаться, перечитывать. В общем, рекомендовать эту книгу к обязательному прочтению не могу.
#книги #архитектура #интеграции
Post #216
331

- 👍 3
- 🔥 2
- 🤩 2