🏁Александр
забейте я опять не выспался 🙂 какой то бред пошел
Anonymous
забейте я опять не выспался 🙂 какой то бред пошел
Сон - слишком ценный ресурс в наше время. Не все его могут себе позволить 😃
Anonymous
забейте я опять не выспался 🙂 какой то бред пошел
Признание своих ошибок - верный путь к успеху
🏁Александр
Сон - слишком ценный ресурс в наше время. Не все его могут себе позволить 😃
особенно если рейд сдвинулся из за того что у сони сервера легли вчера 🙂 Ну это оффтоп
🏁Александр
мне вот интересно, а при "голом" варианте return с именованными параметрами, туда нельзя запинухнуть свойства из структуры к которой относится функция O_o
🏁Александр
func (p *Person) Talk() (p.Name string) { p.Name = "Петров" return }
🏁Александр
безумие конечно, просто интересно 🙂
Pawel
да, выспаца могут не только лишь все
🏁Александр
меня прет на безумный код сегодня, щаз я там закомичу бгг
Artem
че то вообще выходит, что я чушь нес :( То, что пытался выразить скорее особенности утиной типизации в слабо типизированном языке, что вообще не имеет отношения к строгой типизации и вообще Гоша как раз "сильно" типизированный... да согласен баран, че то понедельник наверно, я хз как меня туда понесло ))) И какое это отношении вообще к динамике имеет, тот же питон же вполне себе сильно типизированный, короче это пройдет.
Anonymous
Задачка загружать файлы на ftp. Стандартной либы достаточно или чето покруче есть?
andrew
как в http/templates правильно форматировать datetime?
Мерль
как в http/templates правильно форматировать datetime?
{{.date.Format "Mon Jan 2 15:04:05 MST 2006"}}
Мерль
https://golang.org/pkg/time/#pkg-constants
andrew
а для Российской локализации?
andrew
10 января 2018г.
Мерль
10 января 2018г.
ты неправильно понимаешь принципы форматирования почитай документацию по ссылке, там всё достаточно просто
andrew
понял, спасибо!
Максим
Добрый день. Кто что думает об Iris, Echo? Или своими руками всё писать?
Максим
gramework
В чём плюсы?
Michael
В чём плюсы?
на страничке проекта они описаны, и тут можешь автору на пиво скинуть
Максим
На пиво куда кидать? :)
Michael
Alexey
gramework
Выглядит как реклама, твой совет ничем не аргументирован.
Michael
Выглядит как реклама, твой совет ничем не аргументирован.
выше вроде по-русски было же написано, но для true lazy devs - https://github.com/smallnest/go-web-framework-benchmark
Anonymous
Скорость не важна
Slach
Народ, а объясните мне про go buid tags? вот есть пакет в нем часть функциональности помечена тегами // +build tagname что мне сделать чтобы мой проект мог использовать эту функциональность? собирать свой проект с этими тегами? или достаточно сделать go install —tags "tagname" hostname/user/project ???
Kirill
На пиво куда кидать? :)
В ридми проекта есть ссылка :)
Kirill
Ну и да - поддержка у меня есть в личке здесь же, довольно оперативная и конфиденциальная
Kirill
Скорость не важна
А насчёт этого - тут и скорость работы, и скорость разработки рвет большинство конкурентов
Aleksei
А SPAindex просто киллерфича
Aleksei
В три строки можно засервить полноценно SPA апликуху без всякого геморроя
Aleksei
Потом прикручиваешь роуты для апи и пилишь себе бизнес логику
Kirill
А как насчет параметризированных путей?
Полная совместимость с fasthttprouter. Его кодовая база встроена и модифицирована с письменного разрешения авторов
Aleksandr
В три строки можно засервить полноценно SPA апликуху без всякого геморроя
это где? я вот сервил spa и у меня не сильно больше строк, если убрать проверки на ошибки
Vladislav
@kirilldanshin в TOC ссылки на примеры битые.
Kirill
Возможно, формат ссылок на заголовки в гитхабе изменился. Раньше работало. Спасибо, проверю и поправлю
Roman
забавно func main() { var i int for i < 5 { i = 5 i := 3 fmt.Println(i) } fmt.Println(i) }
Roman
какие ваши предположения, почему так?
Илья
потому что создание переменной во внутреннем скоупе не аффектит внешний?
Roman
а на второй итерации?
andrew
там нет второй итерации :)
John
fmt.Println(&i) можно глянуть адрес переменной чтобы наглядно
🎉
А SPAindex просто киллерфича
Хм, что там должно быть киллер фичей? Руководствуясь этой статьёй https://golang.org/doc/articles/wiki/ фреймворк для SPA не нужен.
Александр
а что вообще подразумевается под SPAindex?
🎉
Для SPA вполне достаточно минимального кода func rootHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html") w.WriteHeader(http.StatusOK) data, err := ioutil.ReadFile("index.html") if err != nil { panic(err) } w.Header().Set("Content-Length", fmt.Sprint(len(data))) fmt.Fprint(w, string(data)) } func main() { http.HandleFunc("/", rootHandler) log.Fatal(http.ListenAndServe(":8080", nil)) } Ну можно конечно ещё накрутить по минимуму.
Kirill
а что вообще подразумевается под SPAindex?
Файл с лейаутом для загрузки spa. Входная точка, html-ка
🎉
Сам смысл, что-бы был понятен.
Kirill
Ну у вас не три строчки, и это я по быстрому нагуглил.
package main import "github.com/gramework/gramework" func main() { app := gramework.New() app.GET("/static/*any", app.ServeDir("./static")) app.SPAIndex("./index.html") app.ListenAndServe() } Да, простите, 4 строчки инициализации, не 3
Kirill
package main import "github.com/gramework/gramework" func main() { app := gramework.New() app.GET("/static/*any", app.ServeDir("./static")) app.SPAIndex("./index.html") app.ListenAndServe() } Да, простите, 4 строчки инициализации, не 3
И дело в том, что в реальных тестах и в реальных условиях этот простой код порвёт спокойно тот код, который ты скинул
🎉
Уточню - я считал строки в main()
Аааа, а я весь грамеворк который тащить нужно. Может для больших проектов это и удобно, не знаю, но для SPA, я бы ручками, и размер намного меньше будет.
Aleksei
Кто считает импорты за строки? Ты бы ещё package main за строку посчитал
Aleksei
Так ты сервишь spa и там же прописываешь роуты для апи и пилишь бизнес логику
🎉
родной http не такой уж и быстрый
А у него на Си переписано?
Kirill
а в чем там кстати просадка идет?
Сеть, работа с http, работа с диском, сжатие и роутинг
Kirill
Но без net/http
Michael
А у него на Си переписано?
выше ответили, и Си не панацея)
Aleksei
Кроме того "тащить весь греймворк" звучит как будто это js и юзеры его качают. Ты один раз выкачал и у тебя бинарник, который и так и так весит понты. И греймворк этот вес сильно не изменит
Kirill
выше ответили, и Си не панацея)
Ровно так, си ещё больший оверхед даст
🎉
Я не спорю, наверное хороший проект, но я таки для SPA его рассматривать точно не буду, сорри.
Aleksandr
Сеть, работа с http, работа с диском, сжатие и роутинг
ну ты просто перечислил чем занимается http. в чем конкретно теряем производительность?