
Daniel
16.10.2018
17:20:34

Vyacheslav
16.10.2018
17:20:58
ну, да

Foxcool
16.10.2018
17:21:06
он иногда подклывает и подставляет не те модули

Daniel
16.10.2018
17:21:19
Да

Google

Foxcool
16.10.2018
17:21:21
например вместо errors какую-то версию с другого пакета

SkyCoffee
16.10.2018
17:21:23
А я бы горутинам дал канал, дождался результата от каждой горутины и только тогда os.Exit(0)

Vyacheslav
16.10.2018
17:21:34

Foxcool
16.10.2018
17:21:47
тренировка внимания
(:

Daniel
16.10.2018
17:22:08
Не, он сигнатуры же различает

Vyacheslav
16.10.2018
17:22:29
вообще все эти goimports и gofmt - великое таки благо

Marlik
16.10.2018
17:22:39

Daniel
16.10.2018
17:22:46
Или у вас в проекте два одноименных с одинаковыми методами?
Тогда это не лечится

Vyacheslav
16.10.2018
17:23:24

SkyCoffee
16.10.2018
17:24:12
можно aliasы разные поставить, если еще не слишком поздно

Nikolay
16.10.2018
17:24:40
import pd "github.com/golang/pandas"
import np "github.com/golang/numpy"

Дмитрий
16.10.2018
17:26:24

Google

Tishka17
16.10.2018
17:26:44
или канал
А как через канал дождаться неизвестное количество горутин? Отдельно считать их под мьютексом при запуске?

Daniel
16.10.2018
17:26:57

SkyCoffee
16.10.2018
17:27:42
запускаешь горутины и даешь им в аргументы канал. Ждешь, пока из канала придет сообщений столько, сколько у тебя горутин

Nikolay
16.10.2018
17:28:02

Tishka17
16.10.2018
17:28:02


Pawel
16.10.2018
17:28:06
товарищи, а вы вот как называете проекты - с андерскором, типа мой_проект или КемелКейсом типа МойПроект?
тот же и к пакетам вопрос?
я прост или упустил этот момент из виду, или не пишут об этом.
Тут есть одна житейская мудрость. Если не получается сразу придумать хорошее название (понятное, короткое, емкое, не меняющее смысл со временем), то надо лучше сразу брать что-то вообще отвязанное от смысла этой вещи.
Ну типа не уверен еще как будет называться продукт, не знаешь что точно будет делать какой-то модуль, не знаешь что именно будет стоять на каком-то сервере? Не пиши приблизительно. Пиши лучше какой-нибудь "XZ", "Vasya", "XXX", "Yozhik", "Lego", "Peppa", "Orange", "Jedi", похеру.
Смысл к абстрактному названию со временем прилипнет сам. Неточное же название будет все время путать, а переименование зачастую - дичайше геморойный процесс.
У меня например пакеты называются "микки маус", "дональд дак" "трамп" и так далее. И я прекрасно знаю что где лежит. Гугель свои внутренние штуки называет как разные инструменты, "дремель" например. Ну и стоит напомнить что фирмы, магазины, и бренды, не называются "производитель хипстерских телефонов", "в основном жрачка", и "дорогая одежда для баб".


Nikolay
16.10.2018
17:28:22

Tishka17
16.10.2018
17:28:42

Nikolay
16.10.2018
17:29:02
он вообще у тебя никуда за пределы основной горутины не идет
ну или той, где у тебя шедулер

Tishka17
16.10.2018
17:29:28
Ну горутина запускает 5 горутин. Каждая из них ещё сколькото
Например

Vyacheslav
16.10.2018
17:30:03
у них же свой каунтер в рамках "материнской", не?
зачем считать все одним?

Tishka17
16.10.2018
17:30:28
Ну материнская должна дождаться всех. Промежуточные ожидания не нужны

Nikolay
16.10.2018
17:30:59
будет async-await :)

Tishka17
16.10.2018
17:31:32

Vyacheslav
16.10.2018
17:31:37
разве в таком дереве ветка не должна ждать окончания своих веток, а ствол - только веток, которые от него и растут?

Google

Tishka17
16.10.2018
17:31:43
Так придется много канальчиков делать

Nikolay
16.10.2018
17:32:00

Tishka17
16.10.2018
17:32:19

Vyacheslav
16.10.2018
17:32:26
выглядит как боль в поддержке

Tishka17
16.10.2018
17:32:32
Ну waitgroup понятно

Pawel
16.10.2018
17:32:57

Nikolay
16.10.2018
17:32:57

Tishka17
16.10.2018
17:35:42

Nikolay
16.10.2018
17:36:06

Tishka17
16.10.2018
17:36:17


