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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.11.2012, 19:13   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Pustic

Это все уже обсуждалось в данной теме. Коротко итоги обсуждения на предыдущей старнице. Здесь Префиксы-суффиксы. Как лучше? Стоит ли избавляться от них?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 19.11.2012, 15:47   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
А я за префиксы.
Зная повадки, рефлексы, образ мышления, восприятие окружающего мира конкретных людей или групп людей, которые разрабатывали модификации с префиксами, мне легче понять, как работает тот или иной кусок кода, написанной этими людьми, или зачем эти люди создали ту или иную таблицу.
Например, мне встречались приложения, в которых присутствовали модификации двух и даже более консалтинговых компаний.
У некоторых консалтинговых компаний есть определенные наработки, и видя префикс класса, я уже знаю, что есть некий другой класс с таким же префиксом, с помощью которого, например, можно осуществить интеграцию с другой базой, вывести отчет в эксель, или осуществить другие операции, которые уже были разработаны данной консалтинговой компанией.
Короче, если мне надо вывести отчет в Эксель, то я смотрю, какие префиксы преобладают в приложении, и если я их узнаю, то я ищу знакомый мне класс для вывода в Эксель.
Мне знакомы классы и объекты 4 консалтинговых компаний, и еще нескольких индивидуальных разработчиков
Старый 20.11.2012, 00:15   #3  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Link
Вот именно, что приходится разбираться и запоминать, кто и где когда менял и отвлекать людей, если вдруг чего забыл, а иначе тратим время на поиск. Мало того, до определенного времени были стандартная конфигурация, одни начали модифицировать таблицы и классы - не меняя их имя, а вставляя коментарии в те места кода. Потом пришел другой и говорит - вот Бест Практис от МС говорит, что нужны префиксы - придумал свой и давай. Третий говорит, что он тоже умный и так как его модули идут в другую область - тоже придумал свой префикс и т.д. После приходит человек и видит все это... Полный бардак и каждый раз начинать алфавитный поиск с перебора префиксов, когда знаешь название объекта - лично у меня радости не вызывает. В то время как суффиксы позволяют найти название таблицы и все ее модификации, отличающиеся суффиксами - будут находится рядом в алфавитном порядке. Удобно и легко. Никаких костылей там не нужно.
За это сообщение автора поблагодарили: Alexanderis.ua (1).
Старый 20.11.2012, 13:08   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Просто чтобы внести и свое мнение (не читая всей ветки) - полностью поддерживаю то, что сказал Белугин во втором посте, и то, как Маззи это просуммировал в третьем.

Рефакторить, чтобы от них избавиться - имхо, нецелесообразно экономически, но если делаете что-то с нуля, думайте перед тем, как добавлять код компании перед названием.

Для того, чтобы различить модификацию своей компании от модификации другой компании ныне рекомендуется использовать модели - все ваши изменения будут в отдельной модели.
За это сообщение автора поблагодарили: Ivanhoe (1).
Старый 18.02.2013, 17:46   #5  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Рефакторить, чтобы от них избавиться - имхо, нецелесообразно экономически, но если делаете что-то с нуля, думайте перед тем, как добавлять код компании перед названием.
Для того, чтобы различить модификацию своей компании от модификации другой компании ныне рекомендуется использовать модели - все ваши изменения будут в отдельной модели.
Ну неиспользование префиксов при разработке решений может потенциально приподнести большие проблемы. предположим вы купили 2 ISV решения в которых есть таблица PostingParameters или что-то подобное. при этом установка по сути превратится в большую проблему

т.е. как раз делая что-то, что планируется использовать где-то еще, а не на одном проекте префиксы must use
ну и модели конечно
Старый 18.02.2013, 18:45   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Ну неиспользование префиксов при разработке решений может потенциально приподнести большие проблемы. предположим вы купили 2 ISV решения в которых есть таблица PostingParameters или что-то подобное. при этом установка по сути превратится в большую проблему
почему именно префиксы, а не суффиксы?
Старый 18.02.2013, 21:27   #7  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Цитата:
Сообщение от trud Посмотреть сообщение
Ну неиспользование префиксов при разработке решений может потенциально приподнести большие проблемы. предположим вы купили 2 ISV решения в которых есть таблица PostingParameters или что-то подобное. при этом установка по сути превратится в большую проблему

