AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.10.2017, 01:04   #1  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
ОО тут вообще не причем. То же самое будет и с ФП и с чем угодно у чего есть модули или вообще какие-то куски с интерфейсом.
Причем-причем. Скажите как часто вы меняете в своих собственных классах или чужих private доступ на protected или public? Просто потому что изначальный дизайн всегда рано или поздно устаревает.

Какая такая защита реализации и инкапсуляция если если все наши усилия направлены на то что бы это обойти? Через рефлексию, через СоС, еще как-то как скажем в источнике данной темы.

Это какая-то просто увлекательная игра - ставить забор понадежней, а потом делать в нем дырки, и приставлять лестницы чтобы перелезть. О да, при этом через какой-то кусок забора лезть нельзя, а через какой-то можно. Все для безопасности охраняемого обьекта
За это сообщение автора поблагодарили: EVGL (1).
Старый 07.10.2017, 22:55   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Причем-причем. Скажите как часто вы меняете в своих собственных классах или чужих private доступ на protected или public? Просто потому что изначальный дизайн всегда рано или поздно устаревает.
Вы какие языки кроме ОО знаете? На чистом си можно вынести в заголовочный файл функцию или не выносить. Уровень доступа не является чем-то специфичным для ОО.
Старый 08.10.2017, 15:09   #3  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
Вы какие языки кроме ОО знаете? На чистом си можно вынести в заголовочный файл функцию или не выносить. Уровень доступа не является чем-то специфичным для ОО.
Мне одинаково комфортно и со старым VB, и с классическим ANSI C, и с красивой Java, и с эффективным PHP и с безликим C#.

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

В настоящем танке те кто помечают сучки на деревья на "приватизированный сучок, защищённый или открытый". Просто невозможно их разметить так чтобы рано или поздно не напороться на это тем кто бегает в касках. Понятно что те кто в танке, те в танке.
Старый 08.10.2017, 19:01   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Мне одинаково комфортно и со старым VB, и с классическим ANSI C, и с красивой Java, и с эффективным PHP и с безликим C#.
Тогда мне непонятно, почему вы считаете что разделение на интерфейс и реализацию, это ОО просто проанализируйте свой опыт
Старый 07.10.2017, 23:11   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Это какая-то просто увлекательная игра - ставить забор понадежней, а потом делать в нем дырки, и приставлять лестницы чтобы перелезть. О да, при этом через какой-то кусок забора лезть нельзя, а через какой-то можно. Все для безопасности охраняемого обьекта
Это скорее система страховочных ограждений. "Если вы зайдете сюда, то может прилететь кирпич". Без хардллкинга - "Но если вы готовы надеть каску, то можете зайти" с хардлокингом "Но если вы предоставите заявку возможно мы для вас очистим еще безопасное место".

И опять-таки это не обязательно ОО - есть ОО без уровней доступа, есть модульные системы без ОО с уровнями доступа.

Последний раз редактировалось belugin; 07.10.2017 в 23:25.
Старый 08.10.2017, 18:48   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
Это скорее система страховочных ограждений.
http://kashperuk.blogspot.ru/2017/10...ibility_7.html

Цитата:
With Platform update 11 we have added a new attribute, which allows Microsoft (on request from multiple partnres), where it is justified, to decorate a particular protected or public method, allowing wrapper methods to not call next on it, replacing the logic of that method.
По обоснованным запросам Microsoft добавляет точки расширения (extension points) и с Platform update 11 (спасибо kashperuk за блог) по обоснованным запросам Microsoft будет добавлять атрибут (Replaceable) в конкретные методы с которым можно делать полную замену этого конкретного места.

Вроде бы неплохо и движение навстречу потребностям потребителям продукта. Но это "Скотный двор" Оруэлла. То есть постепенный переход с идей всеобщего равенства и построения утопии к диктатуре и тоталитаризму. При том что "Все партнеры равны. Но некоторые партнеры равны более, чем другие."

Я понимаю что с точки зрения Microsоft продукт принадлежит им и они позволяют им пользоваться.
Как сдача в аренду офисной площади или квартиры на условиях владельца. Любая дырка в стене требует разрешения собственника. Но не бывает таких жильцов которым бы это нравилось или устраивало. Всегда заканчивается переездом в собственный дом.

