Создан  demius PM 4 года назад; Обновил  demius PM 3 года назад

Нам часто нужно будет от проекта получать разную инфу. От многих разных проектов. Разную инфу.

  • С одной стороны не очень красиво иметь гигантский богический ProjectService, отающий что угодно и кеширующий сервисы.
  • С другой стороны не очень оптимально запрашивать из базы один и тот же проект 10 раз. (для получение полномочий по нему, для получение значения справочника, для еще чего-то)

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

  • ProjectSecurity у нас получает публичность проекта (и, в будущем, будет получать набор ProjectUsers, наверное)
  • DictionariesService получает справочники и отдает инфу по id Затем делаем под ними ProjectRegistry, который по первому обращению забирает из базы проект целиком и кеширует его. И сразу листенер, который удаляет кеш указанного проекта…

Нам часто нужно будет от проекта получать разную инфу. От многих разных проектов. Разную инфу.

  • С одной стороны не очень красиво иметь гигантский богический ProjectService, отающий что угодно и кеширующий сервисы.
  • С другой стороны не очень оптимально запрашивать из базы один и тот же проект 10 раз. (для получение полномочий по нему, для получение значения справочника, для еще чего-то)

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

  • ProjectSecurity у нас получает публичность проекта (и, в будущем, будет получать набор ProjectUsers, наверное)
  • DictionariesService получает справочники и отдает инфу по id Затем делаем под ними ProjectRegistry, который по первому обращению забирает из базы проект целиком и кеширует его. И сразу листенер, который удаляет кеш указанного проекта