@proGO

Страница 1256 из 1674
Александр
26.02.2018
18:12:14
чорд, не сдержался

Никита
26.02.2018
19:25:05
Никак не могу понять, в чем разница между Serve и ListenAndServe?

Arch
26.02.2018
19:35:39
Никак не могу понять, в чем разница между Serve и ListenAndServe?
Лисн и серв принимает стринг в виде адреса, а серв принимает стректуру листенера

Google
Никита
26.02.2018
19:39:18
Это я понял

А существенная разница в чем?

У серва указано что он создает горутину под каждый запрос

а listenAndServe как поступает?

Aleksandr
26.02.2018
19:40:58
внутрь загляни. это один и тот же код

Никита
26.02.2018
19:41:57
То есть разницы никакой?

Aleksandr
26.02.2018
19:45:30
функционально никакой

в одном случае ты создаешь listener и передаешь в Serve, в другом за тебя создают и передают в Serve

Никита
26.02.2018
19:49:25
Понял

Кстати, как работает writeTimeout?

Daniel
26.02.2018
19:49:38
на самом деле - листенера, передающегося отдельно, можно замокать

Никита
26.02.2018
19:49:45
Поставил writeTimeout 10 sec

Сделал задержку в хендере запроса на 15 сек

Google
Никита
26.02.2018
19:50:17
Но соединение не разорвалось

Клиент дождался 15 секунд и получил ответ

Почему так?

Daniel
26.02.2018
19:51:52
writeTimeout - это таймаут на операцию записи в сокет

он случится может только если буфер сокета переполнен

Никита
26.02.2018
19:52:39
Значит неправильно понял смысл

Daniel
26.02.2018
19:52:40
что, в свою очередь, может произойти при очень специальных обстоятельствах

Никита
26.02.2018
19:52:49
А ReadTimeout

Что делает он в таком случае?

Daniel
26.02.2018
19:54:15
а вот тут - данных в сокете не образовалось за указанное время

Никита
26.02.2018
19:54:50
То есть, например, у клиента медленная сеть и тело запроса долго доходит до клиента?

И в таком случае сервер закрывает соединение с клиентом?

Daniel
26.02.2018
19:58:03
ага

на самом деле - тут тоже довольно специальные условия нужны

клиент отправляет данные пакетами

и в современных сетях медленно - это не медленно доставляемые пакеты, а большие интервалы между пакетами

на что там read timeout действует - я не помню

Никита
26.02.2018
20:00:02
А есть ли существенный смысл ставить write read таймауты?

Daniel
26.02.2018
20:00:11
на "прочесть целиком" или на "прочесть хоть кусочек"

ну - какие-то надо ставить

Google
Alexey
27.02.2018
04:16:15
Ого!

Kirill
27.02.2018
04:16:35
Alexey
27.02.2018
04:17:15
?
Щорс же банил его) видимо, отмотал своё

Kirill
27.02.2018
04:18:12
а, это человек-закройзасобойфорточку?

Alexey
27.02.2018
04:19:01
Про форточку не помню)

Kirill
27.02.2018
04:19:49
А ну - который заходил в чат и выходил постоянно

Alexey
27.02.2018
04:35:13
Ага, он самый

Kirill
27.02.2018
04:36:32
чату, imo, нужен тамбур %)

some_random_anonymous
27.02.2018
05:10:31
чату, imo, нужен тамбур %)
Так он итак есть: https://t.me/goflood

Den
27.02.2018
08:11:04
Когда нужно начинать делить прогу на микросервисы, и до каких пор достаточно корутин? Есть ли какой нибудь менеджер горутин?

Olzhas
27.02.2018
08:12:41
если архитектура позволяет разделить на микросервисы и разработка микросервисов будет удобна в дальнейшем - пожалуйста

Никита
27.02.2018
08:20:46
Не надо делать микросервисы ради микросервисов

Daniel
27.02.2018
08:40:02
Когда нужно начинать делить прогу на микросервисы, и до каких пор достаточно корутин? Есть ли какой нибудь менеджер горутин?
микросервисы и горутины ортогональны, не надо их противопоставлять а делить, к сожалению, надо на этапе проектирования

