|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Есть клиент.
Теперь с ним работаем мы. Но раньше с ним кто только не работал. Поколения разработчиков использовали префиксы (как это рекомендовалось в ранних бест-практисах) в результате сейчас нередки подобные названия DDD_Codes.KKK_XXX_LL_OKVED. (где ККК, ХХХ, LL - префиксы) Поскольку кастомизированных таблиц и полей много, то сложно запомнить какие префиксы и в какой момент нужно использовать. Что выбешивает. Вопросы: = что лучше использовать на ваш взгляд для того, чтобы обозначить разработчика - префиксы/суффиксы/ничего? = вы бы стали рефакторить приложение, избавляясь от префиксов (или превращая их в суффиксы)? каковы плюсы и минусы такого рефакторинга? А также хотелось бы услышать ваше мнения и размышления по поводу префиксов/суффиксов. Используете ли вы префиксы/суффиксы? Когда они вам пригодились, а когда нет? По-моему - префиксы/суффиксы совершенно бесполезная штука. Где я ошибаюсь? Заранее спасибо. 2) Если код пишет консалтинг для клиента, то желательно чтоб использовал свой префикс. 3) Префикс используем только для нового объекта. Для методов или полей этого объекта не используем. Т.е. ситуация когда место DDD_Codes.OKVED будет DDD_Codes.KKK_OKVED считается исключительной. Т.е. написал например свой объект консалт. А клиенту потом пришлось дописывать(создать у этого объекта свой метод). Или наоборот. Но при этом смотря на объект сразу понятно кто писал и что было вмешательство в алгоритм. 4) Я придерживаюсь мнения, что если объект писал один человек, то он его и должен дорабатывать. С таким подходом исключительных ситуаций возникает мало. Если консалтинг своё отработал и необходимо вмешательство. Ок. Делай на его объекте метод с клиентским префиксом и работай. Как только на этом объекте будет рябить в глазах от префиксов, это значит что класс сильно переработали и это повод для рефракторинга. А в первоначальной постановке вопроса вижу какую то предвзятость. 1) Потому что специально наверно сделали связку префикс_префикс_префикс. Которая не является нормой для подход изложенного выше. А является нормой для какого то другого подхода. 2) имя метода OKVED написано капсом. Что само посебе заставляет задуматся.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#2 |
Участник
|
Комментарии в коде, описывающие проект, разработчика и т.п. то же вызывают неоднозначное отношение, вспомнил ветку:
А в ваших разработках тоже не принято ставить комментарии? То же очень интересует вопрос, нужно ли использовать префиксы-суффиксы. Пока везде, где работал использовались суффиксы, кроме одного места шабашки, где используют префиксы - лично мне этот подход очень не понравился. Может быть для статистики mazzy добавить к теме голосовалку? Хочется посмотреть статистику. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от miklenew
![]() 4) Я придерживаюсь мнения, что если объект писал один человек, то он его и должен дорабатывать. С таким подходом исключительных ситуаций возникает мало.
Если консалтинг своё отработал и необходимо вмешательство. Ок. Делай на его объекте метод с клиентским префиксом и работай. Как только на этом объекте будет рябить в глазах от префиксов, это значит что класс сильно переработали и это повод для рефракторинга. но вся петрушка в том, что приложения живут дольше, чем разработчики ![]() таблицы/поля/методы апгрейдятся из версии в версию. нарастает куча используемого кода в сторонних приложениях. и т.п. Цитата:
Сообщение от miklenew
![]() А в первоначальной постановке вопроса вижу какую то предвзятость.
1) Потому что специально наверно сделали связку префикс_префикс_префикс. Которая не является нормой для подход изложенного выше. А является нормой для какого то другого подхода. 2) имя метода OKVED написано капсом. Что само посебе заставляет задуматся. 2) Блондинка я, блондинка. Цитата:
Но не вижу осмысленных вариантов. Человек может предпочитать суффиксы, но работает в приложении с префиксами и вынужден следовать устоявшимся правилам. поэтому глупо спрашивать "что импользуете сейчас?". А если задать вопрос в стиле "как бы вы поступили на новом приложении?"... Дык, получим какого-то сферического коня в вакууме. Предложите варианты. |
|
![]() |
#4 |
MCTS
|
Пожалуй вставлю свои пять копеек...
Как показывает практический опыт, от использования различных кодов (номер модификации, номер проекта и т.п.) в наименовании объектов системы абсолютно никакой пользы нет! Однако их использование значительно ухудшает восприятие кода. Единственное исключение - Использование номеров модификаций в наименовании проектов (при условии, что есть какой-то реестр модификаций со сквозной нумерацией). Использование префиксов в классическом смысле (большие буквы с нижним подчеркиванием) в наименовании объектов также стараюсь избегать. Однако использование смысловых префиксов (какое-то имя, объединяющее группу разных объектов по общему смыслу) очень удобно. Классический пример - название модуля в имени объекта. Хотя каких-то концептуальных различий между префиксом "LG_" и "Ledger" я не вижу. Просто исторически так сложилось, что используется удобочитаемый префикс, который облегчает восприятие кода. Соответственно не вижу смысла изобретать велосипед и ставить везде какие-то особенные префиксы. Суффиксы часто использую в классах-наследниках для их группировки в АОТ. Однако опять же использую в основном смысловые суффиксы ("_Purch", "_Sales"), а не классические ("_RU"). Аргумент, что правильное наименование облегчает поиск объекта в AOT, считаю полным бредом. Как правило, поиск 90% объектов в системе начинается с меню/формы. И тот факт, что в классе использован префикс "Ledger" вместо "LG_" абсолютно никак не ускоряет его. Однако при анализе и доработке кода, смысловые префиксы/суффиксы значительно облегчают восприятие кода и увеличивают производительность программиста. Но это в равной степени касается не только наименований объектов, но и объявлений переменных. Вообщем, мое ИМХО, использование префиксов/суффиксов зависит от уровня профессионализма программиста. Чем выше уровень, тем больше программист уделяет внимания восприятию своего кода и его удобочитаемости , и тем меньше использует классические префиксы/суффиксы, а все больше смысловые.
__________________
Dynamics AX Experience |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от CDR
![]() Вообщем, мое ИМХО, использование префиксов/суффиксов зависит от уровня профессионализма программиста. Чем выше уровень, тем больше программист уделяет внимания восприятию своего кода и его удобочитаемости , и тем меньше использует классические префиксы/суффиксы, а все больше смысловые.
Работал и так и так и с префиксами и с префиксами ввиде названия модуля. И одно другому не мешает. префикс_названиемодуля_ит.д. В коде вверху создаёте переменную. X++: ; А статические методы они на то и статические чтоб вызвал и забыл. Цитата:
С префиксами получается 90+10. А без префиксов 90. А сколько раз в день вы тыкаете в аот и набираете с клавы какое нибудь название, чтобы система привела вас курсором к этому объекту? Кроме того используя перекрёстные ссылки я бывает просто отбрасываю часть объектов с префиксами или без в зависимости от того что ищу.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. Последний раз редактировалось miklenew; 07.10.2010 в 11:28. |
|
![]() |
#6 |
Участник
|
Цитата:
префиксы в этих выпадающих списках... ну, как серпом по яйцам. и не сочтите за рекламу. лично я купил и активно юзаю axassist. эта штука ускоряет кодирование во много раз. если суффиксы еще можно терпеть, то префиксы вырубают все ускорение. даже со стандартными списками. кроме того, префиксы замедляют работу, поскольку приходится сканировать/искать несколько раз. я тоже согласен, что названия модулей вполне могут быть префиксами. но речь идет о том, что каждый разработчик использует свои префиксы. как в таблицах/классах (что еще объяснимо), так и в полях, и в типах, и в енумах (последние просто выносят мозх). |
|
![]() |
#7 |
MCTS
|
Цитата:
![]() Смысловые префиксы облегчают восприятие кода другим программистом - это факт. Программист, думающий о восприятии своего кода другим программистом, как правило думает и о развитии и сопровождении своего кода. А это уже серьезная заявка на то, что бы быть мегагуру! ![]() Цитата:
![]() Цитата:
Сообщение от miklenew
![]() Ага а остальные 10% можно не искать.
С префиксами получается 90+10. А без префиксов 90. А сколько раз в день вы тыкаете в аот и набираете с клавы какое нибудь название, чтобы система привела вас курсором к этому объекту? Кроме того используя перекрёстные ссылки я бывает просто отбрасываю часть объектов с префиксами или без в зависимости от того что ищу. ![]()
__________________
Dynamics AX Experience |
|
![]() |
#8 |
Участник
|
Цитата:
Цитата:
Вообщем, мое ИМХО, использование префиксов/суффиксов зависит от уровня профессионализма программиста. Чем выше уровень, тем больше программист уделяет внимания восприятию своего кода и его удобочитаемости , и тем меньше использует классические префиксы/суффиксы, а все больше смысловые.
Цитата:
3) Всё не пойму, зачем вы пытаетесь что в первом что во втором сообщении как то класифицировать уровень разработчиков? Одни хорошие делают так, другие так не делают значит они плохие разработчики. В моём понимание хороший специалист в своём деле, никогда не станет мегагуру, если он будет закрывать так вопросы. Помню собрались специалистов по аксе с двух компаний, человек 40. И начальник айтишников место ответа на вопрос о технологии работы начал рассказывать о своём авторитете. Лучше бы он ответил, обсудим позже. И такие cлучаи к сожаленью не редки. Вот mazzy. Он на этом форуме давно и в аксе давно, но я не помню чтоб он ссылался на свой авторитет хоть в одной теме. Он либо приводит доводы или просто высказывает свою точку зрения или случаи из жизни. С таким подходом даже если он человека не переубедит, человек может сам современем передумать.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. Последний раз редактировалось miklenew; 07.10.2010 в 16:10. |
|
![]() |
#9 |
Member
|
Цитата:
Сообщение от miklenew
...
А мне всегда казалось, что префиксы не используют люди с большими амбициями и с большим желанием всё сделать по быстрому. ... Считаете, что стандартный код хуже вашего? Если вы представитель заказчика, собираетесь работать на нем вечно? Вы вообще код рефакторите? Если в общем, я за единообразие кода. Вижу в этом плюсы. Префиксы не решают эффективно задачу комментирования кода. Это мы разобрали. Вникание в работу нового привлеченного исполнителя затрудняют. Потенциально способствуют дублированию одних и тех же сущностей. Тычут палки в колеса ООП (типа поменял метку в одном типе и везде поменялось). Сильно замедляют процесс разработки не только новому для проекта программисту, но и старожилу (Маззи привел абсолютно жизненные примеры, подтверждаю на 100 процентов, сам доходил до бешенства пытаясь что-то найти). В общем, думаю что я уже пасс дальше обсуждать. Кто прочитает — пусть думает и решает.
__________________
С уважением, glibs® |
|
![]() |
#10 |
MCTS
|
Цитата:
Сообщение от miklenew
![]() Это была ирония на ваши слова.
Работал чел без префиксов в одной организации - он мегагуру. Пришёл в другую организацию, работает с префиксами - он снова в lol превратился. 1)-2) это технология работа, какая бы она не была в организации ей нужно следывать. 3) Всё не пойму, зачем вы пытаетесь что в первом что во втором сообщении как то класифицировать уровень разработчиков? Одни хорошие делают так, другие так не делают значит они плохие разработчики. В моём понимание хороший специалист в своём деле, никогда не станет мегагуру, если он будет закрывать так вопросы. Помню собрались специалистов по аксе с двух компаний, человек 40. И начальник айтишников место ответа на вопрос о технологии работы начал рассказывать о своём авторитете. Лучше бы он ответил, обсудим позже. И такие cлучаи к сожаленью не редки. Вот mazzy. Он на этом форуме давно и в аксе давно, но я не помню чтоб он ссылался на свой авторитет хоть в одной теме. Он либо приводит доводы или просто высказывает свою точку зрения или случаи из жизни. С таким подходом даже если он человека не переубедит, человек может сам современем передумать. Все мои ответы были даны исключительно в контексте исходного вопроса Сергея. А он спрашивал не о классификации разработчиков, а именно о "технологии разработки". Соответственно и я не делил разработчиков на уровни в зависимости от использования ими префиксов/суффиксов, потому что как вы правильно отметили, разработчики обязаны руководствоваться в своей работе уже принятыми правилами/стандартами разработки. А вот разрабатывает эти правила/стандарты обычно один человек - руководитель группы разработки (технический архитектор, ведущий разработчик, т.п.). И смысл моего исходного поста был в том, что чем выше уровень проффесионализма этого человека, тем больше он обращает внимание на эффективность своей и чужой работы, и тем четче у него понимание того простого факта, что наименование объектов в системе должно служить лишь одной единственной цели - простое и быстрое восприятие уже написанного кода, впрочем как и все остальные требования к написанию кода. Для решения всех остальных задач есть другие инструменты как в самой системе так и вне ее, позволяющие решать эти задачи опять же более эффективно. +1
__________________
Dynamics AX Experience |
|
![]() |
#11 |
северный Будда
|
Я тоже так думаю
__________________
С уважением, Вячеслав |
|
![]() |
#12 |
Axapta
|
Поле добавлено в задании R128. А в задании R176 серьезно меняется принцип его заполнения так, что R128 становится уже неактуальным. Что делать? Важно же не где объект создавался, а где описано его текущее состояние.
|
|
![]() |
#13 |
Гость
|
Цитата:
Тут странно читать о том, что важно лишь текущее состояние. ![]() Принцип заполнения выражается на X++, где есть X++ там есть и комментарии. Там будет что-то типа X++: \\ OIP 07.10.2010 R176 ... Вот сижу сейчас в приложении. Суффиксов нет. В таблицах новые и измененные поля видно. По перекрестным ссылкам можно посмотреть где поле используется, если оно используется в коде. Если повезет, встречу там комментарии с сылкой на задание и даты. Отсортирую по датам, почитаю задания, восстановлю контекст. Можно и так. Суффикс мне облегчил бы поиск задания, с которого все начиналось, а возможно на нем и закончилось. |
|
![]() |
#14 |
северный Будда
|
Аудиторский след - это возможность проследить пошагово все выполненные изменения. Какое это имеет отношение к префиксам?
__________________
С уважением, Вячеслав |
|
![]() |
#15 |
Гость
|
Цитата:
А слова про аудиторский след были ответом на мнение о том, что важно лишь текущее состояние. |
|
![]() |
#16 |
Axapta
|
Цитата:
Если по какой-то причине вам очень часто надо узнавать, в рамах какой модификации добавлялось поле, есть куча способов гораздо лучше, даже если вы почему-то не хотите использовать систему контроля версий. От ветки с Application Documentation в АОТе до статического метода description на таблице. И заметьте, при этих способах очень редко нужная информация о номере модификации не будет постоянно мелькать перед глазами. А смотреть ее будут только тогда, когда (если) она понадобится. |
|
![]() |
#17 |
Гость
|
Цитата:
Вы так кипятитесь, что я начинаю чувствовать себя ярым защитником суффиксов, хотя на самом деле нейтрально отношусь к ним и просто привел пример где они могли бы быть полезны ![]() В туалете для смыва обычно располагают кнопку на бачке, хотя есть куча способов гораздо лучше и вообще без кнопки, которая мозолит глаза. Но кнопка на бачке это просто и предсказуемо ![]() |
|
![]() |
#18 |
Участник
|
Немалый объем книги Стива Макконнелла "Совершенный код" посвящен парвильному именованию переменных, классов, их методов, отдельных функций без привязки к конкретному языку программирования. Автор, по-моему, является сторонником "осмысленного именования" вышеперечисленных конструкций посредством использования так называемых префиксов и суффиксов.
Я тоже более склонен к подобному принципу именования языковых конструкций, в котором используются и префиксы, и суффиксы. Главное, чтобы их использование было по существу и со смыслом. Это может в дальнейшем помочь быстрей разобраться с объемным кодом самому же разработчику, а также сторонним программистам. И как мне кажется, использование этих "морфологических элементов" должно быть строго регламентировано на уровне компании и максимально приближено к общим стандартам программирования (хотя это понятие - "стандарты программирования", достаточно расплывчато и динамично).
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 12.10.2010 в 15:47. |
|
![]() |
#19 |
MCP
|
Цитата:
Сообщение от mazzy
![]() Есть клиент.
Теперь с ним работаем мы. Но раньше с ним кто только не работал. Поколения разработчиков использовали префиксы (как это рекомендовалось в ранних бест-практисах) в результате сейчас нередки подобные названия DDD_Codes.KKK_XXX_LL_OKVED. (где ККК, ХХХ, LL - префиксы) Поскольку кастомизированных таблиц и полей много, то сложно запомнить какие префиксы и в какой момент нужно использовать. Что выбешивает. Вопросы: = что лучше использовать на ваш взгляд для того, чтобы обозначить разработчика - префиксы/суффиксы/ничего? = вы бы стали рефакторить приложение, избавляясь от префиксов (или превращая их в суффиксы)? каковы плюсы и минусы такого рефакторинга? А также хотелось бы услышать ваше мнения и размышления по поводу префиксов/суффиксов. Используете ли вы префиксы/суффиксы? Когда они вам пригодились, а когда нет? По-моему - префиксы/суффиксы совершенно бесполезная штука. Где я ошибаюсь? Заранее спасибо. ![]() По опыту, сталкивался с такой постановкой задачи: разработать новый модуль, все объекты, принадлежащие этому модулю именовать по правилу: <3 символа модуля>_<Имя объекта>. При разработке, и при переносе, и даже сейчас при поддержке этой функциональности это довольно удобно, психологически выделяется группа классов, EDT, таблиц и т.д. в АОТ, глядя на которые понимаешь - "Это этот модуль". Но тут, получается смысл префикса объекта приложения - идентификация его принадлежности к модулю (и удобная сортировка в AOT). На мой взгляд, префикс имеет смысл только в похожем случае (суффикс наверно был бы не настолько читабельным, и группа объектов, принадлежащая этому модулю будет разбросана в алфавитном порядке, и не будет представляться "группой" объектов). С другой стороны, делая доработки для одной компании, в которой кто только не успел "попрограммировать", постоянно встречаю префиксы. Причем префиксы были как названием компании, так и самих разработчиков ![]() ![]() В результате, мне кажется префиксы имеют смысл при написании какой-то довольно большой новой функциональности (что бывает не очень часто), и они не имеют смысла, если выполняются запросы по поддержке функционала (исправление ошибок и т.п.). Последний раз редактировалось kornix; 15.10.2010 в 14:03. |
|
![]() |
#20 |
Banned
|
Чтобы подлить керосина в огонь: только что создал таблицу MMEOfficialsActingTable_RU.
Расшифровываем: некто, работающий для клиента "MME", дорабатывает таблицу исполняющих обязанности должностных лиц. Чтобы не перепутать с другой важной функциональностью для концерна, оставляем суффикс _RU, чтобы последующие поколения программистов могли легко определить: речь идет о доработке для загадочной страны Россия. Чем плохо? |
|