
Ilshat
07.10.2017
10:08:25
и эти компоненты юзают сервисцы

Sergey
07.10.2017
10:08:28
так?

Ilshat
07.10.2017
10:08:41
да

Google

Ilshat
07.10.2017
10:08:49
иногда логика меняется сервиса

Sergey
07.10.2017
10:08:52
назови общий метод для M сервисов который используют ВСЕ N компонентов

Ilshat
07.10.2017
10:09:06
loadAll подтянуть с бэка

Sergey
07.10.2017
10:09:12
окей, секу
а остальыне?

Ilshat
07.10.2017
10:09:56
все нужны
в разных компонентах разные методы

Sergey
07.10.2017
10:10:04

Ilshat
07.10.2017
10:10:10
я это пишу

Sergey
07.10.2017
10:10:12
в разных компонентах нужны разные сервисы
РАЗНЫЕ, то есть с разными типами. разными интерфейсами и т.д.
покажи мне 2 компонента которые используют сервисы но для разных задач

Google

Sergey
07.10.2017
10:11:59
а так же скажи, вкурсе ли ты почему высокая связанность - это не хорошо

Ilshat
07.10.2017
10:12:32
изолированно всегда лучше хренли тут
чкем больше связанность тем труднее переиспользовать
тащить надо всю муть

Sergey
07.10.2017
10:13:02
не только реюзать
хотя в целом можно трактовать как реюз - правки в коде

Ilshat
07.10.2017
10:13:39
конкретно тут эти сервисы и базовые компоненты они идут как ядро

Sergey
07.10.2017
10:13:55
god object типа

Ilshat
07.10.2017
10:14:04
тип того
ну не сильно

Sergey
07.10.2017
10:14:20
полу-божьй объект
иисусъий объект

Ilshat
07.10.2017
10:14:38
изночально было все изолированно
потом пришлось схлопнуть

Sergey
07.10.2017
10:14:50
вот смотри, давай так

Ilshat
07.10.2017
10:14:53
и выделить ядро

Sergey
07.10.2017
10:14:56
вот есть твой этот repositoryHelper
не надо мне объяснять как так исторически сложилось
я сам был на твоем месте)

Google

Sergey
07.10.2017
10:15:27
тоже ядра делал и базовые классы для сервисов писал

Ilshat
07.10.2017
10:15:36
это для подмены бэка
разный бэк

Sergey
07.10.2017
10:15:43

Ilshat
07.10.2017
10:15:54
сейчас сишарп, ява, джанго и немного руби

Sergey
07.10.2017
10:16:14
просто скажи - можешь ли ты что тебе надо от repositoryHelper вынести как отдельный сервис который будут потреблять твои сервисы-репозитории?
типа сервис мэппер, сервис клиента к апихе, сервис для кэша (или лучше даже декоратор
причем тут то на чем ты бэк пилишь

Ilshat
07.10.2017
10:16:55
я против декоратором это миксины

Sergey
07.10.2017
10:17:05

Ilshat
07.10.2017
10:17:20
не явное вшатывание кода в класс
ваще же жесть

Sergey
07.10.2017
10:17:49
у тебя ж DI есть, он все разрулит

Ilshat
07.10.2017
10:18:31

Sergey
07.10.2017
10:18:39

Ilshat
07.10.2017
10:18:45
круд

Sergey
07.10.2017
10:19:00
подробнее
зачем там тогда кэш если "только за круд"?

Google

Sergey
07.10.2017
10:19:18
зачем моки?
(если что - я понимаю зачем, просто хочу от тебя услышать)

Ilshat
07.10.2017
10:19:31
блин трудно описать)
моки это не бэк
моки это для работы фронта

Sergey
07.10.2017
10:19:49
почему бы то что за моки/выдачу результатов не вынести в отдельный сервис что бы иметь возможность в любой момент подменить реализацию?
на твой репозиторий это никак не повлияет

Ilshat
07.10.2017
10:20:04
так и произойдет
пока не выбрал реализацию говорюже

Sergey
07.10.2017
10:20:22
далее. почему у тебя для круда (4 метода всего ж) такой жирный интерфейс?

Ilshat
07.10.2017
10:21:01
урл и квери и пост у всех бэков разный
этот хелпер для разных бэков просто свой и подменяется через диай

Sergey
07.10.2017
10:21:32
this.apiUrl = `${repositoryHelper.apiUrl}/${this.pluralName};`
и так везде?

Ilshat
07.10.2017
10:22:38
нет
бывает отличаются урл
и способ формирования

Sergey
07.10.2017
10:22:51
окей, выносим в параметры
newCache - это что и кто это юзает?

Google

Ilshat
07.10.2017
10:23:14
тут проект маленький ничего не видно
это ваще жесть
но это тоже все будет менятся когда определюсь с смоками
я через диай получаю класс и его еще раз создаю

Sergey
07.10.2017
10:24:23

Ilshat
07.10.2017
10:24:36
mobx, redux

Sergey
07.10.2017
10:24:54
changeStatusItem$ - что это?

Ilshat
07.10.2017
10:25:04
статус бэка сменился
ответа

Sergey
07.10.2017
10:25:16
mobx, redux
в случае с redux ты по идее весь стэйт просто должен был в биндинги компонентов прокидывать, а не с сервисами работать

Ilshat
07.10.2017
10:26:00
короче забей, у меня свой путь и я по нему иду
и этот код не конечный вариант
в самом начлае небыло больших классов и хелперов все через di потом все поменялось

Sergey
07.10.2017
10:28:23
статус бэка сменился
итак, по твоему сервису GrousService я вижу использование следующих методов:
- changeStatusItem$
- save()
- createCache
самый рак - changeStatusItem$ и createCache
с save еще можно смириться

Ilshat
07.10.2017
10:29:20
у вас пагинация есть?
в проекте

Sergey
07.10.2017
10:29:28
есть
у тебя redux есть?
или ресолверы для роутера хотяб