Выбор реактивного веб-фреймворка для Java - PullRequest
0 голосов
/ 19 сентября 2018
  1. Важно ли для выбора правильной структуры, что наше приложение абсолютно без состояния?Нам не нужно беспокоиться о синхронизации, модели одного потока и т. Д.

  2. Я предпочитаю модель, в которой мы пишем «обычный» слой сервисов.Я имею в виду, что сервисы не знают о веб-фреймворке и работают синхронно.Такой подход упрощает разработку и тестирование этих сервисов.Затем слой «Контроллеры» вызывает эти службы асинхронно.Прав ли я, когда хочу достичь такой архитектуры или у нее есть некоторые недостатки?

  3. Я предпочитаю, чтобы у веб-фреймворка был контроллер, который возвращает асинхронный результат в фреймворк (например, возвращая Futures вakka-http или Flux в Web Flux) вместо подхода Vertx к обработчикам, поскольку обработчики занимают больше строк кода и менее читабельны.Я прав?Я что-то пропускаю?

Если вы считаете, что я прав в 2. и 3. - какой фреймворк работает таким образом?

Если вы этого не делаетесогласен с 2. и 3. - какие соображения мне следует принять?

1 Ответ

0 голосов
/ 19 сентября 2018

Я не могу согласиться с 2, когда речь идет о синхронном обслуживании.Я не думаю, что вы можете сделать некоторые части синхронными, другие части асинхронными.Конечно, вы можете сделать это так, однако, тогда вы потеряете все хорошие стороны реактивного программирования.Если какая-то часть кода является блокирующей, а другая - неблокирующей, то и неблокирующая часть также будет заблокирована;) Переход к реактивному программированию требует другого подхода и прочего, однако, если вы это сделаете, тогда тестирование асинхронноуслуги не так сложно.Я бы сказал, что если вы переключитесь на реактивный веб-фреймворк (web-flux), лучше сделать каждую часть кода асинхронной.

...