
Aleksandr
26.09.2018
12:35:14
при таком подходе разраб не видел новый код)

Dmitri
26.09.2018
12:35:43
Свят-свят
При этом он его и не запускал
Вообще, мне кажется, что такие кейсы - они уже не в компетенции гошного компилятора

Google

Roman
26.09.2018
12:37:11

Dmitri
26.09.2018
12:37:40
Если оно реально требует контроля, то уж билд-систему пилить всяко надо

Aleksandr
26.09.2018
12:37:41

Dmitri
26.09.2018
12:37:54
Ага, читал
Там было про "сгенеренный код кодом не считается, и держать его в Гите не надо"
Вот такая позиция, вроде, была

Aleksandr
26.09.2018
12:39:57

Roman
26.09.2018
12:40:17

Алексей
26.09.2018
12:40:51
Ну не знаю какая там у других людей была позиция, но у меня была позиция - кодогенерация обязательно должна запускаться при компиляции (точнее перед), чтобы полностью исключить ситуацию когда человек забыл запустить кодогенерацию.

Roman
26.09.2018
12:41:20

Алексей
26.09.2018
12:41:25
А ci/не ci, коммитить/не коммитить - это уже другое дело.

Google

Roman
26.09.2018
12:46:20

Алексей
26.09.2018
12:47:48
ну для автокомплита уж руками, или может ide сможет

Roman
26.09.2018
12:50:54

Алексей
26.09.2018
12:51:04
вот да

Roman
26.09.2018
12:51:32
но, это не отменяет нужду генерации при сборке, просто она пройдёт из кеша

Алексей
26.09.2018
12:51:50
точнее можно при сохранении запускать каждый раз генерацию
если есть кеширование, то будет быстро

Roman
26.09.2018
12:55:44
и при сохранении исходника и при сборке

snip
26.09.2018
13:33:51

Алексей
26.09.2018
13:34:42
и при сохранении исходника и при сборке
вот это вот

snip
26.09.2018
13:35:04
Какого исходника?
Любого файла? Файла го? Джисон?

Алексей
26.09.2018
13:36:28
Я даже не знаю как на это реагировать
ну ведь можно же наверное прочитать сообщения выше и понять о чём идёт речь

snip
26.09.2018
13:37:49
Я почитал, там не сказано, там просто говорится что при изменении исходника
Схема на основе которой генерится коды может быть в JSON, xml, yaml, а может в го коде
Вот я и спрашиваю при изменении чего должна запускаться генерация

Roman
26.09.2018
13:46:15

Google

snip
26.09.2018
13:47:25

Roman
26.09.2018
13:47:37
go run make.go -g
оптимизировать можно дальше, конечно

snip
26.09.2018
13:48:40
А зачем? Почему просто не запустить генерацию, если мейк файл все равно руками запускаем?

Roman
26.09.2018
13:49:20
в VSC есть такие полезные вещи как workspaces, где можно прописать выполнение скрипта на разные файлы: generated_api.json -> go run make.go -g generated_api.json

snip
26.09.2018
13:51:34
Автоматизация ради автоматизации без реальной пользы и это я не про vsc

Roman
26.09.2018
13:57:15

snip
26.09.2018
13:58:40

Roman
26.09.2018
14:00:37

Vadim
26.09.2018
14:00:59
Watch "JavaScript: Understanding the Weird Parts - The First 3.5 Hours" on YouTube
https://youtu.be/Bv_5Zv5c-Ts
"The first 3.5 hours"

snip
26.09.2018
14:01:58

Roman
26.09.2018
14:02:24

hamper ?
26.09.2018
14:25:04
А почему может не работать ldflags? Делаю в пакете system переменную var Branch string, собираю через go build -ldflags "-X system.Branch=master" и при запуске в переменной пустая строка все равно.

Александр
26.09.2018
14:27:34
эм
насколько я помню это работает только для пакета main
но могу нагло врать

Илья
26.09.2018
14:28:09
нагло

Google

Илья
26.09.2018
14:28:17
это работает везде

John
26.09.2018
14:28:44

hamper ?
26.09.2018
14:29:37
Вот у меня в main работает а в отдельном пакете почему-то нет.

Илья
26.09.2018
14:32:53

hamper ?
26.09.2018
14:33:32
И правда, так работает.

Александр
26.09.2018
15:36:01
что-то попробывал с DI
ну "такое"

Admin
ERROR: S client not available

Александр
26.09.2018
15:36:12
как мокать такие хедлеры не понятно
придется мокать весь "супер обьект"

Aleksandr
26.09.2018
15:42:22
покажи свой хэндлер

Александр
26.09.2018
15:43:36
type UsersHandler struct {
app *application.MyApplication
}
func (h * UsersHandler) Index(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
...
h.app.GetResponce().EmptySuccess(w)
}
ну что-то в этом стиле
самый минимальный показал
ну и конструктор конечно:
func NewClinicHandler(app *application.MyApplication) *UsersHandler {
return &UsersHandler{
app: app,
}
}

Aleksandr
26.09.2018
15:44:55
хэндлер у тебя зависит от приложения? странно
обычно он зависит например от db-слоя, сервисов

Александр
26.09.2018
15:45:19
у меня есть пакет application
в нем в фабрике - NewApplication стартуют все подключения, все что при инициализации делается

Google

Aleksandr
26.09.2018
15:46:07
так является ли application зависимостью для хэндлера?

Александр
26.09.2018
15:46:08
они свои "коннекты" кидают в стуктуру и эта структура уже начинает везде фигурировать
на самом деле там есть абстракция webserver, потом уже от нее идет прокидывания в хедлер того же самого
я пытался избавиться от нудной правки зависимостей каждый раз
это такое аналог DI

Aleksandr
26.09.2018
15:48:16
ок. я отвечу за тебя. не является. прокидывать dic - это известный антипаттерн. если ты прокидываешь dic, то у тебя не di, а его имитация. Потому и протестить не сможешь нормально

Александр
26.09.2018
15:48:55
а что есть dic?

Aleksandr
26.09.2018
15:49:02
di container
контейнер твоих зависимостей

Александр
26.09.2018
15:49:29
так
а как тогда правильно? если мы хотим таки DI

Aleksandr
26.09.2018
15:50:53
прокидывать не dic, а конкретные зависимости

Александр
26.09.2018
15:51:13
а зачем нам тогда DI?

Aleksandr
26.09.2018
15:51:39

Александр
26.09.2018
15:51:52
да читал
я думал что в этом и заключается
что мы контейнер лихо пихаем везде и забывает про зависимости

Jentry
26.09.2018
15:52:26

Aleksandr
26.09.2018
15:53:16