Size: a a a

2021 May 15

c

codingteam@cjr in codingteam
Minoru
portnov: а это разве не выражается одним предикатом? И следующего уровня просто объединяются с предыдущим через && или ||?
источник

c

codingteam@cjr in codingteam
Minoru
@a1batross: этот автор не теоретик, он майнтейнит всякое на Расте. Но про его опыт с ООП я не знаю
источник

c

codingteam@cjr in codingteam
Minoru
@a1batross: GUI я не писал, но читал Qt, там наследование используют по делу. Игровые объекты не писал, рассуждаю теоретически. В ядре, насколько я знаю, именно интерфейсы с дефолтными реализациями (структура с полями-коллбеками, у которых есть дефолтные значения, которые ты можешь переопределить)
источник

AO

Alibek a1batross Oma... in codingteam
Да. И в qemu в принципе так же.
источник

c

codingteam@cjr in codingteam
Minoru
ну вот. Это не наследование, это интерфейсы/трейты, и они покрывают значительную часть юз-кейсов для наследования в ООП-языках
источник

c

codingteam@cjr in codingteam
portnov
Minoru: ну, например, в абстрактных правилах у меня написано, что взятие делается прыжком через шашку, и что можно брать несколько подряд и обязательно до конца. При этом если в середине взятия оказываемся на последней горизонтали, то вызывается абстрактный метод. Который в русских шашках говорит, что надо превратиться в дамку и брать дальше этим же ходом, а в международных говорит что надо остановиться на этом поле. Потом, когда выяснили что есть несколько вариантов взятия, тоже вызываем абстрактный метод, который в русских шашках говорит что можно выбрать любой вариант, а в международных — что надо выбирать вариант с максимальным количеством побитых шашек. А в чешских — что если есть вариант брать дамкой или простой, то надо брать дамкой.
источник

c

codingteam@cjr in codingteam
portnov
ну и там довольно много ещё такого. Тот же турецкий удар разрешён или нет, разрешено ли брать назад, итд
источник

c

codingteam@cjr in codingteam
portnov
наверное это можно закодировать в одном методе с большой пачкой булевских параметров...
источник

c

codingteam@cjr in codingteam
Minoru
ок, то есть это не тупо предикат «можно ли походить из А в Б»
источник

AO

Alibek a1batross Oma... in codingteam
Да, ты в этом тоже прав.

Но где bad reputation-то? Поэтому я и считаю автора унылым теоретиком, который за пределы раста возможно не выходил, но заявляет об общественном мнении. Которому мало того раст и его архитектурные особенности в принципе не упёрлись, так и решают они другие задачи.
источник

c

codingteam@cjr in codingteam
Minoru
пруфлинков у меня нет, я поделился своими соображениями ¯\_(ツ)_/¯
источник

c

codingteam@cjr in codingteam
Minoru
о, кстати, синтетические бенчи js-фреймворков: https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts-results/table.html Svelte довольно быстрый, но временами проигрывает Vue. Angular и React относительно медленные. Я ожидал гораздо большего отрыва
источник

t

ttldtor in codingteam
Это не значит, что наследование имеет плохую репутацию
источник

t

ttldtor in codingteam
Вообще, это должен компилятор разруливать
источник

t

ttldtor in codingteam
Наследование "пригождается" везде, где есть понятие "интерфейса"
источник

t

ttldtor in codingteam
Я ещё не дописал ядро софтины, где я не использую наследование, а только концепты
источник

c

codingteam@cjr in codingteam
Minoru
@ttldtor: я знаю имя автора и немного знаком с его репутацией, поэтому полагаю, что он просто неудачно подобрал слова. И защищаю :)
источник

c

codingteam@cjr in codingteam
Minoru
и я бы разделял понятия наследования и интерфейса, потому что, как видишь, интерфейсы можно иметь даже без полноценного наследования
источник

c

codingteam@cjr in codingteam
Minoru
да и вообще без наследования, как мы видим в ядре
источник

t

ttldtor in codingteam
Не вижу в ядре
источник