@gogolang

Страница 1212 из 1630
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
Теперь бы еще с дедлоками разобраться)
Если все горутины заблокированы(ждут что-то из канала), то наступает deadlock.

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

Если все горутины заблокированы(ждут что-то из канала), то наступает deadlock.
А получается если мы закроем канал из которого они ждут, то и они закроются?)

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 для чтения из канала. Когда канал будет закрыт и в его буфере не будет значений, программа выйдет из цикла.

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
Посмотри https://gobyexample.com/range-over-channels
Да, он закроется, но только после того как в канале не останется сообщений.

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
foreach?!
В чем, собственно, проблема?

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

Никита
06.07.2018
19:08:17
https://m.habr.com/post/308198/
Как по мне, уровень абстракций в этом коде слишком большой

По крайней мере, я бы такую структуру проекта не выбрал :)

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
На самом деле - просто
Ну да api делаешь для каждого

И функционал минималистичный

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
Есть же вполне себе живучие монолиты Это я к тому, что подход надо подбирать исходя из задачи, а не плыть на волне мейнстрима/хайпа

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