т.е. как раз делая что-то, что планируется использовать где-то еще, а не на одном проекте префиксы must use
ну и модели конечно
Чем суффиксы вам не угодили? Я придерживаюсь мнения, что название, в первую очередь, заключать в себе основную информацию и только потом вспомогательную. Поэтому предпочитаю, чтобы уточняющая информация (чья модификация, разработка и т.д.) шла суффиксом, а вот название таблицы, класса, метода и т.п. указывалась первой.
Старый 18.02.2013, 15:09   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Всю тему не стал читать, дома возможно прочитаю.
Мы на нашем производстве используем суфиксы, но только в тех проектах, которые делаем с нуля, если вносится модификация в стандартные классы, методы - ничего не добавляется.
Старый 18.02.2013, 20:19   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Работаем с одним западным партнером, который все делает с префиксами + внедряем Process Industries (там местами тоже префиксы). Ужасно неудобно!
__________________
Ivanhoe as is..
Старый 18.02.2013, 22:47   #10  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Работаем с одним западным партнером, который все делает с префиксами + внедряем Process Industries (там местами тоже префиксы). Ужасно неудобно!
Используем два вертикальных решения и несколько мелких, все используют префиксы. Для своих кастомизаций тоже пользуемся префиксами. Очень удобно
Цитата:
В своих решениях КОРУС не использует искусственные префиксы и суффиксы, работаем в стандартной нотации - префиксы используются только для областей
Ну, я бы не стал на самом деле это выпячивать. Если Я Ваш клиент и использую только Ваши решения - мне как правило фиолетово, каких naming conventions вы там придерживаетесь. Допустим, я в нагрузку к Вашему замечательному решению прикупил еще одно и БАЦ - надцать объектов \ методов \ полей пересеклись по именам.. Оба решения несколько лет на рынке, клиентская база есть, никто для меня ничего переименовывать не будет ("у нас все работает") - куда бежать жаловаться ? Поймите же, это уже не вопрос Вашего эстетического восприятия - это забота о клиенте прежде всего

Цитата:
Сообщение от mazzy
почему именно префиксы, а не суффиксы?
С префиксами поля \ методы от каждого аддона сгруппированы (рядышком лежат) при алфавитной сортировке в AOT (очень удобно в AX 2012), сразу понятно что где искать ("был какой-то метод из аддона А на SalesFormLetter, название не помню но сразу определю если начну набирать в Intellisence XXX_construct")
__________________
-ТСЯ или -ТЬСЯ ?
Старый 18.02.2013, 22:55   #11  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Vadik Посмотреть сообщение
Ну, я бы не стал на самом деле это выпячивать. Если Я Ваш клиент и использую только Ваши решения - мне как правило фиолетово, каких naming conventions вы там придерживаетесь. Допустим, я в нагрузку к Вашему замечательному решению прикупил еще одно и БАЦ - надцать объектов \ методов \ полей пересеклись по именам.. Оба решения несколько лет на рынке, клиентская база есть, никто для меня ничего переименовывать не будет ("у нас все работает") - куда бежать жаловаться ? Поймите же, это уже не вопрос Вашего эстетического восприятия - это забота о клиенте прежде всего
Забота о клиенте - не врать ему . Не обещать, что Ваше решение заработает "из коробки". Не врать, что он "легко" сможет обновиться на новую версию и т.п. Проговаривать с клиентом каждую модификацию и последствия (даже если "просто добавить галочку на форму"). Можем в отдельной ветке обсудить - welcome!

Цитата:
Сообщение от Vadik Посмотреть сообщение
С префиксами поля \ методы от каждого аддона сгруппированы (рядышком лежат) при алфавитной сортировке в AOT (очень удобно в AX 2012), сразу понятно что где искать ("был какой-то метод из аддона А на SalesFormLetter, название не помню но сразу определю если начну набирать в Intellisence XXX_construct")
Откройте проект, раз вы знаете аддон, - там и смотрите Заодно все связанные объекты в одном месте увидите (в т.ч. измененные стандартные, у которых суффикс никто в здравом уме не изменяет).
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 18.02.2013, 23:17   #12  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Можем в отдельной ветке обсудить - welcome!
Ну зачем же в отдельной-то.. Давайте уж тут мою проблему ("не используем суффиксы-префиксы.. купили два аддона") и пообсуждаем
Цитата:
Забота о клиенте - не врать ему . Не обещать, что Ваше решение заработает "из коробки"
Прекрасные слова (с). А кто-то изначально проектирует так, чтобы с максимальной вероятностью заработало (понятно что слияние X++ кода есть неизбежное зло в случае нескольких аддонов в одном приложении но и его при желании умудряются в большинстве случаев обойти с помощью event handler-ов)
Цитата:
Проговаривать с клиентом каждую модификацию и последствия (даже если "просто добавить галочку на форму")
А тут мы похоже каждый о своем. Я - о тиражируемом "коробочном решении" (аддон), Вы - о штучной кастомизации под конкретного клиента (модификация). Так мы пожалуй ни о чем не договоримся
__________________
-ТСЯ или -ТЬСЯ ?
Старый 18.02.2013, 23:50   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
С префиксами поля \ методы от каждого аддона сгруппированы (рядышком лежат) при алфавитной сортировке в AOT (очень удобно в AX 2012), сразу понятно что где искать
А с суффиксами в АОТ сгруппированы по модулям. Очень удобно.

