Fastumkruk
попробовал уже 9 прокси адресов
Могли 9 подряд попасться нерабочие
Fastumkruk
Через гуй вчера вписывал системный прокси без авторизации, заработало. Но не все пакеты тянет. До некоторых пакетов не достучаться.
maxnemoy
Господа, изучаю го, использую echo & RethinkDB, есть вот такой кусок кода: https://pastebin.com/wQJggQQc в нем я добавляю новое событие в календарь пользователя, делаю это так: _, err := r.Table(settings.DBCalendar).Get(uid). Update(map[string]interface{}{"events": r.Row.Field("events"). Append(&event)}). RunWrite(db.Connect) нормальна ли такая реализация? или толковые разработчики могут дать клавиатурой по лицу за то что интерфейс не вынесен отдельно? как его вынести, или проделать это более красиво я сообразить не могу уже третий день(
Pawel
такие здоровые куски кода нужно в playground-е размещать или в gist
Илья
имхо, стоит сделать интерфейс, который умеет делать AddEvent - и передавать в handler не коннект, а интерфейс, а запись в базу в текущем виде убрать в реализацию, тогда этот handler можно будет тестировать
Илья
+ растащить входящие параметры и db model
Илья
+ странно, что в слуае ошибок вы не останавливаете обработку запроса, а пишете в лог и продолжаете
Илья
:O
maxnemoy
+ странно, что в слуае ошибок вы не останавливаете обработку запроса, а пишете в лог и продолжаете
так учусь же, а не боевое приложение делаю, с этим мне понятно, если я вынесу добавление евента в отдельный интерфейс, я что то не могу понять, где я в этом интерфесе возьму коннект? (возможно вопрос тупой, но я пока что-то этого понять не могу)
Илья
https://pastebin.com/HaX8jirw
maxnemoy
из вопроса абсолютно не понятно что за интерфейс и зачем его выносить. Сама по себе постановка "толковые разработчики могут дать клавиатурой по лицу за то что интерфейс не вынесен отдельно" - это фигня какая-то
map[string]interface{}{"events": r.Row.Field("events") я думал что эту мапу нужно вынести отдельно для повторного использования, да и описывать каждый рас именно так, как то не очень
maxnemoy
я бы сделал как-то так
хорошо, спасибо, попробую
maxnemoy
в этом месте я не вижу проблем, точнее вижу проблемы в дизайне gorethink, но они так в своих доках пишут
а я думал что прочто я тупой, и не могу сообразить как это сделать нормально, ибо в питон версии драйвера, все просто и лаконично
Илья
ну, судя по этому коду, драйвер питонисты и написали
maxnemoy
ну, судя по этому коду, драйвер питонисты и написали
ну его официальная дока советует, да и все что нашел на гите, это форки это драйвера
Pawel
map[string]interface{}{"events": r.Row.Field("events") я думал что эту мапу нужно вынести отдельно для повторного использования, да и описывать каждый рас именно так, как то не очень
Разумеется нужно, только не мапу, а её тип. Если вы обучаетесь, то использовать какой-то там непонятный kv db, написанный питонистами вместе с драйвером - не полезно, а вредно. Для обучения используйте boltdb, kv на чистом Го
Andrew
Кто-то роботал с постгрес бд?
Alexander
задавая конкретный вопрос, больше шансов получить ответ
Artem
http://neprivet.ru
Tigran
Никто не роботал, но многие работали
Aleksandr
да
maxnemoy
да
спасибо, понял
Anton
https://blog.golang.org/go-brand
Alexander
лучше бы дженерики завезли
Anonymous
коллеги, где можно почитать про кодогенерацию вменяемо?
iči
По сабжу ничего не скажу
Anonymous
Кодогонерация игрушка дьявола
как раз мне подойдёт поиграться.
Anonymous
как эти мутные шаблоны писать, чёт не въеду
Илья
почему мутные
Anonymous
они для меня не ясны.
Anonymous
муть какая-то
Aleksandr
кодогенерация - это принцип. а ты, кажется, о чем-то кокнретном говоришь
Илья
ну, сложная часть это разбор исходник ast, сбор комментов, анотаций, а шаблон можно хоть template ом, хоть чем описывать
Илья
https://zupzup.org/go-ast-traversal/
Илья
почитать про ast можно тут
Илья
примеров можно брать массу, хот tools cmd stringer, хоть easyjson, и читать код
Илья
и тут уже рестайлинг
Илья
:(
Заур
Хааа, ща
Заур
https://interpreterbook.com/
Заур
Аа, не в тему, пардон
Anonymous
кодогенерация - это принцип. а ты, кажется, о чем-то кокнретном говоришь
для меня пока не очень понятен видимо сам принцип. Например, зачем нужна генерация типа jsonenums если например для структуры можно использовать из коробки encoding/json. Сгенерённый файл всё равно же использует внутри у себя этот json пакет
Илья
эмм, как напишете, так и будет
Vasily
кодогенерация нужна для выноса вычислений из рантайма в компайл-тайм
Vasily
тот же json стандартный внутри себя активно использует рефлексию
Vasily
получаются накладные расходы на то чтоды пройтись по структуре, доп переменные, прочитать теги и прочее
Vasily
если сгенерить код по этому - получится на порядок быстрее
Anonymous
тот же json стандартный внутри себя активно использует рефлексию
в том то и вопрос. Вот например пакет github.com/campoy/jsonenums результат его генерации - код, который использует родной encoding/json
Great
стенания на тему смены лого уже были? :)
Илья
стенания на тему смены лого уже были? :)
я накинул, но что-то не разгорелось
Daniel
В слаке, чуть-чуть
ainu
https://blog.golang.org/go-brand
Плохо, в айдентике должно быть golang (ибо go хрен загуглишь)
Илья
в том то и вопрос. Вот например пакет github.com/campoy/jsonenums результат его генерации - код, который использует родной encoding/json
в этом примере, взяли просто stringer и, на коленке, прикрутили к нему json, это же просто упраженине
Vasily
посмотрите на https://github.com/mailru/easyjson - он уже генерит полный код для упаковки-распаковки
Anonymous
кодогенерация нужна для выноса вычислений из рантайма в компайл-тайм
Если это понимать в рамках сравнения с рефлексией, то ответ понятен.
Vasily
или protobuf + grpc
Vasily
который по схеме генерирует структуры, интерфейс сервера и клиента
Антон
Блин, лого чата поменяли
Vasily
или swagger, который генерит таким же образом доку, клиента и сервера
Aleksandr
Плохо, в айдентике должно быть golang (ибо go хрен загуглишь)
наоборот же позиционируется именно Go, с указанием, что golang используется только для поиска
Илья
или swagger, который генерит таким же образом доку, клиента и сервера
swagger, все же не совсем про то, скорее просто инструмент для ленивых
Vasily
причем как grpc, так и swagger, могут генерить код к разным языкам, не только го это очень полезно, когда сервер, например на go, а клиент - на мобилке
Илья
или swagger, который генерит таким же образом доку, клиента и сервера
если вы платформу как-то вытащите в opensource - и еще автодоку прикрутите 🙂 то будет круче
Alan
Ребят, а пользовался кто-нибудь шаблонизатором Jet?
Alan
Есть мелкий вопрос
Vasily
если вы платформу как-то вытащите в opensource - и еще автодоку прикрутите 🙂 то будет круче
нет планов пока если открывать в опен-сорс - значит брать на себя обязанности по поддержке и реализации запросов коммюнити
Илья
ага, там с гибкостью сложно
Vasily
а просто выкидывать какой-то код - нафиг надо
🏁Александр
кто поставил этот ужас на аватарку?
Stanislav