Показать сообщение отдельно
Старый 25.10.2010, 12:47   #105  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от AX2011 Посмотреть сообщение
> реальных недостатков у префиксов полно и они в этой теме уже подробно описаны и неоднократно

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

Использование префиксов было рекомендовано первыми выпусками Best Practis в ранних версиях Axapta. В последующих выпусках Best Practis (новых версиях Axapta) этой рекомендации больше нет. "Но осадок остался" (с)


Цель: Исключение пересечения имен с именами стандартных объектов с целью облегчения выделения кастомизированных объектов при переходе на новые версии/фиксы

Возражение:

1) Заявленная цель носит скорее теоретический характер. Никто и никогда еще не говорил на форуме о подобной проблеме.

2) При переходе на новую версию, "простой" upgrade в российских условиях - редкость. Обычно это выливается в написание нового приложения. Как следствие, переносится не код, а логика. Т.е. исходные имена объектов в "старой" версии не так уж и важны

3) Если имя кастомизированного объекта совпало с именем стандартного объекта в новом фиксе, то это повод пересмотреть логику использования данного объекта.


Цель: Идентификация компании/модуля/разработчика/фикса (в зависимости от того, что "шифруют" в префиксе) с целью последующего "разбора полетов"

Возражение:

1) Для идентификации автора объекта существует ряд других способов, не связанных с именованием объектов

2) Если проблема, связанная с объектом выявляется достаточно быстро, то и так все знают, кто автор. А если проблема выявляется не сразу, то на момент обнаружения проблемы уже не важно, кто автор. Надо проблему решать, а не искать крайнего

3) Префикс фиксирует момент создания объекта, а при "разборе полетов" требуется определить всю цепочку изменений, приведших к текущему состоянию объекта. Не переименовывать же объект после каждой модификации!

4) Если в префиксе "шифруется" разработчик или код фикса, то возникают проблемы при модификации подобного объекта. Ведь его префикс перестает соответствовать содержанию.

5) Если в префиксе "шифруется" компания, для которой сделана кастомизация, то возникает проблема при портировании решения для других компаний. Безотносительно к правовой стороне данного вопроса. Префикс перестает соответствовать содержанию.

Если же рассматривать правовую сторону подобного портирования, то она решается внепрограммными средствами. Префикс не может рассматриваться как предмет авторского права.

6) "Шифрование" в префиксе модуля оправдано только в случае, если это действительно отдельный независимый модуль. Но, в этом случае использование префикса фактически совпадает со "стандартной" идеологией именования объектов в системе Axapta. "А если нет разницы, то зачем...?" (с)


Цель: Идентификация кода модификаций в именах проектов

Возражение: Это единственный случай, который не вызывает существенных возражений Есть "придирка", а не возражение.

В случае многочисленных модификаций придется поднимать все проекты, в которые включен данный объект

Впрочем, это все-равно удобно. В случе поддержания правил вставки комментариев в код X++ можно определить имя проекта и посмотреть все объекты, включенные в данный проект. Сразу видно, что еще было изменено в данном проекте.

Хотя, данный способ использования можно считать "вне темы", поскольку к именованию объектов АОТ он не относится.


Цель: Модификации с одинаковым префиксом располагаются в АОТ рядом. Удобнее искать

Возражение:

1) Удобно, пока общее количество объектов относительно небольшое. При большом количестве объектов это уже существенного влияния не оказывает

2) Если объекты относятся к разным модулям, то поиск усложняется, поскольку объект оказывается далеко от стандартных объектов данного модуля. Необходим "двойной" поиск. Сначала по именам без префиксов, потом по именам с префиксами. Вне зависимости от того, нашли или нет что-то по поиску без префиксов. Если есть несколько префиксов, то надо будет выполнять поиск по каждому префиксу в отдельности.


Цель: "Расширение" одноименных объектов (дополнительные поля таблиц) или их локализация

Возражение: Для этой цели удобнее использовать суффиксы. Не нарушается стандартная идеология именования объектов и объекты оказываются рядом в АОТ


Дополнительные проблемы

1) В случае многочисленных кастомизаций будет много разных префиксов. Как следствие, возникают сложности в поиске и идентификации нужных объектов

2) Наличие префиксов - это паралельный стандарт именования объектов. Паралельный тому, который не явно предлагают разработчики Axapta. Как следствие, возникает необходимость поддержания нескольких стандартов именования. Чем их больше, тем сложнее.

3) Усложняется процесс вхождения в курс дела нового сотрудника. Ему нужно изучить "двойные стандарты" именования

4) Потенциально способствует дублированию функционала. Ну, не нашел нужного объекта (забыл про префикс) и создал свой собственный
За это сообщение автора поблагодарили: mazzy (5), fed (2), glibs (3), dn (2), CDR (1), Pustik (2), sukhanchik (2), lev (2), oip (5), gl00mie (2), ikopyl (4), S.Kuskov (3), kornix (2).