Comments 28
Пример реализации простых приложений это может и хорошо, но вот мы не нашли паттерна реализации или фреймворка для крупных веб приложений. У меня довольно большой опыт web разработки (с применением Yii, laravel, kohana, symphony), и буквально неделю назад начали писать под свой проект (с дальнейшей opensource публикацией) вменяемый fullstack фреймворк со всеми плюшками ORM, валидаторами, i18n и т. д. Если есть желающие присоединиться к разработке, пишите в лс.
0
только он symfony
+2
UFO just landed and posted this here
Может быть именно в этом и состоит дзен Go: вместо больших фреймворков использовать небольшие, но модульные решения (один инструмент выполняет одну задачу). И, черт побери, после жутко монолитной Джанги, мне это как бальзам на душу.
+3
Микросервисы? REST Microservices in Go with Gin
+4
А нужно ли оно вообще, свой фреймворк-то, в котором все-все-все?
Связка Gin + Gorm (или beego + beego ORM) + govalidator + go-i18n + whatever не подходит по объективным причинам или обладает фатальным недостатком?
Связка Gin + Gorm (или beego + beego ORM) + govalidator + go-i18n + whatever не подходит по объективным причинам или обладает фатальным недостатком?
+2
+1 можно легко собрать свой фреймворк и заменять детали на ходу.
0
UFO just landed and posted this here
Сгусток сумбура, эта статья явно не для новичков. Эта статья кто уже как минимум знаком с языком, и кто писал на нем программы и запускал их, иначе будет миллиард вопросов про компиляцию, импорт пакетов, файлы итд.
+4
Статья совсем не для новичков. И даже для тех, кто прошел что-нибудь на подобии Go Tour статья вызывает больше вопросов, чем ответов.
+4
>>Впереди устанавливается http-сервер для отдачи статики, например, nginx
А совсем недавно статья была, там говорилось что Go ненужны никакие nginx и прочие апачи, якобы он настолько самостоятельный, что это всё сам обрабатывать может легко. И где правду искать? Круто конечно, если действительно он настолько самодостаточный.
А совсем недавно статья была, там говорилось что Go ненужны никакие nginx и прочие апачи, якобы он настолько самостоятельный, что это всё сам обрабатывать может легко. И где правду искать? Круто конечно, если действительно он настолько самодостаточный.
0
Атак на web-серверы превеликое множество, я бы не рисковал выставлять Go в интернет. Несмотря на то, что он скорее всего будет справляться с определённой нагрузкой, его вероятнее всего не составит труда свадить банальной slowloris. Это не говоря о том, что реализовывать HTTPS самостоятельно — ещё более плохая идея. Подводя итог, использовать Go как самостоятельный веб-сервер хоть и можно, но не рекомендуется уж точно.
0
что значит https самостоятельно? в go в стандартной библиотеке есть реализация tls.
вот slowloris написанный на go для nginx github.com/valyala/goloris
веб сервер на go дает ~ 20000-25000 rps на ядро, это примерно на 20-30% медленее nginx на тойже машине в задаче отдачи статических файлов
подводя итог ваши аргументы достаточно странные как и рекомендации.
если не нужен reverse-proxy то смысла его использовать нет — получится двойной парсинг запроса, ещё больше занятых сокетов и т.п, что в итоге даст меньшую производительность.
вот slowloris написанный на go для nginx github.com/valyala/goloris
веб сервер на go дает ~ 20000-25000 rps на ядро, это примерно на 20-30% медленее nginx на тойже машине в задаче отдачи статических файлов
подводя итог ваши аргументы достаточно странные как и рекомендации.
если не нужен reverse-proxy то смысла его использовать нет — получится двойной парсинг запроса, ещё больше занятых сокетов и т.п, что в итоге даст меньшую производительность.
+3
How quickly it can take down unprotected nginx with default settings?Это ещё раз подтверждает, что не стоит делать свой велосипед, если даже специально заточенный проект борется с этими атаками годами. Ну и, как видно, в Nginx 1.6, который вышел больше года назад, уже приняты меры, но даже без обновления до 1.6 можно было залатать уязвимость при помощи конфигурирования.
In a few minutes with default config options.
Which versions of nginx are vulnerable?
All up to 1.5.9 if unprotected as described below (i.e. with default config).
Если вы хотите велосипед — мне вас не остановить. Не доверяете граблям, на которые наступили другие, — наступите на них сами.
+1
Дело не просто в отдачи статики. Nginx имеет целый багаж полезных фич и настроек — кэш, сжатие, limit_rate, limit_req, геомодуль, все не перечесть — вы и так все знаете. Не делать же этот функционал заново средствами Go.
+3
UFO just landed and posted this here
Задавайте свои вопросы и/или оставляйте свои рекомендации.
0
UFO just landed and posted this here
Это именование шаблона, требование системы шаблонов «text/template» (и соответственно «html/template»), т.к. шаблоны могут быть множественно представлены в одном файле: golang.org/pkg/text/template/#hdr-Nested_template_definitions
Т.е. определять имя шаблона необходимо в любом случае, даже если вы не обращаете на это внимание. В моем примере все шаблоны именуются одинаково "*". Можно дать любое другое именование.
Т.е. определять имя шаблона необходимо в любом случае, даже если вы не обращаете на это внимание. В моем примере все шаблоны именуются одинаково "*". Можно дать любое другое именование.
0
Статья явно не для новичков. Не понял ничего. Хотя не много (совсем не много) пытаюсь писать мини программки на go.
0
Sign up to leave a comment.
Разработка веб-приложения на Golang