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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2009, 14:01   #9  
Maximin is offline
Maximin
NavAx
NavAx Club
 
415 / 361 (13) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Согласен с gl00mie, что в плане работы с наследованием и прозрачности данного кода в Аксапте плохо, да и вообще в данном подходе. Так что вкупе с соображениями относительной "видимости" кода, видимо, этим и вызваны подобные монстры типа LedgerJournalEngine. Честно говоря, сам зачастую колеблюсь в вариантах реализации - написать некий единый класс с методами if тип одно - вызываем метод один, если тип - другое, вызываем метод 2 и т.д, либо же создать дерево классов-наследников. Кстати, прослеживающаяся тенденция к последовательному приближению к классическим принципам ООП с ростом версий Аскапты есть. И SettleNow - один из самых примечательных примеров (скажу, как знаток оного метода еще с 2.5 ). В 4ке и тем более, в 2009, довольно много классов было перестроено в подобном стиле. Но, увы - средства работы с подобными иерархиями классов остались на том же уровне.
Чего стоило бы хотя бы в функции контекстного меню "Просмотр определения" при наличии построенных перекрестных ссылок, вываливать список классов-предков и/или классов-наследников текущего (если они есть), в которых перекрыт данный метод с возможностью выбора, куда переходить. В общем, каменный век.
Я сейчас столкнулся с таким набором классов порядка 15 штук, глубиной наследования ~4, так что наболело. Написано в лучшем стиле ООП, но более-менее целостное впечатление удалось получить далеко не сразу (кстати, в процессе выполнения/отладки самое оно смотреть как работает). Вообще, скажу я вам, проблемы с ООП в Аксапте две.
1. Неразвитость инструментальных средств разработки.
2. Сложность соблюдения концепций в контексте существующего кода.
По второму пункту я имею в виду, что если уж в стандарте, к примеру, напрогано таким образом, что требование изолированности и статичности интерфейсов и реализаций объектов не соблюдается (т.е. если одна переменная инициализируется в одном месте, другая - в другом,в третьем и иногда в четвертом), хотя можно было бы упорядочить и как-то собрать, то соблюдать формальные требования так сказать Best Practices ООП становится слишком затратно по потерям времени и усилий, и, по сути, никому не нужно, кроме самих разработчиков.

Что же касается комментариев - я сторонник некоего баланса между самодокументирующимся кодом и, в сложных методах/классах - заголовка с описанным общим алгоритмом работы метода и по ходу кода, ссылками на пункты из этого описания. Ну, и опять же, в "тонких" местах, где надо обратить внимание на некую особенность реализации - комментарий тоже считаю обязательным. И в "авторских" комментариях считаю нужным коротко описывать суть проекта-модификации.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 26.06.2009 в 14:09.
Теги
как правильно, комментарий

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как и где указать Ax, что моё поле тоже надо так обрабатывать? kostas DAX: Программирование 8 17.04.2015 00:36
2 АОС, как правильно ставить Daido DAX: Администрирование 2 27.10.2007 01:36
Когда нужно ставить свойство server на static методах 6apcyk DAX: Программирование 20 13.12.2006 13:10
1С и Axapta.Ставить на один или на разные инстансы SQL? ATimTim DAX: Прочие вопросы 3 09.09.2005 10:32
Комментарии удалены? gudzon DAX: Программирование 28 28.10.2004 05:34
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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