@Deamonik

Golang подходит ли для создания сайтов?

Все привет!
Вот хочу начать изучать golang для создания сайтов. Но имеются вопросы много вопросов на данный момент сайты создаю на php и все вопросы у меня отталкиваются от знания php

1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
(возможно мне стоит и дальше сайты создавать на php)
2. Влияет ли как-то golang на seo оптимизацию-выдачу
(если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)
3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)
4. Поддерживает ли golang mysql и какая скорость
5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов
6. Подойдет ли вообще golang для мелких или для крупных сайтов
7. Имеются ли подводные камни при разработке

Возможно просто кто-то уже делал сайты на golang просто поделитесь опытом пожалуйста именно для разработки сайтов буду очень признателен, и простите за глупые вопросы =(
  • Вопрос задан
  • 20504 просмотра
Пригласить эксперта
Ответы на вопрос 8
@MadridianFox
Web-программист, многостаночник
1) Go компилируемый, само собой скорость выше, но если вы на маленьком сайте упираетесь в скорость исполнения кода, то проблема скорее в коде, и выбор более быстрого языка избавит вас только от симптома, но не от болезни
2) на seo влияет только то ЧТО вы отдаёте пауку. Не важно на каком языке пишется программа, которая отдаёт html
3) Программа написанная на go сама работает как сервер. Более того, это не какой-то сервер приложений, как например tomcat, нет, вы сами будете писать цикл обработки входящих соединений - т.е. вам необходимо этот самый серер реализовать. В отличие от php+apache, где в качестве сервера выступает apache, который при необходимости вызывает php. Ставить ли apache или nginx перед go сервером вы решаете сами.
4) Поддерживает. На скорость работы СУБД не влияет то, на каком языке написана программа, которая к ней обращается.
5) Фреймворков уровня Yii2 или Symfony не наблюдается. Ситуация такая же как и с NodeJS - что-то есть, но комбайнов нет.
6) Если что-то может слушать соккет - на этом можно написать сайт. Любой. Другое дело, что сайты визитки на Go не пишут (только ради забавы), а крупные сайты вообще имеют сложную архитектуру, такую что язык уже не имеет значения.
7) Для php разработчика - да. Как минимум вы меняете скриптовый язык на компилируемый. Это значит что любое изменение кода требует компиляции, остановки работающего сервера, загрузки бинарника на его место и запуск. Кроме того вы меняете Stateless модель работы кода на полноценно работающую программу. Если на php у вас скрипт запускался заново при каждом http запросе, то программа на go запускается один раз и после этого принимает множество запросов.
Ответ написан
@dinegnet
Golang используют для создания сайтов да. Только дорогих сайтов. Скажем есть у меня проектик - хозяин ввалил в него уже стоимость Ленд Круизера свежего и все продолжает платить и платить.
Вы - не тот человек, которого будут для этого нанимать.
А в дешевой нише вы не сможете конкурировать по цене с ПХПистами.

1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
(возможно мне стоит и дальше сайты создавать на php)


Одни из самых высоконагруженных сайтов в мире сделаны с PHP - Facebook, примеру.
Или Vkontakte

Формально Go быстрее. Если ваш сервер и клиент разделяет только 10 метров.
Но в мире веба очень большие задержки - это связь между сервером и браузером, там совсем другие расстояния и другой порядок задержек. А это от языка программирования не зависит.

На их фоне, если вы нормально запрограммировали сайт - не должно тормозить ни на PHP ни на Go.

2. Влияет ли как-то golang на seo оптимизацию-выдачу
(если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)


Вам с таким уровнем понимая рано что-то решать.
Делайте то, что старшие скажут.

3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)


Это не связано с языком. Это связано с администрирование, проектированием, архитектурой системы, но не языка.

4. Поддерживает ли golang mysql и какая скорость


Да.
Скорость работы с СУБД ограничена, как правило, самой этой СУБД - это узкое место всегда.
От языка программирования, использующего ту или иную СУБД - зависит слабо.

5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов


Revel, Beego.me, gin и еще десяток.
Только они не нужны.
Все что нужно уже входит в стандартную библиотеку Golang.
Для облегчения работы стоит глянуть на фреймворки - Gorilla, Martini....

6. Подойдет ли вообще golang для мелких или для крупных сайтов

Все дело только в том, сможет ли заказчик оплатить.
На Go выходит дороже делать чем на PHP.
Поэтому ты просто пролетишь с заказами.
Дешевых заказов в разы больше.
Дорогие заказы чтобы взять - это нужно иметь ту еще квалификацию, до которой, судя по формулировкам - тебе еще лет 7 практиковаться в программировании.

7. Имеются ли подводные камни при разработке

