Где взять материалы по изучению go?

121 views
Skip to first unread message

Inno Bragovich

unread,
Dec 30, 2017, 7:56:36 AM12/30/17
to Golang Russian
Здравствуйте!
Начинаю изучать.
Посоветуйте пожалуйста литературу, сайты, и т.п. в плане вопроса построения веб-приложений, например как сделать бэкенд для php, и т.п.
Так-то синтаксис понятен, но не понимаю, как язык нужно применять помимо создания каких-то скриптиков.

Andrey Velikoredchanin

unread,
Dec 30, 2017, 8:22:55 AM12/30/17
to golang-ru
Ну вы хотя-бы по минимуму в гугле порылись. Дофигища и примеров и примеров с нюансами всякими. 

27 декабря 2017 г., 13:23 пользователь Inno Bragovich <innobr...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+unsubscribe@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Alexey “AlekSi” Palazhchenko

unread,
Dec 30, 2017, 8:46:41 AM12/30/17
to gola...@googlegroups.com
Привет,

Начать можно отсюда: https://habrahabr.ru/post/269355/

Ну вы хотя-бы по минимуму в гугле порылись. Дофигища и примеров и примеров с нюансами всякими. 

Андрей, пожалуйста, не надо так резко реагировать. Вас же с вопросом про демонизацию не отправляли в Google, в котором и примеров, и нюансов дофигища.

–-–
Алексей «AlekSi» Палажченко

Andrey Velikoredchanin

unread,
Dec 30, 2017, 9:09:42 AM12/30/17
to golang-ru


30 декабря 2017 г., 16:46 пользователь Alexey “AlekSi” Palazhchenko <alexey.pa...@gmail.com> написал:
Ну, демонизация в Go - нетривиальная задача (тем более что решение я именно в гугле нашел). В отличии от способов создания http сервера.

Inno Bragovich

unread,
Jan 2, 2018, 12:12:48 PM1/2/18
to Golang Russian
Спасибо за наводку, приступил к изучению.

Inno Bragovich

unread,
Jan 2, 2018, 12:17:25 PM1/2/18
to Golang Russian
Andrey Velikoredchanin, я даже не представляю, что именно гуглить, в том то и проблема.
Большинство мануалов просто знакомит с языком го - с его структурой, синтаксисом, возможностями итд.
Вот смотрите, я умею PHP и настраивать сервак типа nginx,apache, IIS, и я ума не приложу, куда здесь втыкается GO. Так что я не ищу ответа на конкретный вопрос - "как поднять http сервер" (зачем бы это мне было надо, если есть апач?), и не ищу ответов про синтаксис или курсов по знакомству с языком. Кой-какие курсы прошёл, но от того, что я написал несколько скриптов - понимания целевого использования языка у меня не прибавилось.

Inno Bragovich

unread,
Jan 2, 2018, 12:18:05 PM1/2/18
to Golang Russian
Message has been deleted

Andrey Velikoredchanin

unread,
Jan 2, 2018, 12:28:38 PM1/2/18
to golang-ru
2 января 2018 г., 20:17 пользователь Inno Bragovich <innobr...@gmail.com> написал:

Andrey Velikoredchanin, я даже не представляю, что именно гуглить, в том то и проблема.
Большинство мануалов просто знакомит с языком го - с его структурой, синтаксисом, возможностями итд.
Вот смотрите, я умею PHP и настраивать сервак типа nginx,apache, IIS, и я ума не приложу, куда здесь втыкается GO. Так что я не ищу ответа на конкретный вопрос - "как поднять http сервер" (зачем бы это мне было надо, если есть апач?), и не ищу ответов про синтаксис или курсов по знакомству с языком. Кой-какие курсы прошёл, но от того, что я написал несколько скриптов - понимания целевого использования языка у меня не прибавилось.

В общем, понятно в чем проблема. Ответ простой - на Go пишется полноценный http сервер с использованием базовых конструкций типа:

http.HandleFunc("/path1", funcForPath1)
http.HandleFunc("/path2", funcForPath2)
...
http.ListenAndServe(":8080", nil)
Это будет ПОЛНОЦЕННЫЙ http сервер с параллельной обработкой запросов (я это как-то специально проверял). Т.е., в принципе, его можно использовать сразу указывая в 
ListenAndServe рабочий внешний IP и порт.
Но, в общем случае, я, например, предпочитаю его, все-таки располагать за nginx. 
Если капнуть поглубже на предмет удобств для написания http сервера, имеет смысл изучить модуль http/template, который есть в стандартных библиотеках. 
Так-же имеет смысл посмотреть на различные фрэймворки, которые предоставляют всякие вкусности при написании http сервера на go. Хотя, лично я предпочитаю писать на основании имеющихся средств,
т.к. считаю их вполне достаточными.
И, кстати, при гуглении советую использовать ключевое слово не "go", а "golang". Тогда все будете находить намного быстрее. :)

 



