@oop_ru

Страница 155 из 785
Paul
16.03.2017
08:53:07
Разумеется

Sergey
16.03.2017
08:53:20
Если у тебя всё на наследовании, то ты обречён, да
то есть вообще забить на полиморфизм подтипов?

Paul
16.03.2017
08:53:36
то есть вообще забить на полиморфизм подтипов?
К сожалению, в языках без типажей не получится

Sergey
16.03.2017
08:53:46
ну то есть балуются ж в C++ абстрактными виртуальными классами или всякими интерфейсами в java

Google
Sergey
16.03.2017
08:54:14
К сожалению, в языках без типажей не получится
а, ну то есть в языках без типажей без динамической диспетчеризации далеко не уехать)

под "далеко" я подразумеваю что-то серьезное

Сергей
16.03.2017
08:54:44
на Js же пишут)

шуткую))

Paul
16.03.2017
08:55:06
под "далеко" я подразумеваю что-то серьезное
Ну да, ОСи, браузеры, достаточно серьёзно?

Sergey
16.03.2017
08:55:49
Ну да, ОСи, браузеры, достаточно серьёзно?
драйвера для ОСи не являются примером динамической диспетчеризации?

у нас же там в памяти будет почти что vtable

Sergey
16.03.2017
09:00:29
Тот самый 1%
сильно сомневаюсь что это 1% ценности

да и процент не имеет значения. динамическая диспетчеризация нужна. если у тебя нет других способов в рантайме подменить реализацию.

Google
Paul
16.03.2017
09:01:48
Пля

Sergey
16.03.2017
09:01:51
))

Paul
16.03.2017
09:01:54
Где я сказал, что она не нужна?

Sergey
16.03.2017
09:02:40
но ты говоришь что "она нужна редко", и я согласен. Но это именно то что позволяет вырастить гибкую систему

и даже если это редко - 1% в 90% проектов

Paul
16.03.2017
09:04:15
Просто где-то она идиоматична, а где-то нет. Вот взять к примеру кресты — каждый объект будет иметь ссылки на vtable (несколько, если множественное наследование) + сами данные, посколько полиморфизм подтипов во все поля. Если же взять раст, то там для динамической диспетчеризации используется trait object-ы и это не ссылка на vtable+даннные, а отдельно ссылка на vtable и ссылка на данные, чтобы не платить за лишние 8 байт. Просто потому что идиоматично использовать статическую диспетчеризацию

Sergey
16.03.2017
09:04:17
то это 90% проектов

Paul
16.03.2017
09:04:52
Ладно, я не знаю о чём мы говорим уже

Sergey
16.03.2017
09:05:09
да я тоже, но последняя инфа по rust мне кажется полезной, почитаю

Paul
16.03.2017
09:05:25
Полиморфизм подтипов легко меняется на типажи/интерфейсы и получаешь возможность использовать статическую диспетчеризацию.

Единственный кейс для динамики остаётся только в создании колекции над разными объектами одного интерфейса

Это те самые драйвера (выбор среди списка драйверов), vfs (среди списка ФС)

Вот тут да, никак не обойтись без динамики

Paul
16.03.2017
09:06:35
да я тоже, но последняя инфа по rust мне кажется полезной, почитаю
http://alschwalm.com/blog/static/2017/03/07/exploring-dynamic-dispatch-in-rust/

Sergey
16.03.2017
09:06:44
Спасибо

Paul
16.03.2017
09:09:46
немного тупой вопрос, не означает ли это отсутствие late binding?
Если vtable создаётся в компайлтайме, то late binding нет

Ибо для каждой виртуальной функции уже должен быть слот в ней

Sergey
16.03.2017
09:12:50
ну теперь буду пережевывать информацию так ли нужен late binding...

Google
Sergey
16.03.2017
09:13:22
в языках для которых всеравно надо пересобирать проект для того что бы поменять например какие зависимости подставлять

(не smalltalk/erlang)

?
17.03.2017
13:38:39
https://www.youtube.com/watch?v=YKXfOYTBaI4

Артур Евгеньевич
17.03.2017
17:29:13
Привет бандиты, у меня тут вопрос в ТЗ специально прям как для вас)

Какая идеологическая разница между интерфейсом с трейтами в сравнении с абстрактным классом?

da horsie
17.03.2017
17:30:28
в php?

Aleh
17.03.2017
17:30:29
интерфейс с трейтами это то, что в пыхе

или то, за что @ployd топит?)

Артур Евгеньевич
17.03.2017
17:44:13
в php?
Ну вопрос сам по себе

Но чаще пыха подразцмеваетсч

Вот я помню у вас дискуссия была

da horsie
17.03.2017
17:47:39
в пыхе трейты не подразумевают интерфейс

