
Alexander
05.09.2018
19:16:01

Daniel
05.09.2018
19:19:22
я все же думаю, что const контейнера должен распространяться и на содержимое
но!

Google

Daniel
05.09.2018
19:20:36
с моей точки зрения const модификатор не типа, но экземпляра

Alexander
05.09.2018
19:20:58
Ну, вобще-то да. Уж если мы говорим что контейнер не меняется, то это как раз по поводу содержимого и речь
И вобще, даже при косвенном доступе (любых степеней вложенности) объект, объявленный как конст, или его часть. не может по идее быть lvalue

Daniel
05.09.2018
19:33:04
это тут уже было сегодня дважды

Roman
05.09.2018
19:36:42
я все же думаю, что const контейнера должен распространяться и на содержимое
да, в этом есть смысл.
если учесть что slice это всего лишь
type slice struct {
p *[n]array
}
тогда поля const object'а должны быть тоже const
type Object struct {
Parent *Object
}
func main() {
const o := &Object{}
o.Parent = &Object{} // Compile-time error
o.NonConstMethod() // Compile-time error
o.Parent.NonConstMethod() // Compile-time error
}
в чём, собственно, есть смысл.

Wingman
05.09.2018
19:41:00
в го же планируют вводить check/handle паттерны?

Daniel
05.09.2018
19:41:23

Wingman
05.09.2018
19:41:30
чего вы так упарываетесь по "аа мы всё сломаем, нельзя новые кейворды"? чек/хендл сломает в 100500 раз больше, чем какой-нибудь mut :)

Daniel
05.09.2018
19:42:08
чек-хендл придумал кокс, и у него серьезные шансы попасть в язык
а const придумал Роман (не целиком, но этот конкретный пропозал), и у него шансов мало, разве что он всем вот прям понравится-понравится

Wingman
05.09.2018
19:43:54
Ясно :)

Daniel
05.09.2018
19:44:26
я вот все же думаю, что начинать надо с комментов-аннотаций, и линтера

Google

Alexander
05.09.2018
19:44:29

Roman
05.09.2018
19:45:10

Wingman
05.09.2018
19:45:12

Nyan
05.09.2018
19:45:58

Alexander
05.09.2018
19:46:23
С чек/хендл хендл может быть только проблема у тех буратин, кто ошибку возвращал не последним значением

Wingman
05.09.2018
19:46:50
Я могу запросто переменную/функцию сейчас и чек, и хендл назвать
И оно сломается

Semyon
05.09.2018
19:48:05
я вот конечно не эксперт но в целом имутабельность очень мощная вещь, но выглядит уж очень накрученно по синтаксису

Roman
05.09.2018
19:48:39
я вот все же думаю, что начинать надо с комментов-аннотаций, и линтера
да, в этом есть смысл. Можно с этого начать, правда я Go линтеры ещё не писал, сложно оценить насколько это будет сложно и затратно по времени.
можно добавить эту идею в пропосал как PoC implementation, осталось только придумать стандарт/формат аннотаций, есть по этому поводу идеи?

Daniel
05.09.2018
19:49:17
есть
к переменным и типам - теги

Roman
05.09.2018
19:50:51

Daniel
05.09.2018
19:50:58
к параметрам - комменты того же формата, что и теги
завтра конкретно :)

Roman
05.09.2018
19:51:20

Daniel
05.09.2018
19:52:05
таааак
а почему мы, собственно, так хотим ключевое слово?
у нас же есть возможность алиасить типы!

Google

Roman
05.09.2018
19:53:42

Daniel
05.09.2018
19:53:54
type intConst int // immutable
и все, пользуйся на здоровье, пиши линтер
может быть даже
type intConst = int // immutable

Roman
05.09.2018
19:56:18

Semyon
05.09.2018
20:10:55
Линтер это клёво но он же вас оставит без возможности оптимизаций компилятора

Daniel
05.09.2018
20:13:23
а мы для начала
и будем добиваться включения в язык

