
GoodMoodDealler
06.07.2018
17:48:53
А ну да
Это же канал
Все верно
У него нет индекса

Google

GoodMoodDealler
06.07.2018
17:50:19
Так вопрос был в том почему у меня валится цикл на 0 элементе слайса

Владимир
06.07.2018
17:51:16
В слайс надо append
А вы как map[int]string добавляете

GoodMoodDealler
06.07.2018
17:52:00
Понял
Спасибо

Владимир
06.07.2018
17:52:44
в мапе можно resul[i] = ololo, а в слайс надо slice = append(slice, ololo)

Vadim
06.07.2018
18:01:43
У него нет поинтера на какой-нибудь массив.

GoodMoodDealler
06.07.2018
18:03:03
Я уже понял что фигню сморозил
Что он пустой

Vadim
06.07.2018
18:03:22
Попробуйте или через make, или results []string{}. Поинтер на пустой массив

GoodMoodDealler
06.07.2018
18:03:29
Так можно было бы делать если бы я создавал массив

Vadim
06.07.2018
18:03:35
Да

Google

GoodMoodDealler
06.07.2018
18:03:43
Я это понимаю
Затупил)

Vadim
06.07.2018
18:04:11
?

GoodMoodDealler
06.07.2018
18:04:56
Теперь бы еще с дедлоками разобраться)

Vadim
06.07.2018
18:10:00

GoodMoodDealler
06.07.2018
18:10:52
Понять бы почему)

Vadim
06.07.2018
18:16:40
Если тип канал int, то 0, если string, то "".

GoodMoodDealler
06.07.2018
18:17:51
А как тогда правильно поступать?

Vadim
06.07.2018
18:17:53
Чтобы проверить закрыт канал или нет, можно использовать такую структуру: Value, ok := <- chan int.
Если ok будет false, то значит что канал закрыт

GoodMoodDealler
06.07.2018
18:18:32
Ааааа
Вот это я затупил

Vadim
06.07.2018
18:19:29
Также, вы можете использовать цикл for each для чтения из канала. Когда канал будет закрыт и в его буфере не будет значений, программа выйдет из цикла.

GoodMoodDealler
06.07.2018
18:23:16

Vadim
06.07.2018
18:24:37

Google

GoodMoodDealler
06.07.2018
18:26:19
С каналами для меня самая сложная тема наверное

Vadim
06.07.2018
18:37:24
Канал по сути очередь данных. Одни горутины в эту очередь данные закидывают, другие горутины забирают.
https://gobyexample.com/range-over-channels
For each работает до тех пор, пока есть данные в канале и канал не закрыт, после происходит выход из цикла. Если же вы просто берёте данные из закрытого канала, то вам будут возвращаться дефолтные значения.

GoodMoodDealler
06.07.2018
18:39:25
Посмотри https://gobyexample.com/range-over-channels
Тут пишут что если закрыть канал то и for-range закрыться должен

Vadim
06.07.2018
18:40:34

GoodMoodDealler
06.07.2018
18:40:52

Vadim
06.07.2018
18:41:09
Тогда используйте foreach

Nazary
06.07.2018
18:46:02

Никита
06.07.2018
18:46:18
Можно ссылку?

Nazary
06.07.2018
18:46:41
https://m.habr.com/post/308198/

Никита
06.07.2018
18:46:57
Ну не сказать, чтобы много.

Daniel
06.07.2018
18:47:25

Nazary
06.07.2018
18:47:36
Очень
Или я не правильно понял?

GoodMoodDealler
06.07.2018
18:48:11
То есть одна программа для всего
Там неважно сколько файлов

Google

Vadim
06.07.2018
18:49:09

Daniel
06.07.2018
18:49:56
Нет такого слова

Никита
06.07.2018
19:08:17
По крайней мере, я бы такую структуру проекта не выбрал :)

Nazary
06.07.2018
19:09:30
Мне кажется адекватно реализованный 2 подход самое то
Не?

Никита
06.07.2018
19:11:19
Стиль Rails?

Nazary
06.07.2018
19:11:41
Да

Никита
06.07.2018
19:11:41
Я говорю за стиль который предлагает автор

Admin
ERROR: S client not available

Nazary
06.07.2018
19:11:48
Ну я понял
Вы бы какой выбрали?
Для среднего проекта?

Никита
06.07.2018
19:12:15
Ни один из перечисленных наверное
Но нечто близкое к Rails подходу

Nazary
06.07.2018
19:14:41
А вот есть пакет который работает с пользователями, другой с записями (например)
И все они требуют подключения к дб
Как передавать конект?

Никита
06.07.2018
19:15:14
Я не понимаю зачем разбивать на несколько пакетов
Проще использовать общий пакет, допустим, models

Google

GoodMoodDealler
06.07.2018
19:15:51
Микросервисыыыыы

Никита
06.07.2018
19:15:52
И в нем иметь бизнес правила

Nazary
06.07.2018
19:16:14
Кажется я понял

Никита
06.07.2018
19:16:33
И пакет usecases, который в себе содержит бизнес логику и взаимодействует с пакетом models
Я так делаю

Nazary
06.07.2018
19:17:15
Благодарю
Буду пробовать

GoodMoodDealler
06.07.2018
19:17:35

Никита
06.07.2018
19:18:11
Ну как-то пока не приходилось использовать
Тренды дело такое
Скоро будем RPC использовать вместо REST

Daniel
06.07.2018
19:18:40
На самом деле - просто

GoodMoodDealler
06.07.2018
19:40:46
И функционал минималистичный

Daniel
06.07.2018
19:48:04
Да
И рыдаешь, когда ты обновил либу, от которой завися 5 сервисов из 7

Alan
06.07.2018
20:50:56
имхо: микросервисы - это перенос сложности кода в сложность интеграции. т.е. конечный профит не так велик, как многие считают

Daniel
06.07.2018
20:53:38
Конечный профит сложно измерить
Пока монолит жив - он отрицательный
Как помрет - бесконечный

Alan
06.07.2018
20:56:34
Есть же вполне себе живучие монолиты
Это я к тому, что подход надо подбирать исходя из задачи, а не плыть на волне мейнстрима/хайпа