Объекты аддонов все равно удобнее в проекты отфильтровывать.
Старый 19.02.2013, 05:19   #14  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
А с суффиксами в АОТ сгруппированы по модулям. Очень удобно.
Объекты аддонов все равно удобнее в проекты отфильтровывать.
фильтрация в проекты будет работать при любом подходе

тут еще в примере с 2 решениями - при использовании префиксов при просмотре таблицы вы сразу увидите какие поля добавляет этот аддон. при использовании суффиксов в 2012 все поля будут раскиданы и для больших таблиц фиг поймешь что к чему относится, а утилита сравнения вам модель не покажет

не самая конечно нужная функция, но зачем выбирать решение которое априори вас в чем-то ограничивает
За это сообщение автора поблагодарили: Vadik (1).
Старый 19.02.2013, 12:11   #15  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
А с суффиксами в АОТ сгруппированы по модулям. Очень удобно
Я такой человек - мне чтобы понять надо увидеть. Покажи что и как у тебя сгруппировано. У меня - вот так (все компактно и аккукратно). Есть и объекты с кастомизациями из обоих аддонов плюс наши, к сожалению не смог сделать скриншот который бы показал все три группы не занимая весь экран
Цитата:
Объекты аддонов все равно удобнее в проекты отфильтровывать
Проекты из модели в AX 2012 создавать одинаково удобно что с префиксами-суффиксами что без них (см. Tools \ Model management \ Create project from model). А дальше что? Мне проект как таковой не нужен (во первых он вендором уже создан, во вторых - там одних форм, таблиц и классов полтыщи). Мне нужен интуитивный и быстрый способ просмотреть \ добраться до модификаций принадлежащих к определенному аддону, мне субъективно делать это с префиксами удобнее.

Не вижу повода устраивать холивар на тему преимущества префиксов над суффиксами, это дело вкуса в конце концов, но если вендор не использует ни того ни другого я бы задумался о том как он позиционирует свое решение - как коробочный продукт или все же одноразовую поделку
Изображения
 
__________________
-ТСЯ или -ТЬСЯ ?
Старый 19.02.2013, 12:32   #16  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Vadik Посмотреть сообщение
Мне нужен интуитивный и быстрый способ просмотреть \ добраться до модификаций принадлежащих к определенному аддону, мне субъективно делать это с префиксами удобнее.
Здесь сделано допущение: Заранее известно, о каком именно аддоне (каком префиксе) идет речь.

А сама тема была создана исходя из допущения, что заранее НЕ известно, о каком именно аддоне идет речь, но известно о каком именно модуле Axapta. И как в этом случае искать нужный объект?

Стандартный сценарий поиска по Best Practices (по имени модуля) в этом случае не годится. Приходится "изобретать велосипед" и создавать собственный функционал поиска.

И, кстати, а когда знание того, к какому именно аддону относится тот или иной объект имеет существенное значение для выполнения модификации? Ведь Вы исходите из предположения, что СНАЧАЛА надо определится с именем аддона, а ПОТОМ с функциональностью (модулем Axapta). Вот мне и интересно когда, в каких случаях, это имеет принципиальное (первостепенное) значение?

Разве при сопровождении приложения так уж важно каким образом объект попал в АОТ? Разве не важнее знать какую функцию этот объект выполняет (к какому модулю относится)?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 19.02.2013, 14:16   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
Я такой человек - мне чтобы понять надо увидеть. Покажи что и как у тебя сгруппировано.
ну... во-первых, я не очень могу показывать то, что я делаю.
во-вторых, здесь тоже используют "префиксы". Хотя лично мне больше нравятся суффиксы.

Но я привел пример с суффиксами.

1. обрати внимание, что объекты группируются по имени модуля. В списке есть и мои объекты (не выведены на скриншот из-за NDA)
2. можно фильтровать и по суффиксам. Я написал и вывел тестовый job в группу.
3. Обрати внимание на фильтры. Все просто