Semyon
05.09.2018
20:14:26
Давайте сразу ещё null safety тогда

Daniel
05.09.2018
20:15:27
я не понимаю, при чем тут null safety

Roman
05.09.2018
20:15:40

Мерлин
05.09.2018
20:21:46

Daniel
05.09.2018
20:26:40
а как? я всегда думал, что это runtime проблема

Мерлин
05.09.2018
20:29:48

Daniel
05.09.2018
20:33:59
есть подозрение, что у нас все же другой язык :)
в котлине негде взять null, кроме как явно его присвоить
у нас - масса вариантов

Artem
05.09.2018
20:35:03
как ресивер может узнать что сендер закрыл канал?

Мерлин
05.09.2018
20:35:06

Dorian
05.09.2018
20:35:31
Коллеги. В общем насоздовал несколько интерфейсов по 1-2 метода каждый. Имплементировал их нужным структурам. Есть метод, возвращающий один из этих интерфейсов. На выходе мне надо сделать действие, пренадлежащее другому интерфейсу. Не зашкварно ли так делать?
s.(OtherInterface).OtherInterfaceMethod()

Artem
05.09.2018
20:35:39
for range перестанет выполняться?

Google

Daniel
05.09.2018
20:35:53

Artem
05.09.2018
20:36:01
понял

Dorian
05.09.2018
20:36:11

Alexey
05.09.2018
20:36:41

Daniel
05.09.2018
20:37:27

Admin
ERROR: S client not available

Artem
05.09.2018
20:37:36

Daniel
05.09.2018
20:37:39
не уверен, что кто-=то захочет на это тратить время

Мерлин
05.09.2018
20:38:11

Dorian
05.09.2018
20:38:43

Мерлин
05.09.2018
20:39:06

Dorian
05.09.2018
20:40:53
Про производительность речи не веду

Мерлин
05.09.2018
20:41:49

Dorian
05.09.2018
20:42:06
В целом да, наверное лучше композицию, чем ловить такие моменты. Спасибо

Artem
05.09.2018
21:53:41
вопрос такой. Мне нужно параллельно выполнить несколькими воркерами набор тасков вот я и пишу пул. Как принято в го - шедулеров раскидывать по каналами таски, из которых читают воркеры, или просто очередь пошарить между воркерами и через локи каждый пусть читает сам?

undiabler
05.09.2018
21:57:02
1 канал и воркеры которые из него берут себе работу

Artem
05.09.2018
21:58:21
огонь, так даже лучше

Alexander
05.09.2018
22:02:16

Google

Roman
05.09.2018
22:27:39
https://groups.google.com/forum/m/#!topic/golang-codereviews/qJHZTBYyRuQ

Roman
06.09.2018
01:03:00
https://youtu.be/1B71SL6Y0kA

Maruf
06.09.2018
02:24:29
Всем салют!Вопрос таковой
1.Как выполнить аутентификацию админа?так чтобы посторонних перенаправлял в корневой URL
роуты:
"/v1/admin/login"
"/v1/admin/application
"/v1/"

Sergey
06.09.2018
04:04:43

Heathcliff
06.09.2018
04:07:48

Глеб
06.09.2018
06:39:35
проблем с доступностью не будет?

Eldar
06.09.2018
06:41:09
названия видимо придумывала секретарша

Daniel
06.09.2018
06:42:23
Я вот не понял вопрос

Глеб
06.09.2018
06:43:50
почему в Go принято писать названия значений в структурах с большой буквы?
Это чисто стилистика или есть причины?

Vladimir
06.09.2018
06:45:01
С маленькой - private

andrew
06.09.2018
06:45:10

Pavel
06.09.2018
06:48:22

Глеб
06.09.2018
06:50:33
да, уже третий пет.проект на го собираю,
json с клинтом по ws гоняю
и думаю нагенерить структуры с TypeScript
получается удобней описать структуры например в yaml и нагенерить уже интерфейсы и структуры для go/ts

Po
06.09.2018
07:39:42
Всем привет!