17.04.2011, 00:37 | #1 |
Administrator
|
AX 2012: Правила именования объектов
Всем привет! Хотелось бы затронуть больную тему... В АХ 2012 были переписаны (в частности) финансы, в результате чего LedgerTrans "раскололась" на следующие таблички:
Раньше принцип существовал и был такой: Сначала указывается префикс модуля Затем указывается тип таблицы / иного объекта (может не указываться или могут быть иные варианты) В конце указывается суффикс названия. Например, LedgerJournalTable: Здесь: Ledger - префикс модуля (варианты: Invent, Prod, Cust, Vend, smm и т.д.) Journal - тип таблицы, указывающий на то, что это журнал Table - суффикс таблицы, означающий, что эта таблица является либо шапкой журнала, либо справочником. Т.о. выучив общий принцип именования таблиц - можно было не зная нюансы предположить, что в таблице CustTrans будут сидеть проводки по клиентам, LedgerTrans - проводки по ГК, а в InventTable - записи по номенклатурам (справочник). Для классов - был суффикс Engine или Form, который тоже наталкивал на определенные мысли о его предназначении разработчика. Понятно, что этот принцип было тяжело соблюдать и многие таблицы / классы этому правилу не соответствовали. Но база была. Более того - начало названия объекта все-таки так или иначе старалось соблюдаться - т.о. все объекты, относящиеся к одному модулю (Ledger, Invent) были сгруппированы в одном месте. Теперь получается так, что объекты будут "размазаны" равномерно по АОТ - т.к. фиг догадаешься искать куски LedgerTrans среди объектов на литеру G (GeneralJournalEntry) или S (SubledgerVoucherGeneralJournalEntry). Также непонятно предназначение слова Entry. Оно как-то тоже бессистемно находится в середине или конце названия таблицы. Более того - как-то не вяжется слово Entry (ввод) с транзакционными таблицами (т.е. в которые не вводятся данные пользователем напрямую). Вопрос к тем, кто может быть в курсе изменения политики именования объектов. Какие теперь существуют правила именования объектов и по какому принципу можно догадываться о предназначении того или иного объекта?
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 17.04.2011 в 09:32. Причина: орфография |
|
|
За это сообщение автора поблагодарили: mazzy (2), BOAL (2), gl00mie (2). |
17.04.2011, 01:04 | #2 |
Axapta
|
Тоже обратил на это внимание... Не понравилось. Но по-крайней мере официально пока все осталось как было. Хотя и "this content is preliminary and subject to change". Видимо, пока все это просто копия BP из AX2009, а нового еще нет.
Цитата:
Best Practices for Table Properties [AX 2012]
Name: Prefix with the module name. For example, Cust, Vend, or Invent. Infix with a logical description of the contents. For example, CustCollectionLetterTrans, where CollectionLetter is the infix. For temporary tables, infix with Tmp. For example, CustTmpLedger. Postfix with the type of contents. For example, Trans, Jour, Line, Table, Group, Parameters, or Setup. The primary tables for the major business areas are postfixed with Table. For example, CustTable, InventTable, and VendTable. |
|
|
За это сообщение автора поблагодарили: sukhanchik (3). |
17.04.2011, 07:46 | #3 |
Участник
|
Подозреваю, что это только вершина айсберга.....и внутри еще много такого
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
17.04.2011, 12:23 | #4 |
Участник
|
В данном контексте Entry, скорее, "запись", или "элемент, компонент".
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
17.04.2011, 12:35 | #5 |
Administrator
|
Эммм... тоже как-то привыкаешь к некоторой терминологии. Я тоже с помощью http://translate.google.ru могу перевести "Поставщик" как "cateter" . Но как-то все привыкли к "vendor"
__________________
Возможно сделать все. Вопрос времени |
|
17.04.2011, 13:26 | #6 |
Участник
|
Мне кажется, что если в вышеуказанных таблицах добавить префикс Ledger, то их имена станут черезчур длинными.
Вот и всё объяснение. |
|
17.04.2011, 13:45 | #7 |
Administrator
|
Цитата:
Цитата:
Во-первых есть табличка Subledger..., в которой фраза Ledger уже присутствует. И ничто не мешало поставить фразу в начало. Во-вторых также ничто не мешало называть табличку, уже отталкиваясь от того, что начинается она с фразы Ledger. И уже ограничивать максимально допустимое название таблицы исходя из того, что часть букв уже зарезервирована под фразу Ledger. В-третьих, хоть это и менее критично - но хаотичное расположение фразы Entry в названиях таблиц мне тоже не нравится. В-четвертых из названия таблиц не совсем прослеживается их предназначение. К примеру - таблицы LedgerEntryJournal и LedgerEntryJournalizing по моим понятиям называются одинаково - т.к. у них основы фраз одинаковы и разница в именах не смысловая (аналогично, если были бы 2 таблицы: CustTable и CustomerTable). Плюс табличка GeneralJournalEntry тоже "просится" в плане названия к этим двум.
__________________
Возможно сделать все. Вопрос времени |
|
17.04.2011, 13:51 | #8 |
Участник
|
LedgerSub чтоли?
вообще по названиям гадать о предназначении не нужно сделали ведь DeveloperDocumentation property |
|
17.04.2011, 13:54 | #9 |
Administrator
|
Ну а почему бы и нет? Никто же не претендует на "некорявость" названия. А вот группировка в АОТе "рядом стоящих" объектов не помешала бы.
На худой конец "LedgerSubLedger...", а остальную часть названия - как-то сократить / преобразовать.
__________________
Возможно сделать все. Вопрос времени |
|
17.04.2011, 13:57 | #10 |
Участник
|
Термин "entry" (точнее, фраза "journal entry") обычно обозначает запись журнала в учёте. Это касается как бухгалтерских проводок, так и всех остальных, например, складских.
ИМХО, Entry заменило слово Trans для журналов. По первым примерам похоже... Но почему пишут то JournalEntry, то EntryJournal, вот это непонятно. Оттуда же, похоже, "ноги растут" и для префикса SubLedger. Это, видимо, модульный журнал. Но название SubledgerVoucherGeneralJournalEntry меня вогнало в ступор Если отвлечься от AX, получается по кускам фраза типа "запись журнала ГК по ваучеру модульного журнала" или что-то в этом роде. Короче, надо документацию искать. Наверняка, это описано где-то. |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
17.04.2011, 14:04 | #11 |
Участник
|
Цитата:
несоблюдение политики именования я видел много раз на проектах клиентов, когда клиентский функционал был создан людьми, которые плохо знают аксапту. могу ошибаться, но мне кажется, что сейчас аксапту пишут те, кто плохо знает функционал старых версий и имеющиеся политики. |
|
17.04.2011, 14:08 | #12 |
Участник
|
Да, в конце концов, ничто не помешало, например, на ряду с InventItemPurchSetup и InventItemSalesSetup сделать InventItemInventSetup.
|
|
17.04.2011, 14:33 | #13 |
Administrator
|
Цитата:
Цитата:
Цитата:
Сообщение от mazzy
мне кажется, что все проще.
несоблюдение политики именования я видел много раз на проектах клиентов, когда клиентский функционал был создан людьми, которые плохо знают аксапту. могу ошибаться, но мне кажется, что сейчас аксапту пишут те, кто плохо знает функционал старых версий и имеющиеся политики.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 17.04.2011 в 14:39. |
|
17.04.2011, 14:36 | #14 |
Участник
|
Интересно, в данном ключе насколько могут измениться доводы приверженцев того или иного подхода из темы:
Префиксы-суффиксы. Как лучше? Стоит ли избавляться от них? |
|
|
За это сообщение автора поблагодарили: driller (2). |
17.04.2011, 15:14 | #15 |
Участник
|
Цитата:
Сообщение от sukhanchik
Эммм... тоже как-то привыкаешь к некоторой терминологии. Я тоже с помощью http://translate.google.ru могу перевести "Поставщик" как "cateter" . Но как-то все привыкли к "vendor"
Цитата:
Сообщение от Михаил Андреев
Термин "entry" (точнее, фраза "journal entry") обычно обозначает запись журнала в учёте. Это касается как бухгалтерских проводок, так и всех остальных, например, складских.
ИМХО, Entry заменило слово Trans для журналов. По первым примерам похоже... Но почему пишут то JournalEntry, то EntryJournal, вот это непонятно. А порядок слов может быть важным. Если "entry" в конце - то скорее всего это таблица записей "того, что было до entry", а вот "хххEntryJournal" скорее означает журнал записей "ххх" Хотя AX2012 я еще в глаза не видел, возможно, не прав
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
17.04.2011, 15:25 | #16 |
Administrator
|
Цитата:
Но мысль в отношении важности порядка слов - интересная. Посмотрим - что будет на выходе.
__________________
Возможно сделать все. Вопрос времени |
|
18.04.2011, 09:50 | #17 |
Модератор
|
Цитата:
Сообщение от mazzy
мне кажется, что все проще.
несоблюдение политики именования я видел много раз на проектах клиентов, когда клиентский функционал был создан людьми, которые плохо знают аксапту. могу ошибаться, но мне кажется, что сейчас аксапту пишут те, кто плохо знает функционал старых версий и имеющиеся политики. С Уважением, Георгий |
|
18.04.2011, 10:30 | #18 |
Участник
|
Цитата:
А я - верю. Если сделано специально, то какой смысл в ТАКОМ изменении? |
|
18.04.2011, 10:53 | #19 |
Участник
|
Покопавшись в коде оповещений, workflow, адресов и глобальной адресной книги в AX 2009, я тоже уже не верю в "Архитекторов Системы" )
__________________
Ivanhoe as is.. |
|
18.04.2011, 10:54 | #20 |
Axapta
|
Пока есть только такие описания:
Цитата:
Цитата:
The LedgerEntryJournal table contains the journal group information.
Цитата:
The GeneralJournalEntry table contains the general journal header information.
Цитата:
Сообщение от Михаил Андреев
Оттуда же, похоже, "ноги растут" и для префикса SubLedger. Это, видимо, модульный журнал. Но название SubledgerVoucherGeneralJournalEntry меня вогнало в ступор Если отвлечься от AX, получается по кускам фраза типа "запись журнала ГК по ваучеру модульного журнала" или что-то в этом роде.
Короче, надо документацию искать. Наверняка, это описано где-то. Цитата:
The SubledgerVoucherGeneralJournalEntry table holds the relationship of a voucher to a general journal entry.
|
|
Теги |
ax2012, как правильно |
|
|