
Alexey
19.10.2016
10:13:10
проверяет интерфейс компилятором

Alexey
19.10.2016
10:13:41
Ага. Проверяет что интерфейс в Framework совпадает с stdlib? Спасибо.

Alexey
19.10.2016
10:14:08
Проверяет что их Context реализует context.Context
Я обычно в коммент пишу в таких случаях
// check interface
var _ fmt.Stringer = new(Config)

Google


Alexey
19.10.2016
11:20:37
Решил пройтись по самым звездным Golang web framework'ам. Пока смотрю исключительно на сигнатуры HTTP hander'ов. Потом надо будет глянуть на middleware, request data bind и т.п.
HTTP handlers. signatures
—---------------------—
mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { // negroni and standard net/http
g.Get("/", func(w http.ResponseWriter, req *http.Request) { // zenazn/goji and standard net/http
g.GET("/", func(c *gin.Context) { // gin
e.Get("/", func(c echo.Context) error { // echo
m.Get("/", func() string { // martini
r.GET("/", func Index(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { // julienschmidt/httprouter
w.Get("/", func(ctx *web.Context, val string) { // hoisie/web
w.Get("/", func(val string) string { // hoisie/web
m.Get("/", func(ctx *macaron.Context) (int, []byte) { // macaron
m.Get("/", func(w http.ResponseWriter, req *http.Request, log *log.Logger) { // macaron
NOTEs
! revel, beego are not idiomatic Go because they forces you to embed handler to the Framework's struct
- martini, hoisie/web, macaron handlers are not strongly typed due to reflective dependency injection (which leads to poor performance)
- negroni and standard net/http does not dispatch request by HTTP verb (more boilerplate code)
+ goji, echo, gin, julienschmidt/httprouter handers are stronly typed
+ goji, echo, gin, julienschmidt/httprouter do dispatch requests by HTTP verb
+ goji, echo, gin support HTTP middleware
? julienschmidt/httprouter does not support HTTP middleware, gorilla/handlers are recommended instead
? goji keeps handler interface standard but it's quite verbose to type. Consider
? echo handers returns error value which could be handled in next middlewares in the chain. Consider
INF labstack/echo has own router, supports most handler / middleware APIs
INF gin uses julienschmidt/httprouter, per-request context map
INF negroni recommends gorilla/mux router; Golang 1.7 context can be used (or gorilla/context for Golang < 1.7)
- gorilla/context uses global context map which may lead to lock contention
+ Golang 1.7 context uses per-request context map, Request.WithContext does a shallow copy of *Request


Мерлин
19.10.2016
11:24:52
Решил пройтись по самым звездным Golang web framework'ам. Пока смотрю исключительно на сигнатуры HTTP hander'ов. Потом надо будет глянуть на middleware, request data bind и т.п.
HTTP handlers. signatures
—---------------------—
mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { // negroni and standard net/http
g.Get("/", func(w http.ResponseWriter, req *http.Request) { // zenazn/goji and standard net/http
g.GET("/", func(c *gin.Context) { // gin
e.Get("/", func(c echo.Context) error { // echo
m.Get("/", func() string { // martini
r.GET("/", func Index(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { // julienschmidt/httprouter
w.Get("/", func(ctx *web.Context, val string) { // hoisie/web
w.Get("/", func(val string) string { // hoisie/web
m.Get("/", func(ctx *macaron.Context) (int, []byte) { // macaron
m.Get("/", func(w http.ResponseWriter, req *http.Request, log *log.Logger) { // macaron
NOTEs
! revel, beego are not idiomatic Go because they forces you to embed handler to the Framework's struct
- martini, hoisie/web, macaron handlers are not strongly typed due to reflective dependency injection (which leads to poor performance)
- negroni and standard net/http does not dispatch request by HTTP verb (more boilerplate code)
+ goji, echo, gin, julienschmidt/httprouter handers are stronly typed
+ goji, echo, gin, julienschmidt/httprouter do dispatch requests by HTTP verb
+ goji, echo, gin support HTTP middleware
? julienschmidt/httprouter does not support HTTP middleware, gorilla/handlers are recommended instead
? goji keeps handler interface standard but it's quite verbose to type. Consider
? echo handers returns error value which could be handled in next middlewares in the chain. Consider
INF labstack/echo has own router, supports most handler / middleware APIs
INF gin uses julienschmidt/httprouter, per-request context map
INF negroni recommends gorilla/mux router; Golang 1.7 context can be used (or gorilla/context for Golang < 1.7)
- gorilla/context uses global context map which may lead to lock contention
+ Golang 1.7 context uses per-request context map, Request.WithContext does a shallow copy of *Request
Echo - one love


Constantine
19.10.2016
11:25:54
ага )
эхо прям хорош
другого и не хочется ))

Vladimir
19.10.2016
11:26:13
https://github.com/pressly/chi

Alexey
19.10.2016
11:29:27
Мне нравится echo и gin, вот только не могу понять насколько удобно иметь или не иметь вот такую сигнатуру?
> e.Get("/", func(c echo.Context) error { // echo
> echo handers returns error value which could be handled in next middlewares in the chain. Consider

Alexey
19.10.2016
12:08:10
_очень_ удобно
Мы говорили об этом в http://golangshow.com/episode/2015/11-26-031/

Alexey
19.10.2016
12:16:19
@alek_si Спасибо, обязательно послушаю. Скажи, а где-то есть пример в виде кода. Как говорится лучше один раз увидеть, чем сто раз услышать.

Alexey
19.10.2016
14:45:47
У меня весь код с echo проприетарный. Примеры в echo смотрел?

Мерлин
20.10.2016
07:11:38
Добрый день
https://www.youtube.com/watch?v=nRCXS6PUr5c&utm_source=golangweekly&utm_medium=email

Google

Мерлин
20.10.2016
19:35:36
А ещё годнейший тур по каналам http://blog.mergermarket.it/now-youre-thinking-with-channels/?utm_source=golangweekly&utm_medium=email

Favoretti
20.10.2016
20:39:32
О. Это ж Андреас на фотке.
Он в Страто немецком работал долго. Прикольный мужик.

Kirill
20.10.2016
20:53:58

Valery
20.10.2016
21:57:58
"На Python возникли проблемы с повторным открытием устройства на чтение — во второй раз данные уже не читались. Мы не стали разбираться и просто переписали то же самое на Golang — после этого все заработало."
https://habrahabr.ru/company/yandex/blog/311046/

santa
21.10.2016
05:10:39
Звучит как жирный наброс

Мерлин
21.10.2016
05:25:30
Звучит как жирный наброс
А на деле просто вскользь упоминается в конце
На самом деле тут хоть на бейсике напиши, им всего лишь чиселки из rs232 читать и в файлик складывать

Valery
21.10.2016
05:35:32

santa
21.10.2016
06:03:21
Вот рпро буфер устройства например
Про питон и уарт тож странно
В общем всю статью воспринял как "у нас было много времени и мы хотели что-нибудь позамерять => мы изобрели лесопед с погрешностью 15%"
А вот скажите умные люди
Почему нельзя было подключиться между контактами аккумулятора и телефона (например, о боги!, мултимертром). Зачем такие сложности?

Kirill
21.10.2016
06:08:18
и что это не может повлиять на какие-либо характеристики, например.

santa
21.10.2016
06:09:21
@ra9yss Ромыч, дай квалифицированное мнение
Что за гемморой в Яндексе творят и зачем

Google

santa
21.10.2016
06:10:33
https://habrahabr.ru/company/yandex/blog/311046/

RA9YSS
21.10.2016
06:15:44
ну хотят исспледовать потребление смартфона
и чё
просто смертным неддоступны внутренние данные о потреблении

santa
21.10.2016
06:16:23
Ой ответил ойфсё
Ну дак задницу вроде какую-то творят

RA9YSS
21.10.2016
06:16:36
ну измеряют потребление

santa
21.10.2016
06:16:38
Этож не потребление будет
ну всмысле да

RA9YSS
21.10.2016
06:16:47
а что блять это будет?

santa
21.10.2016
06:16:58
Но точность устрадает и накуя вообще в корпус лезть?
Ну т.е. не проще между контактами акка и телефона измерять, не?

RA9YSS
21.10.2016
06:17:49
на шунте будет падать напруга
и соответственно при повышении потребления будет падать напруга и тел будет охуевать от этой дерзости
вот

santa
21.10.2016
06:18:59
Т.е. ты прям одобряешь такое решение?

RA9YSS
21.10.2016
06:19:27
нам в мастерсокой хватало лабораторного БП и крокодилов, ну иногда надо было третий контакт какнибудь организовать...
ну я одобряю что люди хоть чемто занимаются

santa
21.10.2016
06:20:10
Ром, ты постарел писес

Google

RA9YSS
21.10.2016
06:20:14
но т.к. мне это неинтересно я ровнодушен

santa
21.10.2016
06:20:24
Ой ты тряпка санная

RA9YSS
21.10.2016
06:20:36
я пиздец рухлять

santa
21.10.2016
06:20:45
Даж не обругал ардуино-говно-палки

RA9YSS
21.10.2016
06:21:02
аааа, это я уже заебался ругать
яж рассказывал что имеется некий препод из АГУ которого привлекают на всякие темы на завод и он всюду наровит запихать ардуину и лабвью
ну лабвью еще побожески, хотя тож ни везде уместно
а вот с ардуиной это перебор

Мерлин
21.10.2016
06:24:29

santa
21.10.2016
06:25:19
Настолько сердито, что показывает погоду на Андромеде и слеплено из странного

RA9YSS
21.10.2016
06:25:49
Поубывав бы
жопа что мой гнев невсегда понимают, даже главный инженер и первый зам ГД

Мерлин
21.10.2016
06:26:22

RA9YSS
21.10.2016
06:28:53
не попизде, а просто они получают бабло и делают больше года смесь из силовых и сигнальных проводов, шилдов для дуины, самой дуины и всё это к лабвью
такая ташниловка

santa
21.10.2016
06:29:02

RA9YSS
21.10.2016
06:30:43
Текущий разброс результатов замера ± 15%

Google

RA9YSS
21.10.2016
06:31:07
не погрешность, не точность, не неопределенность а просто разброс результатов

santa
21.10.2016
06:31:52
а ок ок

RA9YSS
21.10.2016
06:32:04
тоесть видать дохера всяких еще ннеучтенных ими потребелений которые влияют на проведенные измерения

Мерлин
21.10.2016
06:32:18

santa
21.10.2016
06:33:01
ой серъёзно чтоль
короче я не оценил статью
ибо прям как мное деланно
А я такое говно леплю на коленке как недоученный студент

RA9YSS
21.10.2016
06:33:46
а?

santa
21.10.2016
06:33:57
Год уж кроме члена ничего в руки не брал

Мерлин
21.10.2016
06:34:01

santa
21.10.2016
06:34:09
вот-вот

RA9YSS
21.10.2016
06:34:33
эт я про сашу

Мерлин
21.10.2016
06:35:27
Вот в последнем GS была тема про логгеры
А что вы используете?
Вангую логрус

santa
21.10.2016
06:36:01
Милый вышел срачик, но оффтопный

Мерлин
21.10.2016
06:36:22