LINUX.ORG.RU

Golang в вебе

 , ,


0

3

Захотел сделать веб-страничку с биографией одного юзера, чтобы оформить всё в CSS и, потом, запустить на КАЖДОМ устройстве, которое окажется у меня под рукой. В частности интересует вид страницы в труЪ WAP-браузере(WAP 2.0). В какой-то момент я вспомнил про ненужный Go. Они говорят, что на Go пишут какие-то микросервисы и веб-приложения(под WebView?). Да даже нейросеть гугла на название топика отвечает:

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

Как-то не очень похоже на работу в вебе - скорее на работу в High-load или в бэкэнде чего-то, что явно не про сайты(да, под вебом я понимаю именно веб-страницы). Может я что-то упускаю? Или Go не прикручивают к веб-страницам?


Ответ на: комментарий от LongLiveUbuntu

судя по фразе:

Или Go не прикручивают к веб-страницам?

Он хочет go внутри html за место php.

P.S. Автору куда нибудь сюд: https://gorilla.github.io/ ну или подобное.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)

Или Go не прикручивают к веб-страницам?

Это компилируемый язык, близкий к системному. С кучей плюшек из коробки для конкурентности и заточенности под работу с сетью. На нём пишут высоконагруженные микросервисы для бэкенда. Можно легко и быстро набрасывать CLI, есть классные инструменты для этого. Встроить его в веб-страницу, наверное, можно, но надо вспоминать про CGI и идти тем же путём, что и с веб-страницей на С.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

У nginx был какой то апп сервер (забыл название) так вроде поддерживал go но я так и не понял как это работает.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Nginx Application Server, видимо? Я не совсем понял, для чего оно надо. Там пишут про PHP, наверное, но PHP это тоже серверный язык, а не работающий на веб-странице. И зачем пихать гошное приложение в нджинкс, если он сам умеет в сеть?

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Ну я вот привел пример фрамеворка горилла, можешь на нем без проблем залепить веб сайт, стандартные шаблоны для страниц ну и т.д.

mx__ ★★★★★
()
Ответ на: комментарий от Zhbert

Хотя разницы-то между ними вообще нет. Большой микросервис уже монолит :) А маленький монолит в чем-то микросервис.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

го реально хорош для своей ниши - погружения python-легаси в csp Хоара и ближее к железу

в остальном это буквально труд для «подневольных» ибо вместо копулятора и его эвристик предлагают знаменитое (и да есть где оно адекватно)

if err != nil {
.
.
.

golang буквально компромисс пусть код будет запрокрустирован для нашего робота но пока люди дешевле

qulinxao3 ★☆
()
Ответ на: комментарий от Zhbert

Но работает-то оно на бэкенде, а не в браузере.

Если оно плюется чистым html то и фронтенд не нужен. А так да в браузере окромя js вроде ничего не пашет. Но так и без js ведь тоже можно.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Go: by overriding the http module.

Далее там пример:

{
    "type": "external",
    "working_directory": "/www/chat",
    "executable": "bin/chat_app",
    "user": "www-go",
    "group": "www-go",
    "arguments": [
        "--tmp-files",
        "/tmp/go-cache"
    ]
}

Видимо, он позволяет не заморачиваться с полноценным развёртыванием аппликухи где-то рядом с нджинксом и настройкой реверс-прокси, а просто взять бинарь гошного приложения (да, там один бинарь, что офигенный плюс) и указать его как источний для определённого локейшена. То есть запрос будет лететь в нджинкс, а дальше он сам запустит бинарь и отработает им запрос.

Выглядит удобно, кстати.

Zhbert ★★★★★
()
Ответ на: комментарий от mx__

Если оно плюется чистым html то и фронтенд не нужен.

Да. Хотя щас так не модно.

А так да в браузере окромя js вроде ничего не пашет.

Вот тут я уже давно не следил. Кажется, что да. Вроде был ещё какой-то Svetle.

Но так и без js ведь тоже можно.

И даже нужно. Хотя я иногда думаю, что местами он полезен…

Zhbert ★★★★★
()

Может я что-то упускаю?

this.

На Go есть всякие штуки, типо Gin. Можно неплохо писать «сайты» в связке с htmx или новомодный DataStar. Ну и с api к react, vue, etc. в общем, всё есть. Народ во всю юзает и пишет «сайты».

Я ещё на Hugo шлёпаю, он тоже на Go.

th3m3 ★★★★★
()
Ответ на: комментарий от Zhbert

Видимо, он позволяет не заморачиваться с полноценным развёртыванием аппликухи где-то рядом с нджинксом и настройкой реверс-прокси, а просто взять бинарь гошного приложения (да, там один бинарь, что офигенный плюс)

В смысле, сами же написали там всего один бинарь, запускаешь и так все пашет а рядом ngnix или вообще его нет, дело 10ое.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

1. wasm жив!

2. Pyodide и прочие трансляторы в wasm модных язычков с минимальной js ( Для последних браузеров ваще можно без - чисто готовый байтиков_поток форматный васме)

qulinxao3 ★☆
()
Ответ на: комментарий от mx__

Перечитай, пожалуйста, ещё раз. Там есть такие магические слова, как локейшены и реверс-прокси.

Zhbert ★★★★★
()
Ответ на: комментарий от qulinxao3

Заместо JS или PHP. Вдруг WAP-браузеры(NetFront), не понимающие ни один из них, смогут понять написанное на Go. Например кнопки со вложенной гиперссылкой, которые начнут прыгать при наведении на них. Может такое можно сделать и на CSS, но WAP-браузер такое явно не поймёт

Tyse_EX
() автор топика
Ответ на: комментарий от Tyse_EX

Ты ректально как-то идёшь к решению задачи. Начни с изучения стандарта WAP и как там писались странички…

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 1)
Ответ на: комментарий от Zhbert

