Pull to refresh

Comments 12

У ваших статей незаслуженно нет комментариев. Большое спасибо за этот материал.
Очень полезно!
Сам хочу написать когда-нибудь статью про организацию web backend на Go и GAE приминительно к мобильному приложению.
Спасибо! Обязательно напишите. Особенно было бы интересно почитать о полном стеке: само приложение на Go github.com/remogatto/mandala и веб-сервис тоже на Go.
Спасибо вам за ваши посты. Тоже интереен этот язык. Не знаите ли вы Apache + ngnix будет с Go?
Go умеет работать с nginx и apache через FastCGI.
Спасибо. Через FastCGI я читал, но это уже скомпилированный же код.
А вы хотите, чтобы он как PHP работал? При каждом запросе компилировал запрашиваемый файл исходного кода отдельно, независимо от других файлов проекта?
Не, так не делается.
Вы можете перенаправлять запросы с nginx на Go приложение через proxy_pass. Разработчики Go рекомендуют все же не использовать Go-сервер без nginx/apache или другого подобного сервера, так как они лучше справляются с рядом задач. Например ssl handshake, gzip, spdy и прочее. Хотя все это конечно можно и в самом Go сервере сделать.

Кроме того положительный момент – пока nginx/apache запущен как root — само приложение может быть запущено от имени обычного пользователя.
Спасибо большое за статьи!

Небольшой комментарий: если следовать правилам именования констант в Go (тому, который выложил Brad Fitzpatrick) — они не должны как в других языках быть все заглавными буквами. Хотя как по мне именно так их удобно воспринимать в коде. А вообще очень много полезного рассказали в этих статьях от написания API до тестирования.

  • Кстати есть CI написанный на Go и использующий Docker контейнеры: github.com/drone/drone
  • И есть еще интересный проект goconvey.co/


Вопрос к знатокам: Если не используется martini — как вы передаете в HandlerFunc параметры вроде открытого соединения mgo или сессии? Пока что я выхожу из ситуации используя closures. Как пример:

http.HandleFunc("/my/path/", func(w http.ResponseWriter, r *http.Request) { MyPathHandler(w, r, db, session })
Делаю так же. Другой вариант объявить переменную на уровень выше так, чтобы у каждого обработчика был доступ к ней.
А как вы думаете Go монополизирует языковые просторы?
Уверен, что нет, у Go множество проблем и он далеко не идеален, просто в данный момент он достаточно прост и удобен для разработки сервисов и инструментов, вроде docker.
Sign up to leave a comment.

Articles