
Мерлин
30.04.2017
20:20:57

Alexander
30.04.2017
20:21:29
Я слышал три основных beego,buffalo,grizly
вы с ними со всеми работали?

Мерлин
30.04.2017
20:22:33

Google

Мерлин
30.04.2017
20:22:53
Но не плотно

Alexey
30.04.2017
20:48:33
Я тоже этой темой интересуюсь. Большое всего звездочек(10k) на гитхабе у beego.
Еще я присматриваюсь к go-json-rest (2.8k).
https://github.com/ant0ine/go-json-rest
Как я понимаю это что-то типа Sinatra из Ruby, если искать аналоги...
Т.е. очень простой скелетон с роутером и Json, к которому уже по желанию надо прикручивать модули.
В реадми описано как прикрутить на этотот скелетон JWT, для сессий, ORM. А это уже 90% задач закроет :)
Плюс подхода, что приложение можно распилить на отдельные апишки, и деплоить их отдельно, это будет не монолит.
Штука типа beego все таки больше сконяет к тому, чтобы писать монилит. Что наверное не go way...


Мерлин
30.04.2017
20:50:52
Я тоже этой темой интересуюсь. Большое всего звездочек(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
30.04.2017
20:53:41

Aleksey
01.05.2017
01:50:27
Кто-нибудь гориллу использует?

Мерлин
01.05.2017
07:03:28
go-cleanarch/README.md at master · roblaszczak/go-cleanarch
https://github.com/roblaszczak/go-cleanarch/blob/master/README.md

Алексей
01.05.2017
12:07:09

Мерлин
01.05.2017
17:32:26

Aleksey
01.05.2017
20:54:52
Как строите структуру проекта бинарник и рядом папка с html/js/css файлами от шаблона располагаются?

Slava
01.05.2017
22:27:26
что ты имеешь ввиду под бинарником?
исполняемый пакет или реальный бинарный файл?

Aleksey
01.05.2017
23:23:16

Google

Kirill
01.05.2017
23:24:22

Aleksey
01.05.2017
23:36:45

Мерлин
02.05.2017
06:34:59
Был ещё rice, но он сдох

Mars
02.05.2017
06:47:52

Alyona
02.05.2017
07:56:32
Привет!
Направление разработки индустриального интернета вещей ищет разработчиков Rust\Go.
Работа в офисе на м. Павелецкая.
Для опытных разработчиков з/п 200+ т.р.
Технические скилы:
• Отличные знания TCP/IP стека
• Отличные знания Go или Rust
• Опыт работы с high load системами
Будет огромным плюсом:
• Опыт построение приложений, которые держат сотни тысяч постоянных коннектов
• Опыт разработки стораджей или баз данных
• Понимание CAP
• Живые проекты на github
#вакансия #москва #backend #go #rust

Alexey
02.05.2017
08:19:29
Привет, Алёна. :D

Anton
02.05.2017
08:29:31
где-то я уже это видел)))))

Vlad
02.05.2017
09:12:09
Всем привет
Есть следующий код:
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))
}))
Вопрос: откуда сетится request?
Мне нужно покрыть тестами одну штуку, которая "ходит" по сети.
Не совем понятно, кто и когда засетит значения в r * Request

