@proGO

Страница 1671 из 1674
Maksim
30.08.2018
12:38:49
потому, что автор - это автор, пользователь - это пользователь они могут совпадать, а могут не совпадать
иди делами займись. это реально бесполезно. Тут горутины и микросервисы с mvc

Marperia
30.08.2018
12:39:07
вот тебе и все разделение контекстов
Дайте я про это почитаю. Самое главное — зачем оно надо.

snip
30.08.2018
12:39:10
Всегда есть фанатичные евангелисты чудо методологии, спорить с ними нет смысла, поэтому когда они уходят работать это хорошо

Google
Bohdan
30.08.2018
12:39:12
тебе глубоко плевать на то, какой пользователь написал книгу или статью, если твой контекст оперирует понятием "автор"

Aleksey
30.08.2018
12:39:20
Что в обсуждаемой теме сложно? 50% "сложности" создание оптимальной продуманной структуры базы данных, все остальное уходит на обвес к ней

Bohdan
30.08.2018
12:39:46
Дайте я про это почитаю. Самое главное — зачем оно надо.
Вернона почитать можно, там первые несколько разделов об этом

Maksim
30.08.2018
12:40:02
Дайте я про это почитаю. Самое главное — зачем оно надо.
отчасти для того, чтобы разные люди могли работать на проекте и не пересекаться. С любовью, ваш к.о. это как причина, за которую вы изначально вещали :)

Всегда есть фанатичные евангелисты чудо методологии, спорить с ними нет смысла, поэтому когда они уходят работать это хорошо
не считаю себя фанатичным евангелистом от слова совсем :) но в противовес этому не идёт банальное невежество.

Marperia
30.08.2018
12:42:08
Нет, ну а что мне мешает сделать id автора = id пользователя, и при этом люди всё равно не будут пересекаться. Меня больше интересует, как это будет выглядеть на уровне БД: отдельная таблица с авторами, что ли?

snip
30.08.2018
12:42:27
не считаю себя фанатичным евангелистом от слова совсем :) но в противовес этому не идёт банальное невежество.
Однако общаешься именно так, как знаток единственно верного подхода среди недоучек

Marperia
30.08.2018
12:43:20
Вернона почитать можно, там первые несколько разделов об этом
Вон Вернон «Реализация методов предметно-ориентированного проектирования»?

Maksim
30.08.2018
12:43:25
Marperia
30.08.2018
12:43:59
Ну я про DDD доклад на конфе смотрел и так и не понял, отличается ли оно вообще чем-то.

Bohdan
30.08.2018
12:44:10
более того, чтобы вникнуть в DDD - одного доклада не хватит

Google
Maksim
30.08.2018
12:44:26
Bohdan
30.08.2018
12:44:37
а контексты относятся в том числе к общению с бизнесом

более того, конфликты между разработчиками на проекте возникают из-за того, что бизнес захотел изменений

и вот уже разделение на контексты определяет, насколько сложно будет внести эти изменения и насколько вероятны конфликты

Marperia
30.08.2018
12:45:44
Ну, там точно такие же сущности же (а доклад ещё и на Java-конференции был): Статья, Автор, их методы...

Там разбирались какие-то отличия, конечно, но...

Maksim
30.08.2018
12:46:18
Ну, там точно такие же сущности же (а доклад ещё и на Java-конференции был): Статья, Автор, их методы...
это следствие, а не причина. Объяснить ddd на примере банально не получится. Ровно как и построить идеальный мир по всем канонам

snip
30.08.2018
12:49:08
не единственно верного, а ещё одного. Так будет точнее
Точнее будет одного из многих работающих, но стиль общения у тебя странный да. Еще есть такая мысль что если не можешь простыми словами что то объяснить так чтобы другие поняли, то скорее всего от того что сам недостаточно хорошо понял. Я знаю о чем ты, но по вопросам и твоим ответам на них не видно чтобы ты пытался хоть что то пояснить Так что лучшее решение пойти поработать

Maksim
30.08.2018
12:56:09
Ладно, тогда ответьте на простой вопрос: почему id автора должно отличаться от id пользователя?
само значение может быть одинаково. Но это абсолютно разные вещи.

если удобно, представь, что это разные типы данных.

Aleksandr
30.08.2018
12:56:26
это разные контексты. в однмо контексте автор, в другом юзер. разные сущности.

Marperia
30.08.2018
12:58:50
Окей, ладно, есть отдельно автор и отдельно юзеры. Тогда выборка всех статей автора будет происходить исключительно средствами модуля со статьями, логично же. А выше почему-то заявляли, что для этого нужно задействовать модуль с пользователями.

Maksim
30.08.2018
12:59:19
нет, не модулем статей)

Marperia
30.08.2018
12:59:20
Я не поленился и нашёл:

ога. а что если я захочу получить все статьи пользователя. я куда пойду?

в новости, или к пользователям?)