Начни с изучения стандарта WAP

Уже есть страница, писана на XHTML, даже CSS украшена. Осталось только захостить и с телефона в сеть выйти. Если вдруг всё заработает, хочу накинуть ещё чего-нибудь(Golang). Решил, что лучше будет накинуть этого чего-нибудь сейчас. Если WAP не поймёт - оно просто не сможет рендериться.

Tyse_EX
() автор топика
Последнее исправление: Tyse_EX (всего исправлений: 2)
Ответ на: комментарий от Tyse_EX

Проблема у тебя не с Go и не со страничкой. Проблема у тебя в том, что ты восторженный новичок и сейчас готов даже то небо, даже Аллаха написать на Go, для чего он не приспособлен. Лучше загугли вообще инструменты для написания шаблонов для фронта, станет полегче.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от No

Смотрю первые страницы гайда. Жуть какая… Но, наверное, если в одном бинарнике описать HTML-хост и в нём же саму страницу, то, наверное, будет какой-то профит

Tyse_EX
() автор топика
Ответ на: комментарий от Tyse_EX

Еще раз - нафига? Ты понимаешь, что сложность сопровождения будет высокая? Спецов по Джанго пруд пруди и средства разработки есть, а у тебя будет хз что - гланды через жопу вырывать лишь бы клещи те самые были.

Надо фронт - бери Джангу, Ангуляр, Реакт - тысячи их.

LongLiveUbuntu ★★★★★
()
Последнее исправление: LongLiveUbuntu (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

Не, мне просто было интересно узнать, можно ли, и делал ли так кто-то. Я уже понял, что на Go пилить фронтэнд не надо

Tyse_EX
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Смешались в кучу кони, люди. При чём тут Django? Django - это фреймворк. Топик про язык программирования. В Go есть свои фреймворки.

Автор топика же вообще ищет аналог JSP/PHP, чему Django аналогом ни в коей мере не является (и слава Богу!).

Chiffchaff
()
Ответ на: комментарий от Tyse_EX

Именно так. Но я нигде не нашёл упоминаний, что так можно

Так можно только в PHP и пусть оно там и остается. Это самый безумный подход к разработке, приводящий к небезопасному и нечитаемому говнокоду.

Chiffchaff
()
Ответ на: комментарий от LongLiveUbuntu

Концептуальная разница, что PHP - это язык программирования. А RoR - фреймворк, написанный на языке программирования Ruby. Это разные вещи.

Фреймворк - это нечто вроде набора библиотек и прочего кода, который облегчает выполнение каких-то типовых задач. Например, разработку веб-сайтов, или бэкендов веб-сайтов, или, скажем, обработку стримов данных, или реализацию ETL.

Фреймворки есть практически в каждом языке. Поэтому странно сравнивать язык и фреймворк. Правильно сравнивать либо два языка, либо два фреймворка.

С тем лишь небольшим исключением, что PHP - не универсальный язык, во всяком случае, не задумывался таким. Поэтому в нём на уровне конструкций языка поддерживаются некоторые вещи, специфичные для веб-разработки.

Но время показало, что это упрощение вызывает гораздо больше проблем, чем решает.

Chiffchaff
()
Ответ на: комментарий от LongLiveUbuntu

Тут сравнение инструментов разного уровня. Надо тогда сравнивать Django с (FastHTTP)[https://github.com/valyala/fasthttp], например.

Ну и потом, автор топика даже задачу внятно сформулировать не смог, которую надо решить.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Шаблоны на eruby это один в один ASP и весьма похоже на PHP. Можно всю логику засандалить прямо в шаблонах, легко. Но так не принято. На голом пыхе тоже давно никто не пишет, там такие же фреймворки. Никакой разницы между рельсами и пыхом по большому счету нет и не было.

bread
()
Ответ на: комментарий от Chiffchaff

PHP - не универсальный язык

Как там в криокамере?

bread
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.