Mike
02.05.2017
09:15:40
ааааа
выдели код плиз
`
три бэктика в начале, три в конце
ну это на будущее
вообще вот: https://elithrar.github.io/article/testing-http-handlers-go/
развлекайся

Vlad
02.05.2017
09:17:25
Паралельно читаю эту статью

Google

Vlad
02.05.2017
09:17:27
Спасибо
Я давно с го не работал,а нужно знакомому помочь
Вот,вспомниаю
Почитал я статейки.
Но все же мне нужнен ( по некоторым причинам) именно такой вариант
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?

Илья
02.05.2017
10:37:18
r - это запрос, который вы отправляете на сервер
https://golang.org/pkg/net/http/httptest/#Server
res, err := http.Get(ts.URL) - тут отправляется get запрос, который будет обработан вашим http.HandlerFunc(

Vlad
02.05.2017
10:49:47
Сударь, увы, внутри моего теста НИГДЕ не вызыается http.Get, что и повергло меня в замешательство

Mike
02.05.2017
10:50:30
так потому что у тебя создается сервер
из твоего кода
и тесты на него
а теперь надо руками отправить на него запрос
потому что тесты у него только после запросов
у тебя же видишь ему коллбэк передается, че делать
ты увеен, что тебе сейчас про го стоит вспоминать, а не про то, как http вообще работает?

Vlad
02.05.2017
10:54:09
Уважаемый

Mike
02.05.2017
10:54:51
у тебя в коде написано буквально "сделай мне тестовый сервер из вот такого обработчика запросов и назови его ts", все

Vlad
02.05.2017
10:55:13
Чудесно, спасибо, что обьяснил
Я-таки нашел место, откуда это все, возможно, вызывается.

Илья
02.05.2017
10:56:29
если в этом месте не фигурирует ts.URL, то работа не будет гарантирована :)

Google

Vlad
02.05.2017
10:57:19
p, err := r.Project(context.Background(), entities.Tracker{
Credentials: testCreds,
URL: ts.URL,
Type: redmineType,
}, pid)

Mike
02.05.2017
10:57:32
ну так, после того, как ты тестовый сервер сделал, надо теперь писать тесты, например
1) сделать на него запрос гет по урлу, и убедиться, что результат совпадает с тем, что ты ждешь
2) сделать пост по урлу и убедиться, что результат правильно зависит от параметров
3) любой другой пример
но эти тесты тебе придется написать, а не ждать, что магическое присваивание севера переменной начнет долбить на сервер именно те запросы, которые ты хочешь

Vlad
02.05.2017
11:00:28
Таки пройдя по длинной цепочке вызовов, нашел вот это
resp, err := opts.httpClient.Do(req.WithContext(opts.ctx))
Бинго.

Павел
02.05.2017
12:23:40
здравствуйте, дорогие
и уважаемые участники
:)

Мерлин
02.05.2017
12:25:37
Добрый день

Олег
02.05.2017
12:26:09
:)
ты бы ник сменил, а то все админы уже банхамеры достали
?

Павел
02.05.2017
12:29:43
Сначала бы вылечить паранойю, ребят. На самом деле, меня зовут Павел. У меня появился вопрос, на который я не нашел в сети ответа и стал искать вас. И очень рад, что нашел.

Илья
02.05.2017
12:31:38
ну так не томите, Павел, в чем же вопрос?

Олег
02.05.2017
12:31:49
Да троль походу

Олег
02.05.2017
12:32:10
Убейте Павла

Павел
02.05.2017
12:32:47
Вопрос по gogland, но сейчас я убегаю. Удивлен, что бывают проблемы с троллями. О_О Ребят, вы чего? Оо

Alex
02.05.2017
12:32:55
Че за павел

Мерлин
02.05.2017
12:33:09

Mike
02.05.2017
12:33:11
павел, будь проще

Alex
02.05.2017
12:33:17
павел уходи

Google

Мерлин
02.05.2017
12:33:24
Господа, у нас работает презумпция невиновности

Mike
02.05.2017
12:33:26
а то звучишь как 60-летний которому сегодня интернет показали

Олег
02.05.2017
12:33:30
павел, бан:D
??

Alex
02.05.2017
12:33:40
А, я не могу убить павла

Олег
02.05.2017
12:33:43

Alex
02.05.2017
12:33:45
Пойду убью карину

Павел
02.05.2017
12:33:47
Сменил


Alex
02.05.2017
12:42:51
Добро пожаловать в чат русскоязычного комьюнити языка программирования Go!
Здесь не любят и активно карают за:
— оскорбления;
— nsfw контент;
— флуд, флейм и спам;
— избыток оффтоп тем;
Прежде чем задавать свои ответы, убедитесь, что:
— вы загуглили свою проблему
— вы поискали на официальном сайте языка https://golang.org/help/
Не просите других отлаживать ваш неработающий код без подсказки о проблемах, которые нужно отыскать. Отправив сотни строк и говоря "не работает", вы будете проигнорированы. Отправив десяток строк кода и сказав "после строки 7 я ожидаю X, но приходит Y" - значительно вероятнее получить ответ.
Не поддавайтесь соблазну завершить свой запрос бессмысленными вопросами вида: "Не поможет ли мне кто-нибудь?" или "Есть ли вообще ответ?" Во-первых, если вы хоть сколько-нибудь компетентно описали свою проблему, подобные дополнительные вопросы, как минимум, излишни. Во-вторых, поскольку они излишни, людям они кажутся надоедливыми — и в ответ их так и подбивает написать логически безукоризненную отписку типа: "Да, помочь вам можно" или "Нет, вам уже ничем не поможешь".
Как правильно спрашивать: http://segfault.kiev.ua/smart-questions-ru.html#code
Список всякой всячины: https://github.com/avelino/awesome-go
Ништяки: https://github.com/golang/go/wiki/Projects
Сайт комьюнити: http://4gophers.ru/
Список проектов, которым нужны контрибьютеры: https://github.com/ninedraft/gocryforhelp
Приятно провести время! :3
#правила #rules #полезняшки #чаво
Сюда можно еще дописать вот эту ссылку: http://neprivet.ru


Karina
02.05.2017
12:58:37
Хэй, ребята.
S7 Airlines устраивает хакатон в Москве, в Парке Горького. Призовой фонд 600 000 руб и еще возможность трудоустройства в S7 Group или заключение контракта с компанией S7 Airlines. Участие бесплатное. Если по результатам заочного этапа ваше решение будет отвечать критериям отбора, то вы будете приглашены на финальный этап в Москву, организаторы оплатят перелет.
Регистрация: https://goo.gl/0Lhc2k

Mike
02.05.2017
12:59:56
и тут блокчейн...
а если я знаю решение для 3 за 15 баксов, которое умеет ВСЕ, что может теоретически уметь чатбот, это можно засчитать за решение? важен же результат =)

Karina
02.05.2017
13:01:52
регистрируйтесь, представляйте свое решение и компетентные люди оценят его)
а вообще
https://t.me/s7hackathon

Mike
02.05.2017
13:04:09
ну я говорю, решение — купить чатбот платформу, 15 баксов стоит, есть бэкенд, где можно активные чаты между саппортами раскидывать, саппорты могут чаты на других переводить (например, технических саппортов или финансовых, в зависимости от вопроса), автоматическое раскидывание чатов по свободным саппортам и т.п. Смысл это перепиливать заново?