Pawel
16.10.2018
17:36:57
Тут есть одна житейская мудрость. Если не получается сразу придумать хорошее название (понятное, короткое, емкое, не меняющее смысл со временем), то надо лучше сразу брать что-то вообще отвязанное от смысла этой вещи.
Ну типа не уверен еще как будет называться продукт, не знаешь что точно будет делать какой-то модуль, не знаешь что именно будет стоять на каком-то сервере? Не пиши приблизительно. Пиши лучше какой-нибудь "XZ", "Vasya", "XXX", "Yozhik", "Lego", "Peppa", "Orange", "Jedi", похеру.
Смысл к абстрактному названию со временем прилипнет сам. Неточное же название будет все время путать, а переименование зачастую - дичайше геморойный процесс.
У меня например пакеты называются "микки маус", "дональд дак" "трамп" и так далее. И я прекрасно знаю что где лежит. Гугель свои внутренние штуки называет как разные инструменты, "дремель" например. Ну и стоит напомнить что фирмы, магазины, и бренды, не называются "производитель хипстерских телефонов", "в основном жрачка", и "дорогая одежда для баб".
вот ещё пара отличных имён для произвольного пакета или модуля
noxepy.com
burgundy.io
а вот пример фантазии гомосеков
com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.factories


Nikolay
16.10.2018
17:37:02

Tishka17
16.10.2018
17:37:32
Ну понятно, что в цикле читать пока не закрыт, ага.
Просто вдруг есть готовое

Nikolay
16.10.2018
17:38:18
ну хотя там все равно цикл, да

Tishka17
16.10.2018
17:39:16
Кстати. Вопрос. Вот для канала и мапы можно просчитать элемент и упасть в случае ошибки. А можно прочитать и получить значение ok тем же оператором (скобки, стрелка). Как сделать такое для своей функции?

Google

Tishka17
16.10.2018
17:41:04
Ну типа можно написать x=mymap[key]. А можно x,ok=mymap[key].

SkyCoffee
16.10.2018
17:41:33
Сделать структуру, в которую можно положить и ок, и ошибку
Или написать функцию, возвращающую result, error

Tishka17
16.10.2018
17:42:47
Пойду проверю. Но мне казалось, тогда я обязан всегда присваивать двум переменным

SkyCoffee
16.10.2018
17:43:43
да, придется result, _ = getMyMap(key)

Tishka17
16.10.2018
17:45:41
Ну а почему для операторов скобки и стрелка не так?

SkyCoffee
16.10.2018
17:46:49
Потому что канал хранит одно значение, а функция возвращает два

Tishka17
16.10.2018
17:47:21
Ну и тем не менее я могу прочитать значение, а могу значение и признак что он не закрыт одним оператором

Nikolay
16.10.2018
17:48:47
вкратце - так захардкожено, живите с этим

Tishka17
16.10.2018
17:49:20

SkyCoffee
16.10.2018
17:50:13
Можно найти и положительные моменты. Всегда понятно, сколько значений возвращает функция и какое из них берет код, вызывающий эту функцию

Tishka17
16.10.2018
17:50:48
не красиво что создателям языка можно такое делать, а юзерам нельзя
я так понял и переопределять операторы для своих типов тоже нельзя из коробки?

Nikolay
16.10.2018
17:56:56

Александр
16.10.2018
17:57:52
даже говорят дженерики есть
но тсс

Shub
16.10.2018
18:00:54

Александр
16.10.2018
18:03:11
просто они посчитали что так меньше ошибок
или читаемость лучше

Google

Shub
16.10.2018
18:05:03
там жесткая иерархическая структура. если кто-то из core авторов посчитал нужным - объяснять он никому ничего не обязан
для pr есть группа специально обученных обезьян

Pawel
16.10.2018
18:08:53
Я б забанил за оскорбление котнтрибьютеров Го
Ну что будет, если разрешить любому коубою писать свои джненрик контейнеры и кастомные операторы, мы примерно знаем

Shub
16.10.2018
18:10:17
и что же?
и кто "мы"?

Александр
16.10.2018
18:14:25

Shub
16.10.2018
18:14:39
лол

Nikolay
16.10.2018
18:18:52

Shub
16.10.2018
18:19:45
то есть скала отличается от го только возможностью написать кастомный оператор равенства для своих структур?
почему питон в скалу не превратился?

Nikolay
16.10.2018
18:20:11

Olzhas
16.10.2018
18:20:33
Го никак

Shub
16.10.2018
18:20:45
вполне себе может

Nikolay
16.10.2018
18:20:56

Shub
16.10.2018
18:21:10
каким боком тут jvm?

Nikolay
16.10.2018
18:21:11

Olzhas
16.10.2018
18:21:30

Nikolay
16.10.2018
18:21:53
каким боком тут jvm?
таким, что jvm-язык шейпится под нужды людей, использующих эту инфраструктуру, то есть, по сути, нужна совместимость с джавой