Vadim
27.02.2018
08:42:20
ни у кого нет норм примера, как писать в unix socket и слушать с него респонс? Я уже всю голову сломал((( sock := `/tmp/geth.ipc` conn, _ := net.Dial("unix", sock) method := `{...}\n` num, err := conn.Write([]byte(method)) Write же возвращает количество записанных byte

Vasilii
27.02.2018
08:42:21
На этапе проектирования каждой итерации/спринта или всего проекта?

Daniel
27.02.2018
08:43:00
на этапе разработки архитектуры

Vasilii
27.02.2018
08:44:03
То есть, правильно ли я понимаю, что предполагается нечто похожее на водопад, где мы один раз спроектировали всю архитектуру и она потом сильно не меняется?

Daniel
27.02.2018
08:44:48
к сожалению, да. но это и правда лучше сделать так. разработку архитектуры по agile делать все одно не получиться

Google
Vasilii
27.02.2018
08:58:51
Мне кажется, это больше зависит от проекта. Очень много кейсов, публикаций и докладов, где советуют начинать с монолита и потом из него вытаскивать изолированный функционал в микросервисы

Вот хороший пример такой статьи

The article by Paul Dix calls “The Decomposable Monolith: Long Live the Monolith, Long Live Services!” Code examples are available but without a code highlighting ? #architecture #development #microservices https://www.influxdata.com/blog/decomposable-monolith-long-live-monolith-long-live-services/

Надеюсь ссылка на другой канал не противоречит правилам чата

Admin
ERROR: S client not available

Daniel
27.02.2018
09:06:20
Мне кажется, это больше зависит от проекта. Очень много кейсов, публикаций и докладов, где советуют начинать с монолита и потом из него вытаскивать изолированный функционал в микросервисы
так и я советую то же самое! монолит существенно дешевле в разработке, так что на этапе MVP лучше микросервисы отложить. но вот "вытащим из монолита изолированный сервис" - это утопия.

Daniel
27.02.2018
09:08:39
вам просто повезло, коллега

не надо личный опыт абсолютизировать

Arch
27.02.2018
09:08:59
не надо личный опыт абсолютизировать
Как правило мвп пиши GOвнокод, потом, если проект взлетит подопрете это все костылями ?

Daniel
27.02.2018
09:10:13
да, и этот подход оправдан

не все, правда, готовы в этой содомии участвовать

Arch
27.02.2018
09:10:36
Веками отработанная тактика ?

Vasilii
27.02.2018
09:11:37
Пример Amazon говорит что даже в огромном монолите это возможно https://thenewstack.io/led-amazon-microservices-architecture/

Daniel
27.02.2018
09:16:45
точно ли об этом говорит пример амазон? насколько я знаю, они создали новую систему с нуля рядом, и постепенно перекладывали функции со старой на новую. они не заставляли монолит работать в сотрудничестве с микросервисами.

Vasilii
27.02.2018
09:24:08
“We went through the code, and pulled out functional units that served a single purpose, and we wrapped those with a web service interface,” he said. For example, there was a single service that rendered the “Buy” button on the retailer’s product detail pages. Another had the function of calculating the correct tax during checkout.

Цитата от Rob Brigham

Alexander
27.02.2018
09:25:49
Кто как хочет так и... а потом что-то становится мейнстримом

Google
Vasilii
27.02.2018
10:04:41
Аналогично! Видимо у нас полное согласие )

Vlad
27.02.2018
11:54:28
Господа, есть интересная задача. Есть две реляции в БД: условно реляция A и реляция B. Нужно написать конфигурационный файлик, который бы "маппил" A.columnX_1 -> B.columnZ_2 (т.е. каждый атрибут реляции А на атрибут реляции B) Из Go этот файлик прочитать и на основании этих данных строить SQL-запросы. Если кто сталкивался с подобным таском и подскажет, буду благодарен.

Alexey
27.02.2018
11:55:57
А конфигурационный файлик прям везде разный будет?

Vlad
27.02.2018
11:56:38
Нет, структура таблиц, по-идее. меняться не будет

Суть этого таска - обновить колонки в реляции B на основании данных в A.

Daniel
27.02.2018
11:57:35
а?!

Vlad
27.02.2018
11:58:28
Это очень краткий вопрос, честно, не совсем понял "посыла". Не могли бы Вы чуть-чуть развернутее, пожалуйста?

Alexey
27.02.2018
11:59:38
Я так думаю, что подразумевается, что ничего не понятно про "обновление колонок на основании данных". Можно тоже чуть чуть развёрнутее? Update a set col1 = b.col2 ?

Alexander
27.02.2018
11:59:54
Странный таск...

Alexey
27.02.2018
12:00:07
Или вообще имена колонкам поменять?)

Arch
27.02.2018
12:01:22
А по моему все просто, надо просто внимательно читать что написал автор

Берем из файла настроек структуру и из базы а в соответсвии с этой структурой переносим в базу б данные

Michael
27.02.2018
12:03:18
Берем из файла настроек структуру и из базы а в соответсвии с этой структурой переносим в базу б данные
>Из Go этот файлик прочитать и на основании этих данных строить SQL-запросы. Это попахивает тем, что автор чего-то не договаривает

Alexey
27.02.2018
12:03:36
Ну тогда вообще { "tableX.name": "tableY.first_name", ... } Я сделаль

Страница 1256 из 1674