@proGO

Страница 1358 из 1674
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
if user.sex != "" { }
В 2018 году sex должен быть enum ^__^

Daniel
10.04.2018
10:33:31
ну просто реально интересно, что вы там сэкономите
отвечено уже 5 раз. просто вы не понимаете ответа. потому, что не имели дела с разработкой таких приложений

Александр
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
и когда заказчик приходит, мы не можем сказать "мы не можем засунуть слона в квартиру ибо двери стандартного размера"
так а в чем проблема: у тебя код генерится за минуту. Если это решение не подходит по каким-то магическим причинам, то ты ничего и не потерял. Накрайняк удалешь сгенерированные папки и делаешь по-старинке руками

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

Alexandr
10.04.2018
10:41:10
в одном случае уперся, и именно easyjson поднял производительность вдвое.
мне только одно непонятно, зачем генерируются функции MarshalEasyJSON и UnmarshalEasyJSON, если по факту можно юзать MarshalJSON и UnmarshalJSON как метод структуры

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
мне только одно непонятно, зачем генерируются функции MarshalEasyJSON и UnmarshalEasyJSON, если по факту можно юзать MarshalJSON и UnmarshalJSON как метод структуры
стандартные методы нужны для того чтобы соответствовать интерфейсу машрашела и обеспечивать drop-in подмену. т.е. вы просто делает json.Marshal и оно автоматом там заменяется со стандартного на easyjson собсвтенные методы - чтобы не связываться даже со стандартным маршалером

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
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
стандартные методы нужны для того чтобы соответствовать интерфейсу машрашела и обеспечивать drop-in подмену. т.е. вы просто делает json.Marshal и оно автоматом там заменяется со стандартного на easyjson собсвтенные методы - чтобы не связываться даже со стандартным маршалером
хм, не совсем понятно где там подмена, это же просто реализация метода структуры то есть я могу сделать так user := User{} err = user.UnmarshalJSON(scanner.Bytes()) а могу так user := User{} user.UnmarshalEasyJSON(jlexer.Lexer{Data: scanner.Bytes()})

Admin
ERROR: S client not available

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” кто то использует ?

Всем привет)

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
там же хэндлеры вроде в горутинах запускаются? правда в исходниках так и не нашел где там горутина стартует если кто в теме, поясните этот момент плз

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

yuriy
10.04.2018
11:33:06
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, щас вообще нихрена не помню

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

а так, все, что в свагерфайле указывается, то оно реализует с него

например ууказываешь, поддерживать ли http(s)

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

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

Alexander
10.04.2018
13:25:39
?

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