@oop_ru

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

Sergey
07.10.2017
10:08:28
тоесть для каждой модели есть набор компонетов для круд операций
по порядку. Компоненты юзают сервисы. N компонентов юзают M сервисов.

так?

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 вынести как отдельный сервис который будут потреблять твои сервисы-репозитории?

типа сервис мэппер, сервис клиента к апихе, сервис для кэша (или лучше даже декоратор

сейчас сишарп, ява, джанго и немного руби
общаешься ты ж по http. у тебя и так абстракция есть)

причем тут то на чем ты бэк пилишь

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

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

ваще же жесть

Sergey
07.10.2017
10:17:49
не явное вшатывание кода в класс
явнее некуда, что ты там неявного увидал. Я не про @decorator а про обычную декорацию двух классов имеющих один и тот же тип

у тебя ж 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 есть?

или ресолверы для роутера хотяб

Страница 354 из 785