15.10.2010, 13:50 | #81 |
MCP
|
Цитата:
Сообщение от mazzy
Есть клиент.
Теперь с ним работаем мы. Но раньше с ним кто только не работал. Поколения разработчиков использовали префиксы (как это рекомендовалось в ранних бест-практисах) в результате сейчас нередки подобные названия DDD_Codes.KKK_XXX_LL_OKVED. (где ККК, ХХХ, LL - префиксы) Поскольку кастомизированных таблиц и полей много, то сложно запомнить какие префиксы и в какой момент нужно использовать. Что выбешивает. Вопросы: = что лучше использовать на ваш взгляд для того, чтобы обозначить разработчика - префиксы/суффиксы/ничего? = вы бы стали рефакторить приложение, избавляясь от префиксов (или превращая их в суффиксы)? каковы плюсы и минусы такого рефакторинга? А также хотелось бы услышать ваше мнения и размышления по поводу префиксов/суффиксов. Используете ли вы префиксы/суффиксы? Когда они вам пригодились, а когда нет? По-моему - префиксы/суффиксы совершенно бесполезная штука. Где я ошибаюсь? Заранее спасибо. По опыту, сталкивался с такой постановкой задачи: разработать новый модуль, все объекты, принадлежащие этому модулю именовать по правилу: <3 символа модуля>_<Имя объекта>. При разработке, и при переносе, и даже сейчас при поддержке этой функциональности это довольно удобно, психологически выделяется группа классов, EDT, таблиц и т.д. в АОТ, глядя на которые понимаешь - "Это этот модуль". Но тут, получается смысл префикса объекта приложения - идентификация его принадлежности к модулю (и удобная сортировка в AOT). На мой взгляд, префикс имеет смысл только в похожем случае (суффикс наверно был бы не настолько читабельным, и группа объектов, принадлежащая этому модулю будет разбросана в алфавитном порядке, и не будет представляться "группой" объектов). С другой стороны, делая доработки для одной компании, в которой кто только не успел "попрограммировать", постоянно встречаю префиксы. Причем префиксы были как названием компании, так и самих разработчиков В итоге открываю форму, начинаю смотреть дизайн, поля называются ~ "<префикс>_amount" (а EDT - AmountMST), перехожу в класс - вижу в нем и префиксы и комментарии. Помогают, пожалуй, только комментарии, а префиксы - оооооочень отвлекают и путают (в силу их неорганизованности в этом случае) . В результате, мне кажется префиксы имеют смысл при написании какой-то довольно большой новой функциональности (что бывает не очень часто), и они не имеют смысла, если выполняются запросы по поддержке функционала (исправление ошибок и т.п.). Последний раз редактировалось kornix; 15.10.2010 в 14:03. |
|
19.10.2010, 17:39 | #82 |
Banned
|
Чтобы подлить керосина в огонь: только что создал таблицу MMEOfficialsActingTable_RU.
Расшифровываем: некто, работающий для клиента "MME", дорабатывает таблицу исполняющих обязанности должностных лиц. Чтобы не перепутать с другой важной функциональностью для концерна, оставляем суффикс _RU, чтобы последующие поколения программистов могли легко определить: речь идет о доработке для загадочной страны Россия. Чем плохо? |
|
19.10.2010, 18:34 | #83 |
Модератор
|
Цитата:
Когда решим - будет винегрет из префиксов в AOT, и при объявлении переменных поди вспомни, под какого клиента объект изначально создавался. И главное, непонятно, кому эта информация в будущем может быть полезна и зачем ее держать в голове ("кэшировать AOT" (с)) P.S. Да чего там - я раньше в названия объектов и методов свои инициалы добавлял префиксом - сейчас, если где-то сохранилось (надеюсь, нет), наверное смотрится как "Киса и Ося были здесь"
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: EVGL (1). |
19.10.2010, 19:22 | #84 |
Moderator
|
А вообще - есть такое пародоксальное суждение: Если вы не можете разобраться в коде программы без документации, то вам и документация не поможет
Суждение конечно слишком сильное и провокационное, но я слишком часто при внедрениях Аксапты видел последствия подходов к документированию, позаимствованных на проектах по разработке тиражного софта. То есть - в начале проекта все документируем, префиксы, лейблы,бест-практис и тп. Потом манагер проекта вдруг видит что через 2 месяца запуск а сделано процентов 30 доработок, и начинает стимулировать разработчиков ипатьевским методом. В результате - процентов 30 проекта написано и задокументировано как по книжкам, а оставшиеся 70 процентов - написано как пьяная мартышка левой нижней рукой. Хотя с самого начала можно было не тратить столько времени на все эти методологии разработки "как в книжке", а просто попытаться написать не очень криво, зато почти весь код на одинаковом уровне. Так что - конечно все рассуждения из серии "Может быть полезным при апгрейде/поддержке и тп" - они в принципе правильные. Действительно может быть полезным. Но гораздо интереснее будет сравнить денежную полезность с денежными затратами на ведение префиксов/суффиксов/лейблов и тп... |
|
19.10.2010, 19:46 | #85 |
Microsoft Dynamics
|
Цитата:
Сообщение от fed
А вообще - есть такое пародоксальное суждение: Если вы не можете разобраться в коде программы без документации, то вам и документация не поможет
Суждение конечно слишком сильное и провокационное, но я слишком часто при внедрениях Аксапты видел последствия подходов к документированию, позаимствованных на проектах по разработке тиражного софта. То есть - в начале проекта все документируем, префиксы, лейблы,бест-практис и тп. Потом манагер проекта вдруг видит что через 2 месяца запуск а сделано процентов 30 доработок, и начинает стимулировать разработчиков ипатьевским методом. В результате - процентов 30 проекта написано и задокументировано как по книжкам, а оставшиеся 70 процентов - написано как пьяная мартышка левой нижней рукой. Хотя с самого начала можно было не тратить столько времени на все эти методологии разработки "как в книжке", а просто попытаться написать не очень криво, зато почти весь код на одинаковом уровне. Так что - конечно все рассуждения из серии "Может быть полезным при апгрейде/поддержке и тп" - они в принципе правильные. Действительно может быть полезным. Но гораздо интереснее будет сравнить денежную полезность с денежными затратами на ведение префиксов/суффиксов/лейблов и тп... |
|
19.10.2010, 20:39 | #86 |
Moderator
|
Цитата:
Сообщение от mifi
Не надо мешать все в одну кучу - "все документируем" - это одно, а следование стандартам разработки - совсем другое. Никогда не сталкивался с тем, что следование стандартам разработки замедляло проект. Разработчик\ПМ, который этим пытается оправдывать задержки сроков- не профессионал. Либо еще, либо вообще.
|
|
|
За это сообщение автора поблагодарили: kornix (2). |
19.10.2010, 21:11 | #87 |
Microsoft Dynamics
|
Цитата:
Сообщение от fed
Вообще-то я как раз высказался за то, чтобы соблюдать стандарты. Просто хорошо бы чтобы стоимость соблюдения стандартов не превышала эффект от их использования. А разработчики, особенно если проектом рулит манагер без серьезного опыта как разработки, склонны завышать стандарты документирования и оформления кода.
А вот насчет "стандартов оформления", т.е. соблюдение бест практис, правил именования, здравого смысла и т.д. - тут ничего завышать не надо, их просто надо соблюдать. И, если человек профессионал, то он понимает, что следование этим стандартам не увеличивает, а сокращает сроки проекта. Если он говорит иначе, то либо у него недостаточно знаний и опыта, либо его цель - написать глючный код, получить деньги и свалить. |
|
20.10.2010, 14:56 | #88 |
MCP
|
Цитата:
Сообщение от fed
Вообще-то я как раз высказался за то, чтобы соблюдать стандарты. Просто хорошо бы чтобы стоимость соблюдения стандартов не превышала эффект от их использования. А разработчики, особенно если проектом рулит манагер без серьезного опыта как разработки, склонны завышать стандарты документирования и оформления кода.
Последний раз редактировалось kornix; 20.10.2010 в 14:59. |
|
20.10.2010, 16:21 | #89 |
Banned
|
|
|
21.10.2010, 09:15 | #90 |
Microsoft Dynamics
|
|
|
21.10.2010, 10:45 | #91 |
MCP
|
Скорее всего у обычного разработчика обычный рабочий день, и вряд ли в зависимости от задачи/клиента будет изменяться его уровень дохода. Правила есть правила, требования придется выполнить, возможно разработка замедлиться
|
|
21.10.2010, 11:29 | #92 |
Участник
|
После такого бурного обсуждение и жалоб на жизнь разработчика хотелось бы увидеть примеры "абсурдных требований"(кроме уже упомянутых суффикосов/префиксов), с которыми приходиться/приходилось сталкиваться программистам. Думаю, это будет полезно и "таким PM" как наука на будущее. Прошу подделиться своим опытом.
|
|
21.10.2010, 14:20 | #93 |
Administrator
|
Цитата:
X++: // Описание: [Что делает этот класс] // Вход: [Какие данные нужно передать классу] // Выход: [Что выдает класс в результате своей работы] // Создан: [Дата], [Код и название можификации], [Код разработчика]
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: kornix (2). |
21.10.2010, 14:40 | #94 |
Участник
|
Самое абсурдное требование клиента, с которым я встречался - предоставить листинги (слово то какое замечательное =) ) Аксапты по всем внедренным модулям (полный БУ учет компании).
А приведенный пример документирования - вполне нормальный подход Сейчас (AX 2009), я так понимаю, MS сама это делает и используется для автоматического создания документации на код.
__________________
Ivanhoe as is.. |
|
21.10.2010, 15:44 | #95 |
MCP
|
Цитата:
Сообщение от sukhanchik
Сам не сталкивался - но видел код решения Колумбуса для Перекрестка (еще с далекого 2001-го года) и слышал со слов участвовавших в том проекте - что руководство ИТ Перекрестка заставляло в каждом классе в classDeclaration писать комментарии следующего плана:
X++: // Описание: [Что делает этот класс] // Вход: [Какие данные нужно передать классу] // Выход: [Что выдает класс в результате своей работы] // Создан: [Дата], [Код и название можификации], [Код разработчика] |
|
|
За это сообщение автора поблагодарили: zZ_TOP_Zz (1). |
22.10.2010, 16:26 | #96 |
Гость
|
> По-моему - префиксы/суффиксы совершенно бесполезная штука. Где я ошибаюсь?
Ошибка в слове "совершенно". Если их не использовать, можно столкнуться с проблемой апгрейда или миграции (в случае если названия ВНЕЗАПНО совпадут) |
|
22.10.2010, 16:33 | #97 |
Axapta
|
Так может это и не проблема? Может это хорошо и полезно столкнуться с таким совпадением? Выше уже была высказана разумная, на мой взгляд, мысль, что такое совпадение может сведительствовать о том, что в новой версии системы реализованная вами функциональсность сделана и Майкрософтом (может, конечно, совсем по-другому) и, возможно, стоит рассмотреть возможность не переносить имеющейся объект, а использовать появившуюся новую функциональность? Может, конечно, и придется свой объект с совпадающим именем переименовывать и переносить, но пища для размышления появится.
|
|
22.10.2010, 16:38 | #98 |
Гость
|
Для этого еще нужно, чтобы логика совпадала )))
Что, конечно, в некоторых случаях довольно вероятно, например добавление display- метода CustName на какую-нибудь таблицу с полем CustAccount. Но не забывайте про остальные случаи, и в особенности связанные с данными, что будет, если совпадет например поле таблицы? что будет с данными после такого апгрейда? ) |
|
22.10.2010, 16:48 | #99 |
Axapta
|
Если логика не совпадет, то переименуем объект. Вообще, это все технические и совсем не сложно решаемые задачи (особенно по сравнению с другими задачами, которые возникают в процессе перевода на новую версию), которые еще далеко не факт, что вообще возникнут. Оправдывать этим соображением использование префиксов-суффиксов как-то странно, мне кажется.
Не вижу в такой ситуации никаких проблем. |
|
22.10.2010, 16:53 | #100 |
Гость
|
> особенно по сравнению с другими задачами, которые возникают в процессе перевода на новую версию
А сравнивать нужно с вариантом с префиксами (что уж точно не сложнее - дописать 3 символа). При чем тут другие проблемы? |
|