
ainu
17.03.2017
07:26:20
Если открыть апи в браузере, он *обязательно* дернет favicon.
А ситуацию "что отдаст" надо контролировать.
Любым способом
Поддержка фавиконки для апи гарантирует что этот вопрос учтен и при необходимости через год отдать статику проблем не возникнет.

Google

Oleg
17.03.2017
07:30:26

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

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?

Andrew
17.03.2017
07:58:58

Slach
17.03.2017
07:59:13

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
вот я думаю, что это одно и то же

Andrey
17.03.2017
09:56:10

i
17.03.2017
10:08:56

Phil
17.03.2017
10:09:25

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

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

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

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

Мерлин
17.03.2017
10:51:22

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

Мерлин
17.03.2017
10:53:10

Slach
17.03.2017
10:53:20

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

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?

Andrew
17.03.2017
10:59:29

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

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

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

Andrew
17.03.2017
11:00:35

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
никто никому ничего не должен, но глупо делать иначе

Andrew
17.03.2017
11:03:50

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

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

Aleksey
17.03.2017
11:04:32

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

Andrew
17.03.2017
11:05:00

Aleksey
17.03.2017
11:05:56

Andrew
17.03.2017
11:06:19

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

Andrew
17.03.2017
11:06:40

Daniel
17.03.2017
11:06:47

Aleksey
17.03.2017
11:07:29

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

Mike
17.03.2017
11:08:41

Andrew
17.03.2017
11:09:18

Mike
17.03.2017
11:09:23

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

Mike
17.03.2017
11:09:49
на языке конфига нгинкса?))
if (statement) {}
как и везде