
Daniel
10.04.2018
10:21:51

Александр
10.04.2018
10:21:56
ну давайте на примере

Daniel
10.04.2018
10:22:05
давайте

Александр
10.04.2018
10:22:10
в полной версии сайта есть сущность "пользователь"

Google

Daniel
10.04.2018
10:22:11
пример в студию?

Александр
10.04.2018
10:22:21
в мобильной версии сайта, у пользователя нет поля "пол"
Полная:
[{
id: 1
name: "Вася"
sex: "male"
},
{
id: 2
name: "Петя"
sex: "male"
}]
Мобильная:
[{
id: 1
name: "Вася"
},
{
id: 2
name: "Петя"
}]
это /web/users и /ios/users соотвественно
причем поле пол не только не видно в коллекции, его нельзя менять на мобиле

Subbotin
10.04.2018
10:25:13
Не делай так. Это users_full_info и users_short_info

Александр
10.04.2018
10:25:31
ну вы немного не в теме
мы обсуждаем генерацию сваггера
и как мы тут сэкономим?
валидация разная
еще и бизнес правила могут быть другие

Subbotin
10.04.2018
10:27:05
Ну как минимум сэкономите в 2 засчёт экономии на паре сервер клиент

Google

Александр
10.04.2018
10:27:54
эм...

Daniel
10.04.2018
10:28:13
валидация разная
мы описали два роута и соответствующие входные и выходные структуры. остальное написал кодогенератор

Александр
10.04.2018
10:28:38
а работать мы с этим всеравно будет в двух разных местах да?

Daniel
10.04.2018
10:28:57
а это уж как хотите.

Александр
10.04.2018
10:29:03
потому что коду надо обрабатывать две разных поведение
без вариантов
или "универсальный" код который доверяет генератору и делает что-то
if user.sex != "" { }
что "такой себе" вариант если честно
клиент под это обычно пришется на каком нибудь реакте/object C, и к нам вообще отношение не имеет

Daniel
10.04.2018
10:31:31
коллега, ну вы же не в теме
зачем спорите?

Александр
10.04.2018
10:32:18
ну просто реально интересно, что вы там сэкономите

Alexey
10.04.2018
10:32:33

Daniel
10.04.2018
10:33:31

Александр
10.04.2018
10:34:29
щаз объясню почему меня это волнует, я уже 9 лет в разработке, работал с разными фрейворками и на пыхе в том числе. Знаете чем всегда заканчивается? Приходит странный заказчик с странным поведением которые не вписывается в ограниченную модель и приехали
всегда

Foxcool
10.04.2018
10:34:49
протекающие абстракции - это понятно
но вот этот ли здесь случай - ну хз

Daniel
10.04.2018
10:35:45
всегда
ну - это ваш опыт. он, кстати, травматический. на самом деле всем заказчика всегда нужно одно и то же, просто у вас не было бизнес-аналитика, чтобы он это выявил

Google

Александр
10.04.2018
10:36:28
и когда заказчик приходит, мы не можем сказать "мы не можем засунуть слона в квартиру ибо двери стандартного размера"

Daniel
10.04.2018
10:37:09
ну вот сваггер и стал де-факто стандартом потому, что позволяет влегкую адаптировать размеры дверей

Александр
10.04.2018
10:37:54
опять же в рамках ограниченной модели...
"4-х мерные слоны в N мертном пространстве" с любом случаи сломают

Alexandr
10.04.2018
10:38:31
Добрый день, кто какой либой пользуется для работы с json? Стандартной либы хватает? Не упирались в производительность?
Открыл для себя такой проект, https://github.com/mailru/easyjson , кажется достаточно интересным

Foxcool
10.04.2018
10:38:39
тут даже нет особых потерь, которые по теории игр заставляют вкладываться еще и еще

Daniel
10.04.2018
10:39:39

Alexandr
10.04.2018
10:41:10

Daniel
10.04.2018
10:41:38
это к авторам либы :)

Александр
10.04.2018
10:42:32
если бы они брали стандартные методы, ваш код бы хрюкнулся :)

Александр
10.04.2018
10:42:59
а так вы можете еще поколдовать

Vasily Romanov
10.04.2018
10:44:14

Александр
10.04.2018
10:44:44
насколько я понял