Что мешает сделать точки расширения и атрибут Replaceable во всех методах по умолчанию?
Страховочная система? Кого и от чего? Бред. Просто непонимание рынка и своего клиента.
Старый 08.10.2017, 19:09   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Что мешает сделать точки расширения и атрибут Replaceable во всех методах по умолчанию?
Давайте, вы сами проанализируйте что будет если сделать так, и чем именно это будет хуже оверлееринга.

Цитата:
Страховочная система? Кого и от чего? Бред. Просто непонимание рынка и своего клиента.
Зачем используют public и protected в Opensource и in-house продуктах?
Старый 08.10.2017, 21:34   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
Тогда мне непонятно, почему вы считаете что разделение на интерфейс и реализацию, это ОО просто проанализируйте свой опыт
Цитата:
Сообщение от belugin Посмотреть сообщение
Давайте, вы сами проанализируйте что будет если сделать так, и чем именно это будет хуже оверлееринга.
...
Зачем используют public и protected в Opensource и in-house продуктах?
Аксапта организована с использованием ОО, но реализация системы такова что разделение на интерфейс и реализацию просто лишено смысла. Делить живой и сложный организм на интерфейсы можно только его убив. Именно эту неуместность я имел в виду.

Аксапта не может быть protected, она может быть или public или private. Ну не дано третьего в кибернетике.

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

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

Что случится то? Ошибки компиляции появятся? Такое впечатление что это основная беда, даже конфликт ISV на подмене метода с "Replaceable" проверяется в runtime как я понял.
Старый 09.10.2017, 08:36   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Аксапта организована с использованием ОО, но реализация системы такова что разделение на интерфейс и реализацию просто лишено смысла.
Еще раз - при чем тут ОО. представьте что вам предоставили вместо ОО кода Plain C DLL без исходников, где вы можете только вызывать экспортированные функции, а поведение менять передавая указатели на функции. Или модули на паскале, кде в секцию interface вынесены только нуджные процедуры - будет та же ситуация безо всякого ОО.

Цитата:
Делить живой и сложный организм на интерфейсы можно только его убив.
Сложный организм так же обменивается сигналами и прочим. Иначе пересадка органов была бы невозможной.

Цитата:
Абсолютно неинтересен доступ к отдельным кускам, либо полный доступ к телу либо нет. Полный доступ к телу означает что я не разобью голову об стену созданную ОО-нанитами на нано-уровне.
Тут опять ОО совершенно не причем - причем это то, есть оверлееринг или нет.
Старый 08.10.2017, 22:32   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от ax_mct Посмотреть сообщение
http://kashperuk.blogspot.ru/2017/10...ibility_7.html

Что мешает сделать точки расширения и атрибут Replaceable во всех методах по умолчанию?
Страховочная система? Кого и от чего? Бред. Просто непонимание рынка и своего клиента.
Чем это тогда отличается от overlayering?
Так у МС есть хоть какой-то контроль над тем, где можно делать overlayering по сути
Старый 09.10.2017, 00:30   #11  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Чем это тогда отличается от overlayering?
Так у МС есть хоть какой-то контроль над тем, где можно делать overlayering по сути
Да, это будет худшая реализация смысла overlayering. Согласен. Но это не придает смысла следованию курсу по ограничению возможностей программирования.

Кто будет решать где можно делать overlayering, а где нет? Никто.
Есть архитектор который держит систему целостной и последовательной, отвечающей каким-то принципам проектирования? Нет.
Просто под достаточным давлением будут разрешать хаотично то там то здесь.
Это мы называем контролем?
Теги
chain of command, extensions

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sertandev: AX7 Extensibility – Part 3 : Event handlers and delegates (hooks) Blog bot DAX Blogs 0 28.08.2017 19:11
ievgensaxblog: D365O. Trick to pass a value between Pre and Post event handler using XppPrePostArgs. Blog bot DAX Blogs 0 01.07.2017 10:13
How to cancel method execution in pre-event handler alicedr DAX: Программирование 6 01.01.2017 15:33
newdynamicsax: Pre / Post handlers and kernel classes. Blog bot DAX Blogs 0 25.04.2016 15:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:51.