Название: 1.PNG
Просмотров: 2600

Размер: 45.7 Кб Название: 2.PNG
Просмотров: 2604

Размер: 43.5 Кб

Цитата:
Сообщение от Vadik Посмотреть сообщение
Не вижу повода устраивать холивар на тему преимущества префиксов над суффиксами, это дело вкуса в конце концов, но если вендор не использует ни того ни другого я бы задумался о том как он позиционирует свое решение - как коробочный продукт или все же одноразовую поделку
Не. Это не вкус.
Обрати внимание, что у тебя объекты находятся в разных местах.

Если речь идет о конечном клиенте, то у него будут таблицы в разных местах списка "DDD_Codes.KKK_XXX_LL_OKVED. (где ККК, ХХХ, LL - префиксы)"
Помнить все эти префиксы - очень сложно, если ты работаешь на клиенте, а не у партнера, где есть только свое решение.

Впрочем, я об этом уже писал в первом сообщении этой ветки
Старый 21.02.2013, 13:28   #18  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 646 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от Vadik Посмотреть сообщение
Я такой человек - мне чтобы понять надо увидеть. Покажи что и как у тебя сгруппировано. У меня - вот так (все компактно и аккукратно). Есть и объекты с кастомизациями из обоих аддонов плюс наши, к сожалению не смог сделать скриншот который бы показал все три группы не занимая весь экран
Страшновато выглядит, честно говоря

Вот тебе хорошо, ты знаешь, какой адд-он за что отвечает. А допустим приходит новый программист без опыта работы в твоём приложении, и надо ему найти, почему поле в таблице неправильно инициализируется. По-моему, ему гораздо удобнее будет, если все initFrom будут рядом сгруппированы, чем если придётся по списку методов скакать туда обратно, чтобы их все найти, нет? А учитывая, что таких таблиц, вероятно, много...

По поводу методов, которые в разных адд-онах могут называться одинаково - извини, тоже не убедительно. Если адд-оны затрагивают одну и ту же область стандартного приложения, такие методы в любом случае будут, используешь ты префиксы или нет. Стандартные методы вроде modifiedField(), insert(), update() и т.п. ты же всё равно не сможешь переименовать. А для добавленных методов мне кажутся удобнее суффиксы - просто привычка уже есть, когда по имени метода ты понимаешь, что именно он делает, а не с какими данными. То есть, SalesLine.modifiedFIeldDDC() мне лично понятнее, чем SalesLine.ddcModifiedField().
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: Владимир Максимов (5).
Старый 19.02.2013, 14:02   #19  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
А скажите - вы вот когда про префиксы говорите - вы совсем-совсем исключений не делаете?
Просто мне имена методов типа axInventTable.XYZparmNewField() очень режут глаз. Я уж скорее напишу что-то типа axInventTable.parmXYZNewField() чем префикс перед методом поставлю.
За это сообщение автора поблагодарили: mazzy (2), AxPr-r (1).
Старый 19.02.2013, 14:16   #20  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Методы, названия которых начинающиеся с "parm" - особый случай. Я всегда ищу в незнакомом классе методы parm, чтобы передать в него параметры. А если нужного параметра нет, то я добавляю новый метод, и называю его parmXYZNewField().
То есть получается 2 префикса: первый "parm", второй "XYZ"
Если я не добавлю второй префикс "XYZ", то потом забуду, что это именно я добавил этот метод. Бывает, приходится через полгода возвращаться к забытым доработкам, а префиксы помогают быстро разобраться.
Правда у меня префикс всего из одной буквы "z", так что мне легче. Мои методы выглядят как parmzNewField().
У кого длинные префиксы, тем сложнее.
Все зависит от порядка, установленного на каждом конкретном проекте. Практически везде правила разные - у кого-то суффиксы, у кого-то префиксы. Из-за того, что ведущие разработчики разные на разных проектах. В итоге по почерку можно узнать, с какого проекта пришел тот или иной кусок кода.
Теги
как правильно, полезное, holywar

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Что лучше, много номенклатур или много конфигураций? axvrp DAX: Функционал 75 21.09.2010 16:13
Как лучше вносить изменения в чужой класс ski DAX: Программирование 13 18.08.2009 10:15
LedgerJournalTable как лучше сделать новую форму kitty DAX: Программирование 2 20.02.2008 12:36
Site в складской аналитике. Как лучше перевести? mazzy DAX: Прочие вопросы 73 07.01.2008 12:18
подскажите. как лучше сделать kitty DAX: Программирование 4 02.11.2007 11:14

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

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

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