
Maksim
30.08.2018
12:38:49

Bohdan
30.08.2018
12:39:01

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

Bohdan
30.08.2018
12:43:51

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

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

Maksim
30.08.2018
12:49:49
объяснить всё это простыми словами могут только продавцы mvc, scrum, ddd и прочих хайповых денежных конференций.
только к объяснениям это не относится и цель преследует иную :)

Marperia
30.08.2018
12:55:38

Aleksandr
30.08.2018
12:55:56

Maksim
30.08.2018
12:56:09
если удобно, представь, что это разные типы данных.

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

Marperia
30.08.2018
13:01:54

Александр
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

Александр
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()

Aleksandr
30.08.2018
13:27:04

Александр
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

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

Александр
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:37:43

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

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

Александр
30.08.2018
13:46:33
хотел более гибкую конструкцию
хотя в принципе можно и вернуть свойства
там фактически когда идет регистрация
вызываются у компонента всякие init
потом load при предзагрузке