On Tuesday, January 2, 2018 at 6:12:48 PM UTC+1, Inno Bragovich wrote:
Спасибо за наводку, приступил к изучению.

On Saturday, December 30, 2017 at 3:09:42 PM UTC+1, Andrey Velikoredchanin wrote:


30 декабря 2017 г., 16:46 пользователь Alexey “AlekSi” Palazhchenko <alexey.pa...@gmail.com> написал:
Привет,

Начать можно отсюда: https://habrahabr.ru/post/269355/

Ну вы хотя-бы по минимуму в гугле порылись. Дофигища и примеров и примеров с нюансами всякими. 

Андрей, пожалуйста, не надо так резко реагировать. Вас же с вопросом про демонизацию не отправляли в Google, в котором и примеров, и нюансов дофигища.

Ну, демонизация в Go - нетривиальная задача (тем более что решение я именно в гугле нашел). В отличии от способов создания http сервера.

--

Inno Bragovich

unread,
Jan 2, 2018, 1:54:52 PM1/2/18
to Golang Russian
1. А как это дело потом связывается с php?
2. То есть мне тупо гуглить написание http сервера (смотрю уже, материала полно), если мы говорим про применение в сфере веб-систем?
3. А каковы есть ещё основные сферы применения на продакшене?
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.

Andrey Velikoredchanin

unread,
Jan 2, 2018, 2:46:28 PM1/2/18
to golang-ru
2 января 2018 г., 21:54 пользователь Inno Bragovich <innobr...@gmail.com> написал:

1. А как это дело потом связывается с php?

Golang - это ЗАМЕНА PHP. Или, в крайнем случае, работающий рядом сервер. Взаимодействовать Golang и PHP напрямую нет никакого смысла (только через базы данных, SQL или NoSQL)
 
2. То есть мне тупо гуглить написание http сервера (смотрю уже, материала полно), если мы говорим про применение в сфере веб-систем?

Если до этого вы использовали только PHP, будут некоторые трудности с пониманием базовых вещей. PHP - это плагин для Apache, который реализует его функционал. Golang http сервер - это, грубо говоря, сам Apache, который вы сами пишете, но при этом создаете страницы так как хотите в коде, который компилируется в бинарник, поддерживает многозадачность и имеет кучу других вкусностей. Нужно понимать зачем вам переход на golang. Для меня это - скорость (по сравнению с PHP, Ruby, Perl), ОЧЕНЬ удобная реализация многозадачности (по сравнению с Node.JS) и отсутствие гемороя с выделением памяти (по сравнению с С/С++).
 
3. А каковы есть ещё основные сферы применения на продакшене?

Обычно golang позицируется как инструмент для микросервисов. Я в своей практике использовал его в том числе как инструмент для быстрой предобработки больших потоков данных (благо параллельные потоки в нем прозрачно масштабируются на все имеющиеся физические процессоры).

Сфера применения Golang огромна. Я считаю что на нем можно писать и большие сайты в том числе.
 
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+unsubscribe@googlegroups.com.

Inno Bragovich

unread,
Jan 2, 2018, 4:22:38 PM1/2/18
to Golang Russian
То есть, мы убираем и apache и php, другого варианта нет?

Andrey Velikoredchanin

unread,
Jan 2, 2018, 4:53:57 PM1/2/18
to golang-ru
Смотря что вы хотите сделать. Как я уже написал - golang очень удобен для микросервисов. Т.е. для вспомагательных сервисов, которые могут работать либо на отдельном URI либо PHP может обращаться к нему как к обычному HTTP сервису. Все зависит от задачи.

3 января 2018 г., 0:22 пользователь Inno Bragovich <innobr...@gmail.com> написал:
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+unsubscribe@googlegroups.com.

Inno Bragovich

unread,
Jan 2, 2018, 6:28:15 PM1/2/18
to Golang Russian
А как php может обращаться к go? можете дать ссылку?

Stanislav N. aka pztrn

unread,
Jan 3, 2018, 2:19:48 AM1/3/18
to gola...@googlegroups.com
А RPC/API - не комильфо, например?
--
With best regards, 
Stanislav N. aka pztrn
Jabber: pz...@pztrn.name
E-Mail: pz...@pztrn.name
Blog: http://pztrn.name && http://en.pztrn.name
Telegram: @pztrn
Key ID: B3E1F07E

3 янв. 2018 г., в 4:28, Inno Bragovich <innobr...@gmail.com> написал(а):
signature.asc

Inno Bragovich

unread,
Jan 3, 2018, 3:22:47 AM1/3/18
to Golang Russian
ну, вобщем, понятно, хотя и смутно. Спасибо. С новым годом )


On Wednesday, January 3, 2018 at 8:19:48 AM UTC+1, Stanislav N. aka pztrn wrote:
А RPC/API - не комильфо, например?
--
With best regards, 
Stanislav N. aka pztrn
Jabber: pz...@pztrn.name
Reply all
Reply to author
Forward
0 new messages