Oleg
Хотя первая и вторая версия на Go...
Oleg
Anton 🇺🇦
Oleg
Slava
кажется я видел такое для vim-go
Slava
как минимум таким я пользовался для генерации табличек для тестов
Slava
https://docs.dgraph.io/query-language/
Pawel
Slava
Anonymous
Что нужно делать, если использование собственного типа выдает
invalid operation: ... (type ... does not support indexing)
?
Anonymous
Обращаюсь вот так - data_decoded["Result"]
Сам тип
type tgRSP struct {
Ok bool `json:"ok"`
Result []struct {
UpdateID int `json:"update_id"`
Message struct {
MessageID int `json:"message_id"`
From struct {
ID int `json:"id"`
FirstName string `json:"first_name"`
Username string `json:"username"`
} `json:"from"`
Chat struct {
ID int `json:"id"`
FirstName string `json:"first_name"`
Username string `json:"username"`
Type string `json:"type"`
} `json:"chat"`
Date int `json:"date"`
Text string `json:"text"`
Entities []struct {
Type string `json:"type"`
Offset int `json:"offset"`
Length int `json:"length"`
} `json:"entities"`
} `json:"message"`
} `json:"result"`
}
Aleksandr
@se4rch3r
data_decoded["Result"]
так обращаются к элементу мапы. у тебя структура
Anonymous
Интерфейс ставил, такая же фигня
Aleksandr
Anonymous
Проблема блин прям какая-то. В питоне просто json.loads, а здесь столько йбли
Антон
так прикольно смотреть претензии людей, пришедших в статически типизированный язык с динамически типизированных. Я сам, в основном, на питоне программирую, так что ничего против этого не имею. Но надо же понимать различие языков, подходов, ограничений и гарантий, когда начинаешь использовать _принципиально_ другой яп
Oleg
Slava
engelbart
Эту боль я понимаю
engelbart
Сторонний сервис генерит мне сотни непредсказуемых json
Антон
Anonymous
Особо кардинальное мне не нужно
Антон
asyncio не кардинальное. Запросы можно принимать асинхронно в одном потоке, а долгую обработку выносить в threadpoolexecutor/processpoolexecutor, интеграция искоробки. Причём даже адекватная
Anonymous
Мне и multiprocessing.dummy хватает)
Anonymous
Запахало блин. Удивительно
Anonymous
Куда применяете гошку?
Anonymous
Антон
Anonymous
Ну, вам тоже) Тут чего только нет
Антон
у меня в проекте исторически сложилось так, что там, где нужна более менее производительность используется nodejs. Я рассматриваю го как замену для неё. Но сначала профилирование и выработка требований, возможно там только си/раст подойдёт. Ну и да, т.к. у нас json rpc, интерфейсы между бакендами строго определены уже сейчас, соотв можно написать структуры, которые будут строго соответствовать входящим запросам, поэтому таких проблем нету
Michael
nodejs и производительность - забавное сочитание
Антон
да, я понимаю. Видимо было выбрано изза jit компиляции и "удобства"
Egor
Антон
Питон
Антон
Обычно asyncio
hex
Axm
кто-нибудь работал с logrus? судя по описанию на гитхабе, он умеет делать вывод сразу в несколько мест. но я никак не найду способ это сделать, кроме как писать обертку с двумя логгерами. и сразу еще по нему же вопрос. в чем разница между
var log = logrus.New()
return log
и
return log.FieldLogger
engelbart
Смотрите, у меня есть задача, простенькая. Берем базу sqlite там 10ток таблоиц, общий объем 400метров.
Мы её перетряхаем, ну т.е. считываем в память отдельные объекты дозагружаем там из таблиц вложенные типа данные, формируем json и сохраняем в boltd.
Я думал оно за минуту отработает. написал по тупому в один поток.
Но что то оно там трудится уже через чур долго.
Как бы вы стали искать узкое место, подскажите
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
prof https://blog.golang.org/profiling-go-programs
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
CPU Prof
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Или вообще perf в linux
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
И по графу смотреть
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
а дальше, если проблема в cpu - prof cpu profile
engelbart
Спасибо
Quiet
подскажите хороший веб фреймворк на go
Quiet
Фреймворк нужен для работы а не для фана)
Constantine️
😂
Constantine️
а есть разница?
Constantine️
фан или работа
Constantine️
работа разве не фан?
Kirill
Kirill
Просто быстрее и эффективнее него только чистый fasthttp
Kirill
Удобство — субъективная штука, но людям или нравится, или они пишут мне и я делаю, чтобы нравилось
Petr
Кто как организует структуру кода в go?)
Kirill
Quiet
а про gin что вы скажите?
Quiet
а beeGo?
Constantine️
не надо
Kirill
Quiet
почему?
engelbart
Дак а sqlite то в один поток всегда получается, хоть чо тут делай?
Quiet
Kirill
Надо будет туда добавить gramework
Quiet
Kirill
А закинь ссылку, я её забыл
Quiet
какую?
Kirill
Quiet
https://github.com/gin-gonic/gin
Kirill
https://github.com/gin-gonic/go-http-routing-benchmark точнее эта)
Quiet
видел на гитхабе в каком-то бенчмарке фреймворков были исходники бенчмарка