dev_sheep
Блин, Николай (надеюсь, правильно). Я блин придумал аналогию пустому интерфейсу пустому - это Object из Java... Почти
Aleksandr
Mikalai
dev_sheep
Кстати, ребят. Если все-таки такой конченный массив попадается, то если делать все по-хорошему, через интерфейсы, единственный вариант все получать через type?
dev_sheep
или есть что-то удобнее
engelbart
парсить нетипизированое в типизированый язык есмь боль
engelbart
но господь наш терпел и нам повелел
dev_sheep
:D я понял, лучше закостылю и уберу циферку :DD
dev_sheep
надеюсь, что больше такого ужаса не встречу, ибо просто обожаю эти го-структуры в виде жсончика
dev_sheep
точнее жсончик в виде структур
dev_sheep
это просто нереально доставляет
dev_sheep
(после Java, конечно :D Я все оттуда смотрю. Там мои полотнища кода превратились в теперешние 80 строк)
dev_sheep
Правда это если на стандартной либе. Хотя я попрошу, здесь тоже все на стандартной либе
Aleksandr
Кто может отзыв по веб фреймворкам оставить?
Aleksandr
что будет, есть в тренде
Мерль
Aleksandr
webframework
Мерль
Веб фреймворк - понятие растяжимое
Aleksandr
migrations, routing, sessions, mvc, loggers
Aleksandr
вроде такой набор у всех фреймворков
Мерль
Aleksandr
Я слышал три основных beego,buffalo,grizly
Aleksandr
вы с ними со всеми работали?
Мерль
Мерль
Но не плотно
Alexey
Я тоже этой темой интересуюсь. Большое всего звездочек(10k) на гитхабе у beego.
Еще я присматриваюсь к go-json-rest (2.8k).
https://github.com/ant0ine/go-json-rest
Как я понимаю это что-то типа Sinatra из Ruby, если искать аналоги...
Т.е. очень простой скелетон с роутером и Json, к которому уже по желанию надо прикручивать модули.
В реадми описано как прикрутить на этотот скелетон JWT, для сессий, ORM. А это уже 90% задач закроет :)
Плюс подхода, что приложение можно распилить на отдельные апишки, и деплоить их отдельно, это будет не монолит.
Штука типа beego все таки больше сконяет к тому, чтобы писать монилит. Что наверное не go way...
Мерль
Я тоже этой темой интересуюсь. Большое всего звездочек(10k) на гитхабе у beego.
Еще я присматриваюсь к go-json-rest (2.8k).
https://github.com/ant0ine/go-json-rest
Как я понимаю это что-то типа Sinatra из Ruby, если искать аналоги...
Т.е. очень простой скелетон с роутером и Json, к которому уже по желанию надо прикручивать модули.
В реадми описано как прикрутить на этотот скелетон JWT, для сессий, ORM. А это уже 90% задач закроет :)
Плюс подхода, что приложение можно распилить на отдельные апишки, и деплоить их отдельно, это будет не монолит.
Штука типа beego все таки больше сконяет к тому, чтобы писать монилит. Что наверное не go way...
Я советую посмотреть на echo, chi, gorm, reform и negroni
Мерль
Из них можно собрать что угодно, в принципе
Alexey
Anonymous
Кто-нибудь гориллу использует?
Мерль
go-cleanarch/README.md at master · roblaszczak/go-cleanarch
https://github.com/roblaszczak/go-cleanarch/blob/master/README.md
Alexey
Мерль
Anonymous
Как строите структуру проекта бинарник и рядом папка с html/js/css файлами от шаблона располагаются?
Slava
что ты имеешь ввиду под бинарником?
Slava
исполняемый пакет или реальный бинарный файл?
Anonymous
Kirill
Мерль
Был ещё rice, но он сдох
Oleg
Anonymous
Привет!
Направление разработки индустриального интернета вещей ищет разработчиков Rust\Go.
Работа в офисе на м. Павелецкая.
Для опытных разработчиков з/п 200+ т.р.
Технические скилы:
• Отличные знания TCP/IP стека
• Отличные знания Go или Rust
• Опыт работы с high load системами
Будет огромным плюсом:
• Опыт построение приложений, которые держат сотни тысяч постоянных коннектов
• Опыт разработки стораджей или баз данных
• Понимание CAP
• Живые проекты на github
#вакансия #москва #backend #go #rust
Alexey
Привет, Алёна. :D
Anton
где-то я уже это видел)))))
Anonymous
Всем привет
Anonymous
Есть следующий код:
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method != get {
t.Errorf("Invalid method %s", r.Method)
}
if r.URL.Path != "/projects/"+string(pid)+".json" {
t.Errorf("Invalid resource path %s", r.URL.Path)
}
if r.URL.Query().Get("include") != "trackers" {
t.Error("Missed include query param")
}
w.Write(readTestFile(t, projectFile))
}))
Anonymous
Вопрос: откуда сетится request?
Anonymous
Мне нужно покрыть тестами одну штуку, которая "ходит" по сети.
Не совем понятно, кто и когда засетит значения в r * Request
Mike
ааааа
Mike
выдели код плиз
Mike
`
Mike
три бэктика в начале, три в конце
Mike
ну это на будущее
Mike
вообще вот: https://elithrar.github.io/article/testing-http-handlers-go/
Mike
развлекайся
Anonymous
Паралельно читаю эту статью
Anonymous
Спасибо
Anonymous
Я давно с го не работал,а нужно знакомому помочь
Anonymous
Вот,вспомниаю
Anonymous
Почитал я статейки.
Но все же мне нужнен ( по некоторым причинам) именно такой вариант
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method != get {
t.Errorf("Invalid method %s", r.Method)
}
if r.URL.Path != "/projects/"+string(pid)+".json" {
t.Errorf("Invalid resource path %s", r.URL.Path)
}
if r.URL.Query().Get("include") != "trackers" {
t.Error("Missed include query param")
}
w.Write(readTestFile(t, projectFile))
}))
Не подскажите, откуда вообще сетится r?
Илья
r - это запрос, который вы отправляете на сервер
Илья
https://golang.org/pkg/net/http/httptest/#Server
Илья
res, err := http.Get(ts.URL) - тут отправляется get запрос, который будет обработан вашим http.HandlerFunc(
Anonymous
Сударь, увы, внутри моего теста НИГДЕ не вызыается http.Get, что и повергло меня в замешательство
Mike
так потому что у тебя создается сервер
Mike
из твоего кода
Mike
и тесты на него
Mike
а теперь надо руками отправить на него запрос
Mike
потому что тесты у него только после запросов
Mike
у тебя же видишь ему коллбэк передается, че делать
Mike
ты увеен, что тебе сейчас про го стоит вспоминать, а не про то, как http вообще работает?
Anonymous
Уважаемый
Mike
у тебя в коде написано буквально "сделай мне тестовый сервер из вот такого обработчика запросов и назови его ts", все
Anonymous
Чудесно, спасибо, что обьяснил
Anonymous
Я-таки нашел место, откуда это все, возможно, вызывается.
Илья
если в этом месте не фигурирует ts.URL, то работа не будет гарантирована :)