Alexandr
10.04.2018
10:45:29
насколько я понял
вопрос у меня был зачем отдельные функции, не подвязанные к структуре

Александр
10.04.2018
10:47:48
вы про это?
func (v *empty) UnmarshalEasyJSON(l *jlexer.Lexer) {
easyjsonC5a4559bDecodeGithubComChromedpCdproto(l, v)
}
func easyjsonC5a4559bDecodeGithubComChromedpCdproto1(in *jlexer.Lexer, out *Message) {
....
}
пример с интернета :)

Google

Alexandr
10.04.2018
10:48:09

Vasily Romanov
10.04.2018
10:48:38
так они привязаны к структуре

Александр
10.04.2018
10:51:29
ага
ну там генерируемы код же
в двух местах юзается
что бы не дублировать
// UnmarshalJSON supports json.Unmarshaler interface
func (v *empty) UnmarshalJSON(data []byte) error {
r := jlexer.Lexer{Data: data}
easyjsonC5a4559bDecodeGithubComChromedpCdproto(&r, v)
return r.Error()
}
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *empty) UnmarshalEasyJSON(l *jlexer.Lexer) {
easyjsonC5a4559bDecodeGithubComChromedpCdproto(l, v)
}
func easyjsonC5a4559bDecodeGithubComChromedpCdproto1(in *jlexer.Lexer, out *Message) {
}

Alexandr
10.04.2018
10:52:23

Admin
ERROR: S client not available

Александр
10.04.2018
10:52:56
у нас все что крякает как утка - утка

Daniel
10.04.2018
10:53:26
утиная типизация - это не это

Vasily Romanov
10.04.2018
10:54:22
err = user.UnmarshalJSON(scanner.Bytes())до easyjson в вашем коде такого не будет
будет
err = json.Unmarshal(scanner.Bytes(), &user)
и чтобы это не менять нужен UnmarshalJSON

Andrey
10.04.2018
10:57:06
На ycombinator увидел framework “evio” кто то использует ?
Всем привет)

Alexandr
10.04.2018
11:00:24

Alexander
10.04.2018
11:26:23
ребята, тупой вопрос, веб-сервер на го умеет из коробки в многопоточность? Я ищу инструмент для создания сервера, в котором каждый клиент это отдельный тред и треды все нагружены и работают параллельно с друг другом.

Daniel
10.04.2018
11:26:37
умеет

Alexander
10.04.2018
11:26:55
супер, спасибо, пошёл го учить

Kirill
10.04.2018
11:27:21
там же хэндлеры вроде в горутинах запускаются? правда в исходниках так и не нашел где там горутина стартует
если кто в теме, поясните этот момент плз

Alexey
10.04.2018
11:27:23

Google

Daniel
10.04.2018
11:27:51

/dev/null
10.04.2018
11:32:37
Есть отцы которые в Делфи и фастрепорт могут?

yuriy
10.04.2018
11:33:06

Olzhas
10.04.2018
11:33:08

yuriy
10.04.2018
11:33:14
на1м даже

/dev/null
10.04.2018
11:34:13
у нас тут в Медицине есть ПО., которое на нем написано и проблема с печатью… похоже проблема именно в фастрепорте… а Делфи программисты вообще где обитают., я так понимаю что не вариант найти канал в телеграмме

Alexander
10.04.2018
11:35:08
я лет 10 назад был очень крутой специалист по делфи-7, щас вообще нихрена не помню

Alexander
10.04.2018
11:46:28
Тоже генерит
Авторизацию
и тд

Foxcool
10.04.2018
11:48:52
насколько я сейчас вижу, тут есть неперезаписываемый генератором файл config_projectName.go. В нем указываются параметры всякие. Тот же логер поменять и т.п. Вероятно через него же и можно более глубокие вещи перетрясти
а так, все, что в свагерфайле указывается, то оно реализует с него
например ууказываешь, поддерживать ли http(s)

ljoshalata
10.04.2018
12:45:24
День добрый) не хочу спамить и вообще, нарушать уютненькую атмосферку, но хотел бы узнать - как тут с вакансиями, постить можно\нужно? или есть отдельные каналы

John
10.04.2018
12:46:11

ljoshalata
10.04.2018
12:46:39
благодарю ?

Roman
10.04.2018
13:25:25

Alexander
10.04.2018
13:25:39
?