Size: a a a

2020 August 14

CD

Constantine Drozdov in rust_offtopic
Alex Zhukovsky
что в матче?
перечисление всех известных автору реализаций интерфейса
источник

AZ

Alex Zhukovsky in rust_offtopic
а, ты про то чтобы обжект таскать и пытаться сдаункастить
источник

AZ

Alex Zhukovsky in rust_offtopic
ну тут говно в том что ты никогда не знаешь какие варианты учел автор
источник

AZ

Alex Zhukovsky in rust_offtopic
не залезая в функцию
источник

CD

Constantine Drozdov in rust_offtopic
Alex Zhukovsky
ну тут говно в том что ты никогда не знаешь какие варианты учел автор
он правда всё учел, мамой клянусь)
источник

AZ

Alex Zhukovsky in rust_offtopic
ну с такой повесткой можно и на питоне писать
источник

CD

Constantine Drozdov in rust_offtopic
Alex Zhukovsky
ну тут говно в том что ты никогда не знаешь какие варианты учел автор
по сути он только что взял интерфейс и преобразовал в ADT
источник

CD

Constantine Drozdov in rust_offtopic
кажется, тебе это не понравилось
источник

CD

Constantine Drozdov in rust_offtopic
при этом проблему в этом ты не увидишь - всё работать будет
источник

CD

Constantine Drozdov in rust_offtopic
до тех пор, пока не надо новую опцию дописать
источник

AZ

Alex Zhukovsky in rust_offtopic
Constantine Drozdov
по сути он только что взял интерфейс и преобразовал в ADT
задача адт - чтобы у тебя код работал без default: throw new NotImplemented("Should never throw")
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
при этом проблему в этом ты не увидишь - всё работать будет
Non exhaustive это очень большая проблема
источник

p

polunin.ai in rust_offtopic
Ну и динамический диспатчинг на интерфейсах это не zero-cost
источник

CD

Constantine Drozdov in rust_offtopic
Alex Zhukovsky
задача адт - чтобы у тебя код работал без default: throw new NotImplemented("Should never throw")
встрой эту проверку в компилятор, теперь-то расписать интерфейс по всем возможностям точно хорошая идея?
источник

CD

Constantine Drozdov in rust_offtopic
у компилятора в конце мир закрыт (если убрать мутирующую рефлексию), он может провалидировать, что весь список потомков перечислен
источник

AZ

Alex Zhukovsky in rust_offtopic
Constantine Drozdov
у компилятора в конце мир закрыт (если убрать мутирующую рефлексию), он может провалидировать, что весь список потомков перечислен
такая проверка называется адт
источник

CD

Constantine Drozdov in rust_offtopic
Alex Zhukovsky
такая проверка называется адт
Нет, не называется. В ADT есть ограничение, что перечисление делается сразу, а теперь тебе еще все дополнительно размазало по коду. Какая будет неожиданность, когда ты запланируешь следующий релиз, посчитаешь сроки, а в самый наивный момент при реализации MyShape : Shape неожиданно узнаешь, что с точки зрени трети кодовой базы MyShape вообще не является Shape
источник

CD

Constantine Drozdov in rust_offtopic
Потому что вот тут вот есть вычисление площади Shape, а для фрактала Мандельброта это бессмысленно
источник

CD

Constantine Drozdov in rust_offtopic
Упрощение реализации достигнуто размазыванием контракта Expr по всей кодовой базе
источник

AZ

Alex Zhukovsky in rust_offtopic
Constantine Drozdov
Нет, не называется. В ADT есть ограничение, что перечисление делается сразу, а теперь тебе еще все дополнительно размазало по коду. Какая будет неожиданность, когда ты запланируешь следующий релиз, посчитаешь сроки, а в самый наивный момент при реализации MyShape : Shape неожиданно узнаешь, что с точки зрени трети кодовой базы MyShape вообще не является Shape
в общем, если ты сформулируешь конкретно с кодом как это должно работать будет понятнее
источник