
Daniel
08.09.2018
17:55:02
ну вот мы тут думаем, как завезти compile-time контроль иммутабельности в go.
коллега Роман целый пропозал написал.
а я свой не написал пока, но напишу обязательно

snip
08.09.2018
17:56:15
Я даже думаю что дженерики и обработку ошибок им пропихивают откуда то сверху
Потому что сделать это просто и при этом правильно как то не получается

Google

Daniel
08.09.2018
18:00:06
ну вот именно пропозал Романа оставляет ощущение чуждости, да

Roman
08.09.2018
18:00:31

Daniel
08.09.2018
18:00:42
в первую очередь потому, что слишком многовариантные конструкции позволяет делать
по мне, так надо выделить два-три основных применения а все остальное пользователю конфигурять не давать

Roman
08.09.2018
18:02:06

Alexander
08.09.2018
18:02:14
щас бы иммутабельность на уровне языка, как в кложурке.

Daniel
08.09.2018
18:02:40
кложурка - она ведь лисп. а лисп - это чистые функции

Roman
08.09.2018
18:05:29
@onokonem кстати как думаешь кому можно бы было на review отправить? кто будет заинтересован?

Daniel
08.09.2018
18:05:38
пока непонятно
у нас тут или хейтеры go, или хейтеры иммутабельности :)

Roman
08.09.2018
18:06:25
аналогично, в любом случае ещё на форум выставлю как только последнии штрихи дорисую
у нас тут или хейтеры go, или хейтеры иммутабельности :)
хейтеров иммутабельности существовать не может, могут существовать только люди которые работают одни над проектами не более 5к LOC и следственно не понимают зачем всё это ну и конечно безответственные люди которым "и так сойдёт, меня это не затронет"

Google

Roman
08.09.2018
18:09:49
software engineering is all about trade offs

[Anonymous]
08.09.2018
18:10:04
Кстати, я вот всегда замечал что последователи ФП яростно дрочатъ на иммутабильность, неизменность данных (из-за этого не юзают циклы, предпочитая рекурсию и пр.). Но почему в проде всякие Хаскели и Кложуры абсолютно не популярны?

Roman
08.09.2018
18:10:51

Pavel
08.09.2018
18:15:29

Roman
08.09.2018
18:16:11

Subbotin
08.09.2018
18:16:54

Pavel
08.09.2018
18:16:57

snip
08.09.2018
18:18:56

Pavel
08.09.2018
18:19:16
ключевое слово "как-то"))
Просто ты давишь за что-то абстрактное. Но у тебя есть большие открытые проекты и куча багов и PR. Покажи примеры.

Daniel
08.09.2018
18:19:38
вручную их анализировать, что ли?!

Pavel
08.09.2018
18:19:50

Алексей
08.09.2018
18:19:52
Парни, а как вы организовываете свой код?
Придерживаетесь ли вы правил дядюшки боба (про 4 layer), или же вы все разделяете? К примеру go way, это иметь в домене entity и интефейсы сервсиов, репозиториев. А дробить пакеты под enity, интерфейсами для репозиториев, сервисов и хэндлеров считается вроде как не кошерно.

Pavel
08.09.2018
18:20:50
Эти данные в пропозале только поднимут ему ценность.

Roman
08.09.2018
18:22:45
Просто ты давишь за что-то абстрактное. Но у тебя есть большие открытые проекты и куча багов и PR. Покажи примеры.
Вы мне за это заплатите?)) Мне сейчас никто за этот пропосал не платит, я можно сказать дарю комьюнити своё время ради общего блага. Ты не поверишь сколько нервов и времени у меня уже ушло на данный документ а ещё предстоит сравнивать его с другими предложениями.
Я вам просто скажу, что вид homo sapiens сделало доминирующим 2 способности:
1. способность абстрактного мышления
2. способность принимать гипотезы всерьёз
если вы считаете, что описанные сценарии не могут быть опасными, тогда я вам ничем помочь не могу.

Pavel
08.09.2018
18:24:03
Я не понял тут отрицают что данные по большим открытым проектам сделают пропозал лучше?

Алексей
08.09.2018
18:24:24

Daniel
08.09.2018
18:24:35
жалуются на свою неспособность быстро такие данные собрать

Pavel
08.09.2018
18:24:47
В чем проблема, ты говоришь что в больших проектах — проблемы. Факт чек читателям делать что ли?

snip
08.09.2018
18:25:53
Если проблема есть значит и реальные кейсы должны быть иначе это надуманная проблема

Google

Pavel
08.09.2018
18:26:02