Rodion
17.03.2017
17:48:35
трейт не привязан к типу

трейт - исключительно про реализацию

абстрактный класс - про контракт и частичную реализацию

короче в типах дело

в контрактах

da horsie
17.03.2017
17:52:15
отвечая на вопрос в рамках пыха, если интерфейс описывает то же поведение, что и абстрактный класс, комбинацией трейты+интерфейсы можно описать несколько поведений в одном объекте, а наследованием от абстрактного класса - нельзя.

Rodion
17.03.2017
17:52:41
это адмен phpgeeks)

который оценил себя в своем резюме в 140к рублей

Google
da horsie
17.03.2017
17:55:31
это сарказм?

админ != эксперт

или я не понял, о чем ты

Rodion
17.03.2017
17:57:23
админ != эксперт
"админ" тут скорее как идентификатор я использовал

не суть важно

Артур Евгеньевич
17.03.2017
20:58:21
который оценил себя в своем резюме в 140к рублей
Что всех так коробит моя самооценка))

Admin
ERROR: S client not available

Rodion
17.03.2017
20:58:49
оверпрайснута

Sergei
17.03.2017
20:59:53
да и ладно, почему нет?

da horsie
17.03.2017
20:59:57
ммм. не тот чатик

Sergei
17.03.2017
21:00:05
Отож

Сергей
18.03.2017
22:15:41
Отступы 2 пробела – 25 ??????? 42% 4 пробела – 17 ????? 29% Таб – 16 ???? 27% 3 пробела ?! – 1 ▫️ 2% ? 59 people voted so far.

Evgeniy
18.03.2017
22:19:54
а еще можно без отступов )))

Sergei
18.03.2017
23:50:21
https://image.slidesharecdn.com/slides-150227073035-conversion-gate02/95/how-to-use-selenium-successfully-java-edition-10-638.jpg?cb=1425043961

Sergey
19.03.2017
16:32:22
Max
19.03.2017
19:12:03
День добрый. Подскажите, кто-нибудь использует UML в реальной работе, рисует там овердофига диаграм со связями и тд? Или это только в кровавом энтерпрайзе?

Sergey
19.03.2017
19:12:54
диаграммы классов практически никогда, только если пост фактум надо что-то показать рассказать

диаграммы юзкейсов, активити и т.д. - приходится иногда тупо что бы можно было прикинуть "как оно там будет"

ну то есть если ты ищешь поводов не знакомиться с UML - то не, с ним стоит познакомиться

тут как бы все просто. Если ты знаешь UML ты так или иначе найдешь ему полезное применение. Ну а если нет - не найдешь)

Google
Max
19.03.2017
19:15:52
я к тому, что в универе щас пытаются заставить вызубрить все нотации, UML, DFD и тд, пытаюсь понять, потеря времени это или нет. Для себя гораздо проще на бумажке что-то абстрактное нарисовать и от этого отталкиваться.

Sergey
19.03.2017
19:16:15
ну когда "заставляют вызубривать" это всегда плохо и потеря времени

Max
19.03.2017
19:16:42
С UML я конечно же пришлось познакомится, но каждый раз забываю, в какую сторону там треугольник должен быть повернут при наследовании, запомнить как там композиция\агреггация обозначается - лично для меня боль.

Sergey
19.03.2017
19:16:45
но разобраться надо)

Max
19.03.2017
19:17:39
Если это в реальности где-то еще используется, то конечно надо, да, потому тут в чатике у опытных товарищей и спрашиваю)

Sergey
19.03.2017
19:17:40
С UML я конечно же пришлось познакомится, но каждый раз забываю, в какую сторону там треугольник должен быть повернут при наследовании, запомнить как там композиция\агреггация обозначается - лично для меня боль.
ну направления стрелочек запомнить в целом не проблема. Попробуй закономерности найти. Например "наследование в ту сторону потому что зависит от той фигни а стрелочка такая-то потому что зависимости в форме наследования"

так попроще будет запомнить это все ну и в целом потом штуки вроде "инверсии зависимостей" будут восприниматься как само собой разумеющаяся штука

а вот например как прописываются асинхронные действия или там как правильно описать рекурсивные операции я и сейчас хз

обычно гуглю

ну то есть тебе больше надо уметь читать UML нежели писать)

писать ты можешь всегда нужные штуки загуглить

Max
19.03.2017
19:20:00
писать ты можешь всегда нужные штуки загуглить
Понятное дело. Но если диаграмма классов помогает лучше понять архитектуру, почему тогда в доках каких-нибудь либ ее обычно нет

Paul
19.03.2017
19:22:35
Потому что не помогает, лол

Paul
19.03.2017
19:23:08
Диаграмма компонентов, DFD, диаграмма последовательности — вот эти помогают

Страница 155 из 785