Для тебя - важно, что мало информации, а особенно мало - на русском.
Ответ написан
@LiguidCool
Судя по вопросам оно вам не надо.
1) да , быстрее, но зависит от колера. В пыхе требования ниже.
2) а пыха влияет? В обоих случаях от вас зависит.
3) сервер встроен но иногда еще ставят mind.
6) для мелких в целом нет. Это как на рыбе писать без фоеймворка или cms.
7) естественно.
Имхо, лучше тогда на ноде писать.
И не забудьте , что целый гемор будет работу найти.
Неотвеченное гуглится.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
подходит, beego.me бери и вперед (примерно 3-4 фреймворка есть), только с php есть один нюанс
Ответ написан
@laxikodeje
Golang - другой полюс разработки. Сложные проекты.
Типичный сайт на PHP - это самые дешевые разработчики, самые простые сайты.
Сие не умоляет достоинств PHP - в конце-то концов и Фейсбук и ВКонтакт - на PHP основаны.

1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
(возможно мне стоит и дальше сайты создавать на php)

Для ренедринга HTML страницах - крайне сомнительно, чтобы был такой отрыв.
Для каких-то расчетов на стороне сервера - да, конечно, у Go есть преимущество.
Однако в 90% случаев ограничивает все скорость интернета. А не языка программирования на стороне сервера.

2. Влияет ли как-то golang на seo оптимизацию-выдачу
(если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)


Что?
Скорее влияет ваше умение или неумения.
Программировать нужно на том, что вы лучше знаете - тогда и с SEO все будет нормально.

3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)


Apache не нужен, так как golang вполне себе самостоятельный полноценный веб-сервер позволяет сделать. Nginx разумно держать перед ним. Для снятия нагрузки на медленных соединениях с клиентом. И для SSL.

4. Поддерживает ли golang mysql и какая скорость


Опять не по делу.
Все упирает тут только в то, умеете ли вы им пользоваться или нет.
Поддержка mysql у golang есть.
Но скорость зависит от того, какова ваша структура БД в mysql, каковы ваши запросы и каков тюнинг вашей СУБД и какое железо на ваше сервере - НИЧЕГО из этого не имеет отношения к PHP или Go.

5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов


Beego.me можно рекомендовать.
Но гораздо более современное и модное применение Go делается не в классической архитектуре с каким-либо веб-фреймворком, а скорее в микросервисной. Можно использовать фреймворк go-micro.


6. Подойдет ли вообще golang для мелких или для крупных сайтов


Все упирается только в то - умеете вы или нет.
Для мелких ограничением будет высокая конкуренция с PHP.
Для крупных - ваше неумение программировать.

7. Имеются ли подводные камни при разработке


Меньше коммунити, меньше советов у Go.
Меньше заказчиков.
Так как Go применяется в основном в крупных проектах - куда вам путь пока заказан.
Ответ написан
Комментировать
@Pantene742
На твои вопросы внятно ответить трудно но вот что о Go лично я могу сказать -
go решает определенные трудности которые возникают при разработке backend на C++, почему иногда приходят к плюсам в этой сфере(нужна произодительность, многопоточность реалтайм приложениям) сотрудники гугла ранее разрабатывающие JVM и компилятор Java, решили что вместо того чтоб юзать C++ который компилировался на ихнем железе 10 часов, создать свой язык под их постоянные задачи. Запили узкоспециализированный язык под многопоточную обработку данных из стандартными функциями по работа с массивами и прочую базовую логику реализовали, создали стандартные библиотеки для абстракции от низкоуровневого взаимодействия с апаратурой и ОС ТОЕСТЬ РЕШИЛИ СВОИ ПРОБЛЕМЫ Лично я считаю чтоб понять что язык реально стоит, куда и где его реально реально красиво встроить нужно напариться с Java или C# или C++ пару лет. Хотя тем кому скажут на фирме на этапе джунства работать с ГО этого понять не суждено. Просто брать и учить Go или Erlang не вижу смысла,
1. его надо учить когда заставили те кто понимают зачем это делать(старшие на фирме)
2. или же когда сам дорос до того чтоб понимать какой кусок проекта на нем пилить.
------ А что учить ??? - то по чему материалы под рукой и что знаешь где и как реализовать. JS PHP JAVA ObjC или Плюсы неважно...

Предположим ты делаешь поисковик по определенным данным, или же даже свой поисковик типа google.
Тебе нужно лесть на 200 серверов баз данных для одного запроса, паралельно складывать это все в один массив из сервера кеша по популярным запросам, юзеров 10 000 в один момент, надо все процессы поиска кеша обновления данных проводить в отдельных потоках, + сводить аналитику по данным, реализовать сортировку по запросам, анализ page rank например, + парсер новых сайтов. Вот такой проект стоит переписать с Java например на Go. Или ситуация скажем на Jave падают вебинары, массовые раздачи потоков видео можно направить через ErlyVideo, а один пустить через Wowza(Java) так как API простое, а массовый дубляж пустить через Erlyvideo это уже Erlang который чем то похож на Go. Позже это все грамотнее пустить в CDN и еще через WebRTC чтоб по типу торрента данные шли между зрителями вебинара или участника конференции и при этом скажем процесс писался на сервере. GO для опитимизации бекенда вместо C++ лично мой вывод.
Ответ написан
@GromderCom
Вот свежий учебник по созданию сайта на Golang: https://golangs.org/go/web-app-go
Ответ написан
Комментировать
ivankprod
@ivankprod
Системный / веб fullstack-разработчик
А можно просто взять gofiber и горя не знать :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы