ru
Books
Джейми Аллен,Роланд Кун,Брайан Ханафи

Реактивные шаблоны проектирования

Реактивное программирование — совершенно новая и многообещающая парадигма, позволяющая эффективно решать задачи, связанные с созданием распределенных систем и программированием для JVM. Эта книга расскажет, как организовать поток задач, наладить обмен сообщениями между элементами программы, обеспечить параллельную и конкурентную обработку и создавать надежные, отказоустойчивые и гибкие приложения. Перед вами — основополагающая работа по шаблонам проектирования (design patterns) этой парадигмы. Книга проиллюстрирована многочисленными примерами и ориентирована на опытных Java— и Scala-разработчиков
712 printed pages
Copyright owner
Bookwire
Original publication
2023
Publication year
2023
Publisher
Питер
Have you already read it? How did you like it?
👍👎

Quotes

  • Timur Ahmetovhas quoted6 years ago
    этой главе (в частности, когда мы затронем устойчивость) будет полезно вспомнить разницу между ошибками и сбоями, определение которой дается в словаре терминов66 манифеста реактивного программирования: «Сбой — это неожиданное событие, которое произошло внутри сервиса и не дает ему нормально работать дальше. В большинстве случаев он делает невозможным получение ответа на текущий и, вероятно, на все последу­ющие клиентские запросы. Это контрастирует с ошибками, представляющими собой ожидаемые условия, предусмотренные в коде (например, ошибка, обнаруженная во время проверки ввода), и передаваемыми клиенту в рамках штатной обработки сообщения. Сбои происходят неожиданно и требуют вмешательства, чтобы система смогла вернуться к прежнему уровню выполнения. Это не означает, что все сбои являются фатальными, но они определенно влекут за собой снижение работоспособности системы. Ошибки представляют собой часть нормального процесса, они обрабатываются без промедления и не влияют на функциональность».
    В качестве примеров сбоев можно привести аппаратные неполадки, завершение процесса из-за фатальной нехватки ресурсов и программные дефекты, вызывающие повреждение внутреннего состояния.
  • Timur Ahmetovhas quoted6 years ago
    Родительский компонент отвечает за функционирование своих потомков, поэтому было бы логично делегировать ему обработку ошибок, с которыми нельзя справиться локально. Такой подход позволяет создавать программное обеспечение, остающееся надежным даже в непредвиденных ситуациях, что является краеугольным камнем обеспечения устойчивости.
  • Timur Ahmetovhas quoted6 years ago
    Закон Конвея гласит: «Любая организация, проектирующая систему, неизбежно придет к архитектуре, которая является копией структуры взаимодействия внутри этой организации»48. Это говорит о том, что в примере с Gmail у нас получилось бы три модуля, которые отвечают за клиентскую часть, бизнес-логику и базу данных. В рамках этих модулей каждая команда, вероятно, определила бы собственные подмодули для контактов, входа в систему, профиля и почты (рис. 6.3).

On the bookshelves

fb2epub
Drag & drop your files (not more than 5 at once)