|
![]() |
#1 |
Гость
|
> реальных недостатков у префиксов полно и они в этой теме уже подробно описаны и неоднократно
а можно ссылку? а то я не вижу "реальных" недостатков |
|
![]() |
#2 |
Участник
|
Цитата:
![]() Использование префиксов было рекомендовано первыми выпусками 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). |
![]() |
#3 |
Участник
|
Цитата:
Наверное, все-таки, в бытовых случаях пользоваться стандартным поиском по АОТ удобно, где префиксы доминируют.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
![]() |
#4 |
Участник
|
__________________
// no comments |
|
![]() |
#5 |
Участник
|
Цитата:
Цитата:
InventTable XXX_InventTable YYY_InventTable ZZZ_InventTable Как Вы думаете, будет ли Вам удобно искать по AOT, если Вы точно не знаете где именно находится то, что Вам нужно? А если Вы точно не знаете сколько всего префиксов может быть? На всякий случай уточню. Сама идея префиксов предполагает поиск только и исключительно в алфавитном порядке и никак иначе! Поскольку для всех других способов поиска в AOT факт наличия или отсутствия префикса никакого значения не имеет.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#6 |
Участник
|
Я, думаю, что будет удобно. : *InventTable* . А далее, как говорится , вопрос техники. И я, точно буду знать, что впереди стоит не ВасяПетров_inventTable, а, к примеру, Затраты на ремонт оборудования_*******.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 16.11.2012 в 19:42. |
|
![]() |
#7 |
Участник
|
Цитата:
Через Ctrl+F, как правило, вываливается "вагон и маленькая тележка" найденных значений, где потом еще дополнительно надо как-то искать.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: sukhanchik (5), LeonDerCom (1). |
![]() |
#8 |
Участник
|
Владимир Максимов, спустили на землю)). Не часто этим пользуюсь, потому что все оформлено в проектах. Любой вопрос от пользователя для меня начинается с проекта. Все лежит в голове.
Для поиска таблиц и других объектов использую специальную форму.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 17.11.2012 в 07:57. |
|
![]() |
#9 |
Британский учённый
|
Цитата:
Сообщение от Владимир Максимов
![]() Вот видите, сколько способов Вы уже нашли! При этом никакой префикс Вам не понадобился.
Предположим, у Вас есть такие объекты InventTable XXX_InventTable YYY_InventTable ZZZ_InventTable Как Вы думаете, будет ли Вам удобно искать по AOT, если Вы точно не знаете где именно находится то, что Вам нужно? А если Вы точно не знаете сколько всего префиксов может быть? На всякий случай уточню. Сама идея префиксов предполагает поиск только и исключительно в алфавитном порядке и никак иначе! Поскольку для всех других способов поиска в AOT факт наличия или отсутствия префикса никакого значения не имеет. Опять таки, с теми же полями, мне куда удобнее набрать ZZZ после точки и увидеть все поля данного решения в стандартной таблице.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#10 |
Участник
|
Цитата:
И полностью солидарен с Владимиром Максимовым. ![]() |
|
![]() |
#11 |
Британский учённый
|
Цитата:
Сообщение от LeonDerCom
![]() А если модуль создавался еще при царе Горохе и тут новое начальство решило внедрить или модифицировать? Менять префикс на нового автора, а потом вспоминать кто и какой модуль модифицировал... Для таких вещей удобней использовать CreateBy или сразу коментарием в classDeclaration? А информацию для идентификации организации и т.д. преписать суффиксом и тогда при поиске вам будет намного проще.
И полностью солидарен с Владимиром Максимовым. ![]() Очень удобно нахожу использование префикса 'DEV' в тех проектах, что не относятся к функционалу. На сегодняшний день например только 46 классов DEV_* Не представляю как их искать по суффиксам ![]()
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#12 |
Участник
|
Цитата:
Цитата:
В своих решениях КОРУС не использует искусственные префиксы и суффиксы, работаем в стандартной нотации - префиксы используются только для областей.
__________________
Ivanhoe as is.. |
|
![]() |
#13 |
Британский учённый
|
Цитата:
![]() А какую задачу вы бы назвали сравнительно легкой с использованием суффиксов в противоположность использованию префиксов? Цитата:
Сообщение от Ivanhoe
![]() А вот тут, как раз, очень подходит _стандартный_ подход по использованию префиксов согласно области. DEV* в этом плане аналогичен Invent*, Cust* и т.п.
В своих решениях КОРУС не использует искусственные префиксы и суффиксы, работаем в стандартной нотации - префиксы используются только для областей.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|