@gogolang

Страница 182 из 1630
ainu
17.03.2017
07:26:20
Если открыть апи в браузере, он *обязательно* дернет favicon.

А ситуацию "что отдаст" надо контролировать.

Любым способом

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

Google
Oleg
17.03.2017
07:30:26
Поддержка фавиконки для апи гарантирует что этот вопрос учтен и при необходимости через год отдать статику проблем не возникнет.
Странный аргумент. API не обязан вообще поддерживать открытие в браузере. 404 вернуть и ок. Зачем подстраивать программу под внештатные запросы?

ainu
17.03.2017
07:31:25
404 тоже вариант

Допустим сервис incrementer

по запросу /red

Oleg
17.03.2017
07:31:43
Вы видели, что бы какой-нибудь etcd или elasticsearch фавиконы вставляли?

ainu
17.03.2017
07:31:48
возвращает 1, 2, 3

https://api.github.com/favicon.ico

А это у эластика



etcd 404, это да

Oleg
17.03.2017
07:56:19
https://api.github.com/favicon.ico
Оу, не знал. Спасибо за информацию

Andrew
17.03.2017
07:56:29
http://api.vk.com/favicon.ico

Sergey
17.03.2017
07:57:28
Товарищи, созрел вопрос по поводу отказа от нджикс, в случае сервиса на Го

Google
Sergey
17.03.2017
07:58:27
Нджинкс же умеет кип элайв всякие, настройки крутые, умеет порождать процесы и все такое...неужели это заменяется компонентой Go?

Slach
17.03.2017
07:59:13
Товарищи, созрел вопрос по поводу отказа от нджикс, в случае сервиса на Го
ну запросы какие надо обслужить? динамические с обращением к базе??? если статику обслужить или балансировку сделать nginx тут вполне себе ок я чтото не помню чтобы fasthttp умел sendfile от операционки использовать

Sergey
17.03.2017
07:59:18
Или мы говорим про случай, когда мы не запоминаем состояние от запроса к запросу?

Slach
17.03.2017
08:02:56
ну HTTP как бы это подразумевает что он stateless протокол =) хранить или нет "состояние" внутри go демона ты уже сам определяй, в соответсвии с бизнес логикой если у тебя балансировка осуществляется прямо на клиенте (например отдельно обращается на discovery endpoint и потом сам выбирает endpoint наилучший для себя) и при этом логика приложения это не "раздача статики" а нечто с вычислениями и хождениями в базу и в другие http end point то nginx ПЕРЕД go тут может только latency добавить и ничем не поможет а если балансировка и отдача статики. то nginx с этим справляется весьма прилично

Sergey
17.03.2017
08:03:58
О, понял. Спасибо большое

Slach
17.03.2017
08:06:09
но опять же надо понимать как именно go работает с "большим кол-вом коннектов" может ли один го демон держать 100k TCP соединений и что он для этого использует я сейчас не про горутины =) т.е. если криво написать на go то может легче таки поставить пул гошных демонов за nginx а если писать прямо, то может статься что придется слишком низкоуровнево закопаться =)

ainu
17.03.2017
08:27:34
Весьма интересная статья. Там еще есть про яваскрипт фреймворки

#golang Интересный пост о будущем Go с анализом поисковых запросов вида "Why we moved from language X to language Y". Вкратце: у Go светлое будущее :) https://erikbern.com/2017/03/15/the-eigenvector-of-why-we-moved-from-language-x-to-language-y.html

Andrew
17.03.2017
08:33:44
Даже паскаль там есть!

Dmitry
17.03.2017
09:15:56
Есть разница между []int{} и make([]int, 0)?

i
17.03.2017
09:22:45
нет

Favoretti
17.03.2017
09:53:18
Есть :)

make() пре-аллокейтит память сразу, []int{} по первому ассайнменту, емнип

хотя make(..., 0) может критической разницы не будет

Daniel
17.03.2017
09:54:37
вот я думаю, что это одно и то же

Phil
17.03.2017
10:09:25
nginx не нужен, вообще-то
я так и не понял почему. файлики отдавать ты предлагаешь тоже самому писать?

Daniel
17.03.2017
10:12:51
все уже написано. но я-то предлагаю признать, что файлики не нужны

Google
Daniel
17.03.2017
10:13:13
in general

Andrew
17.03.2017
10:13:38
А в чём проблема отдавать файлики на Go?

Phil
17.03.2017
10:14:20
все уже написано. но я-то предлагаю признать, что файлики не нужны
да я уже прочитал. не знаю что написано. я сходу даже не знаю как правильно файл отдать. там же всякие рейнжи, сендфайлы, вся херня. не нужны файлики? это в век sphinx docs, jekyll и hugo?

А в чём проблема отдавать файлики на Go?
А можно пример в плейграунд с тестами рейнджей например

Andrew
17.03.2017
10:17:16
А можно пример в плейграунд с тестами рейнджей например
Рейндж это отдать файл с запрошенной позиции? В моём колхозе http.Handle("/", http.FileServer(http.Dir("./files"))) справляется с ними.

Для одного файла https://golang.org/pkg/net/http/#ServeFile

Phil
17.03.2017
10:19:37
Да, судя по доке умеет. Ok

Сдаюсь