Google
Marperia
30.08.2018
12:59:20
или и к тем, и к другим?)

В статьи, конечно.

Dorian
30.08.2018
12:59:39
Так выборка всех статей автора впринципе в любом отношении должна происходить в модуле статей. Для этого и есть фильтры

Marperia
30.08.2018
12:59:59
Maksim
30.08.2018
13:00:07
Ну а где тогда?
поищи ещё выше

Александр
30.08.2018
13:17:26
интересно насколько зашкварный вариант кормить не зависимости, а экземпляр приложения, которое может выдать зависимость через func NewDAO(app *Application) { db := app.GET("componentName") ... }

Илья
30.08.2018
13:18:18
такой же, падать в рантайме ВС не падать в рантайме

Александр
30.08.2018
13:19:14
просто запарило каждый раз менять эти вызовы

надо очередной трекер на все сущности - поехали блин править

Илья
30.08.2018
13:20:16
зачем апп таскать везде? принимать нужно то, что нужно компоненту? или у вас связность большая?

Александр
30.08.2018
13:20:34
я уже обьяснил немного выше

что у меня сейчас "по старинке"

Илья
30.08.2018
13:20:54
я уже обьяснил немного выше
можно передать в dao сразу db

Александр
30.08.2018
13:21:01
но требования возникают странные, аля "добавить трекер во все dao"

и понеслось...

сначало прокинем зависимость в handlers

от туда прокидываем уже в dao

эти "каскады" править утомительно

а если сделать через приложение, получается я правлю "на концах" и все оки

Google
Илья
30.08.2018
13:22:52
а если опечатка?

а если кто-то переименует на одном из концов?

Александр
30.08.2018
13:23:42
ну все "алиасы" который беруться в GET они регистирируются в main

если кто-то полез с непраильным именем - паника

Илья
30.08.2018
13:24:24
это все странно звучит, похоже на плохой дизайн и связность компонент

Александр
30.08.2018
13:26:34
в main такое выходит: app := application.NewApplication(logger, appConfig) app.RegisterComponent("scheduler", http.NewSchedulerComponent(app)) app.RegisterComponent("db", db.NewComponent(app)) app.RegisterComponent("webserver", http.NewWebServerComponent(app)) err := app.Preload("db", "scheduler", "webserver") if err != nil { log.Fatal(err) } var wg sync.WaitGroup go app.WithWaitGroup(&wg).Run("webserver") wg.Wait()

Александр
30.08.2018
13:27:26
ну возможно и зашкварился

думал что-то типо DI cделать

Aleksandr
30.08.2018
13:28:17
ну ты di и сделал, только неправильно

Александр
30.08.2018
13:28:48
типо надо было через рефлект парсить параметры? ?

и подсовывать из "реестра"

Aleksandr
30.08.2018
13:29:27
слушай, ну сколько можно об этом говорить?)

вот именно с тобой это обсуждали пяток раз

Lanegan
30.08.2018
13:29:41
di в го это вообще спорный момент ("автоматизированный")

Aleksandr
30.08.2018
13:30:04
di - это инъекция зависимостей. Зачем тут рефлект?

Александр
30.08.2018
13:31:05
di - это инъекция зависимостей. Зачем тут рефлект?
ну есть фабрика условно func NewComponent(db *sql.Conn, anyLib *lib.Conn)

Psh
30.08.2018
13:31:16
Кто подскажет, как в build mod игнорировать локальные пакеты?

Александр
30.08.2018
13:31:29
мы же из "униварсального" вызовальщика не знаем какие там параметры и что надо

поэтому напрашивается рефлектом проехаться

Google
Александр
30.08.2018
13:31:46
и потом уже через рефлект же вызвать

Psh
30.08.2018
13:31:51
А то, cannot find module for path ...

Александр
30.08.2018
13:32:14
мне кажется все DI так работают

Aleksandr
30.08.2018
13:32:55
мне кажется все DI так работают
а, погодь. я не увидел что это фабрика. Тогда да. В фабрику передаешь контейнер, отдаешь инстанс

Александр
30.08.2018
13:33:48
в main идет регистрация компонентов, потом app тягается в аргументе

считай это bulder

Aleksandr
30.08.2018
13:34:18
Александр
30.08.2018
13:34:49
конечно это попахивает

но я хз как еще сделать красиво

попахивает именно после вопросов "а для тестирования мы тоже будем контейнер подсовывать?" "а как же ошибки на уровне компиляции?"

Александр
30.08.2018
13:39:42
ну у меня так и было

вернее даже методы

а не свойство

ибо readonly типо

Илья
30.08.2018
13:44:59
так зачем GET?

Александр
30.08.2018
13:46:33
хотел более гибкую конструкцию

хотя в принципе можно и вернуть свойства

там фактически когда идет регистрация

вызываются у компонента всякие init

потом load при предзагрузке

Страница 1671 из 1674