
Александр
26.02.2018
18:12:14
чорд, не сдержался

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

Aleksandr
26.02.2018
19:34:23

Arch
26.02.2018
19:35:39

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

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

Olzhas
27.02.2018
08:11:33
вообще не от этого зависит

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

Arch
27.02.2018
09:08:21

Daniel
27.02.2018
09:08:39
вам просто повезло, коллега
не надо личный опыт абсолютизировать

Arch
27.02.2018
09:08:59

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
Кто как хочет так и... а потом что-то становится мейнстримом

Daniel
27.02.2018
10:04:01

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

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