Andrew
17.03.2017
10:21:21
За что я люблю Go, так это за богатство стандартных либ.

Daniel
17.03.2017
10:52:21
а зачем они?

Мерлин
17.03.2017
10:53:10
а зачем они?
Бложик Котики какие-нибудь Контент, в общем

Slach
17.03.2017
10:53:20
А в чём проблема отдавать файлики на Go?
вы знаете что такое sendfile ? проблем нет до тех пор пока о них не задумываться

Daniel
17.03.2017
10:53:41
контент 1. давно в базе 2. все равно требует обработки (шифрования) перед отдачей

Мерлин
17.03.2017
10:55:15
Slava
17.03.2017
10:55:37
хм, а разве дефолтный веб сервер на го умеет делать всякие ssl termination, бороться с медленными клиентами не хуже чем это делает nginx?

Mike
17.03.2017
10:56:50
вообще странное обсуждение. для каждой задачи есть свой инструмент. зачем изобретать велосипед на го если есть нгинкс, который много лет уже решает все проблемы, которые теоретически могли возникнуть?

Daniel
17.03.2017
10:56:57
1. чтобы их не было на файловой системе. 2. не понял вопроса. он точно про файлики?

Andrew
17.03.2017
10:57:03
вы знаете что такое sendfile ? проблем нет до тех пор пока о них не задумываться
Неа, не знаю. Могу только дословно перевести. Отправка файлов в Go есть. ?

Mike
17.03.2017
10:57:05
или это типичная болезнь системщиков "зачем мне лишний пакет, я сам все напишу"?

Google
Daniel
17.03.2017
10:57:52
о каком велосипеде идет речь?

ну вот о каком?

Andrew
17.03.2017
10:58:17
nginx вроде

Daniel
17.03.2017
10:59:11
что такого делает nginx, чего не умеет net/http?

Daniel
17.03.2017
10:59:31
(я вот знаю, что openssl делает лучше, чем net/http)

но давайте в эту сторону не сворачивать

Mike
17.03.2017
11:00:05
ну знаешь, оно все в машинный код компилится, что умеет го, чего не умеет машинный код?

Daniel
17.03.2017
11:00:16
давайте про файлики, и про их (не)нужность

а вот этой херни про машинный код - не надо

Mike
17.03.2017
11:01:42
нгинкс решает тонны проблем, которые за тебя уже подумали и реализовали, зачем свой велосипед изобретать и в процессе дырки оставлять? сервер не предназначен сам торчать наружу, для этого есть реверс-прокси, который посмотрит, что пришло, и мб форварднет серверу, мб сам отдаст, мб другому серверу форварднет

да и он тупо файлики быстрее откидывает, чем сервер

Daniel
17.03.2017
11:02:09
спасибо за ваше мнение

Mike
17.03.2017
11:02:51
а что это за разговор, если не обмен мнениями? или ты хочешь услышать аргумент, который скажет тебе, что 100% один подход работает, а другой нет? такого не бывает

на пхп знаешь ли тоже все можно сделать, и что теперь? забиваем на го, идем пыхать?

Aleksey
17.03.2017
11:03:12
Пачаны, у вас самый большой проект был, на сколько строк?

Daniel
17.03.2017
11:03:19
там написано "должно быть так", аргументов не приведено

если бы мне было интересно - я бы спросил про аргументы

но мне не интересно

Google
Mike
17.03.2017
11:03:40
никто никому ничего не должен, но глупо делать иначе

Mike
17.03.2017
11:04:14
просто потому что ты по сути переписываешь кусок нгинкса на го, тратишь на это время и усилия, ради бессмысленной цели "все в одном месте"

и потом еще это нужно поддерживать и отлаживать

Daniel
17.03.2017
11:04:26
я ничего не переписываю

Aleksey
17.03.2017
11:04:32
200-300 строк
300? Это что ли сайт-визитка?

Daniel
17.03.2017
11:04:35
все уже написано до меня

Andrew
17.03.2017
11:05:00
300? Это что ли сайт-визитка?
Пиратский бот для телеграмма

Aleksey
17.03.2017
11:05:56
Пиратский бот для телеграмма
А если нужно 10.000 строк, лучше другой яп взять?

Andrew
17.03.2017
11:06:19
просто потому что ты по сути переписываешь кусок нгинкса на го, тратишь на это время и усилия, ради бессмысленной цели "все в одном месте"
Например, я могу под капотом поковыряться. Например, content type изменить (не спрашивайте, для чего) ?

Daniel
17.03.2017
11:06:21
у меня самый большой - 16К строк

Andrew
17.03.2017
11:06:40
Aleksey
17.03.2017
11:07:29
у меня самый большой - 16К строк
И шибко удобно было столько кода писать?

i
17.03.2017
11:08:33
у меня 3000

Mike
17.03.2017
11:08:41
Например, я могу под капотом поковыряться. Например, content type изменить (не спрашивайте, для чего) ?
а в нгинксе не можешь как будто, он как будто все заголовки перезатирает и свои добавить не дает

Andrew
17.03.2017
11:09:38
А на каком языке условие пишется тогда?

Mike
17.03.2017
11:09:49
на языке конфига нгинкса?))

if (statement) {}

как и везде

Страница 182 из 1630