Daniel
08.09.2018
18:26:02
хотят - пусть делают

Pavel
08.09.2018
18:27:03
Топовый НЛП.

Roman
08.09.2018
18:27:15
@selslack Павел, вы не поняли сути моих слов.
Суть проста: я человек. У меня 14 часов в день максимум. Я просто не успеваю. Детальный анализ проблем таких проектов обойдётся недёшево.
Если же это был намёк мне помочь подкрепить документ аргументами из больших проектов на Go - с радостью! Очень буду рад!

Daniel
08.09.2018
18:27:35

eugene
08.09.2018
18:28:28

snip
08.09.2018
18:29:03

Roman
08.09.2018
18:32:09

eugene
08.09.2018
18:33:02

Roman
08.09.2018
18:34:04
большинство концепций достаточно объяснить приближенными примерами, потому-что у хорошего разработчика достаточно хорошее абстрактное мышление для выявления смысла и выгоды

snip
08.09.2018
18:36:21
Ну вот го это не про концепции это про реалии, если концепция верная но в реальности не встречается значит не нужно
В го нет многих правильных концепций и подозреваю, что многие из них никогда не появятся

eugene
08.09.2018
18:40:10

Pavel
08.09.2018
18:40:50


Roman
08.09.2018
18:40:50
Ну вот го это не про концепции это про реалии, если концепция верная но в реальности не встречается значит не нужно
Go это не про "банальную простоту синтаксиса". Go это про устранение легаси, иной подход к конкуррентности и устранение неправильных концепций таких как наследование имплементации и прочих, которые показали себя нехорошо в прошлом.
mutable shared state встречается в реальности в абсолютно каждом вашем проекте! Будь то 1к LOC или 2kk LOC. Slice aliasing это mutable shared state, и вы с ним бессомненно часто встречаетесь, вы просто привыкли с ним жить и копировать слайсы (slow + boilerplate).
Pointer aliasing это mutable shared state и встречается он не реже.
а то с чем мы встречаемся абсолютно всегда - стоит упрощать и делать более безопасным в применении, о чём собственно вся эта тема

A
08.09.2018
18:43:45
Вот что они в Го 2 с легаси будут делать?!

Roman
08.09.2018
18:44:02

snip
08.09.2018
18:44:51

Roman
08.09.2018
18:45:37

Google

Roman
08.09.2018
18:46:18
если вы её не видите или видить не хотите, тогда конечно для вас её нет))

snip
08.09.2018
18:46:34
Ну вот пока никто не привёл примеров из реальной жизни, типа за последний месяц три бага словил которых не было бы если бы был const

Roman
08.09.2018
18:46:54

snip
08.09.2018
18:47:28

Roman
08.09.2018
18:48:58

snip
08.09.2018
18:49:35

Pavel
08.09.2018
18:49:44

Admin
ERROR: S client not available

Roman
08.09.2018
18:50:23

Pavel
08.09.2018
18:50:38
У вас будет больше оплачиваемого времени улучшать го.

Peter
08.09.2018
18:50:39
Иногда конечно хочется объявить константную ошибку или массив, но на практике оказывается, что это не особенно нужно

Pavel
08.09.2018
18:50:59
Платят там вроде нормасик.

Alexey
08.09.2018
18:53:17

eugene
08.09.2018
18:54:14

Roman
08.09.2018
18:54:56

Alexey
08.09.2018
18:57:50

Roman
08.09.2018
18:59:08

Alexey
08.09.2018
19:01:55

Roman
08.09.2018
19:02:38

Google

Alexey
08.09.2018
19:02:56
ну, сейчас тебя заклюют )
тут не любят предложений добавить "лишних" фич

Roman
08.09.2018
19:04:25
я-ж евангелист))

Alexey
08.09.2018
19:04:57

Daniel
08.09.2018
19:07:04
я уже говорил и повторю

Alexey
08.09.2018
19:07:26
Это там еще строчки иммутабельные

Daniel
08.09.2018
19:08:04
единственный реалистичный сценарий - это сделать линтер и сделать его популярным.
а уж потом и разрабы go подтянутся

Roman
08.09.2018
19:08:12

Alexey
08.09.2018
19:08:35
тухло не с точки зрения возможностей языка, а с точки зрения адопшена

Daniel
08.09.2018
19:09:04
а не похер ли нам на стандартную либу?

Roman
08.09.2018
19:09:22

snip
08.09.2018
19:09:28

Daniel
08.09.2018
19:09:56

Roman
08.09.2018
19:10:18

snip
08.09.2018
19:10:30