Зарегистрироваться | Поиск |
Результаты опроса: Используете ли вы Best Practice Check при разработке? | |||
Да, Best Practice Check в моём приложении всегда выполняется автоматически. | 12 | 20.00% | |
Да, я периодически запускаю Best Practice Check вручную. | 18 | 30.00% | |
Нет, я не использую Best Practice Check, но стараюсь следовать рекомендациям при программировании. | 27 | 45.00% | |
Нет, я не использую Best Practice Check и не знаком с рекомендациями. | 3 | 5.00% | |
Я не программирую в AX. | 0 | 0% | |
Голосовавшие: 60. Вы ещё не голосовали в этом опросе |
|
Опции темы |
|
21.02.2012, 00:00 | #1 |
Administrator
|
Опрос: Используете ли вы Best Practice Check при разработке?
Случайно на форуме наткнулся на великолепную статью в блоге: kamalblogs: Towards Dynamics Ax Product Certification – Best Practices (Part I)
В целом, ничего слишком интересного в статье, конечно, нет, но предыстория её появления показательна. Некая группа разработчиков, сотрудников компании-партнёра Microsoft, озаботилась сертификацией своего решения для AX и с удивлением обнаружила, что полное соответствие Best Practices является одним из критериев. У статьи счастливый конец - после месяца борьбы с компилятором и собственным кодом, разработчики осознали, что проверка на соответствие Best Practices не прихоть Microsoft, а действительно полезное занятие, повышающее надёжность кода. Побочным результатом стало налаживание более или менее осмысленной процедуры разработки с контролем версий и автоматическими сборками. За программистов-партнёров можно только порадоваться, но сколько разработчиков не сталкиваются с необходимостью сертификации своих решений? Видят ли они пользу в проверке Best Practices в своём коде? Пользуются ли ею? Особенно интересно, как отвечают на эти вопросы начинающие AX-разработчики. Господа, пожалуйста, удовлетворите моё любопытство. Ответьте на опрос Спасибо всем поучаствовавшим.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
21.02.2012, 10:47 | #2 |
Moderator
|
Похоже что я один честно ответил: "Нет, я не использую Best Practice Check и не знаком с рекомендациями." Нет, я конечно читал когда-то Best Practice (во времена версии 2.1) и даже перекомпилял время от времени приложение с включенными проверками.(В разных версиях). Из всего этого вынес ощущение, что 80% best practice - это best practice разработки сферического коня в вакууме. Ну вот нахрена мне пользоваться глючными метками, если внедрение идет на одном клиенте с одноязычным персоналом ? Нахрена мне строить индекс по сочетанию полей в каждом where, если я знаю что это параметрическая таблица из 10 записей, которая влезает в одну страницу, почти никогда не обновляется и по которой я уже построил разумный кластерный индекс ?
То есть - конечно я какими-то базовыми соглашениями best practice пользуюсь, но процентов 80 игнорирую и при выходе новой версии, обновления best practice - не читаю. Последний раз редактировалось fed; 21.02.2012 в 10:53. |
|
|
За это сообщение автора поблагодарили: Maxim Gorbunov (2), macklakov (1), dn (2), DSPIC (-2). |
21.02.2012, 11:33 | #3 |
Administrator
|
Цитата:
Сообщение от fed
Похоже что я один честно ответил: "Нет, я не использую Best Practice Check и не знаком с рекомендациями." Нет, я конечно читал когда-то Best Practice (во времена версии 2.1) и даже перекомпилял время от времени приложение с включенными проверками.(В разных версиях). Из всего этого вынес ощущение, что 80% best practice - это best practice разработки сферического коня в вакууме.
В любом случае, я думаю, ты важную тему затрагиваешь - сейчас Best Practices в Developer Help представляются просто как список ничем не обусловленных рекомендаций. Я ни разу не видел обсуждения Best Practices и их обоснования (ну, за исключением бумажки, под названием Trustworthy Computing, к которой тоже много вопросов). В такой ситуации, в общем-то, не удивительно, что они так часто игнорируются. Ну и пару слов по поводу твоих примеров "ненужных" рекомендаций. Цитата:
Цитата:
Заставил задуматься - может быть нам действительно стоит обсудить, кто какие Best Practices проверяет, а какие игнорирует? Заодно разберёмся, почему такие рекомендации возникли изначально. Так сказать, на пользу будущим поколениям программистов AX
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.02.2012, 11:47 | #4 |
Ищущий знания...
|
помню в свое время, с помощью проверки BP нарыл в системе (в классах, таблицах, формах) очень много объявленных, но не используемых переменных. Казалось бы мелочь, но память то под них выделяется при выполнении... Получается какое то "не целевое использование средств" .
Единственный нюанс, это наверное единственное что мне вспомнилось, когда проверка BP действительно сильно помогла. Во всех остальных случаях просто просматриваешь что там написал компилятор, и игнорируешь сообщение за ненадобностью С другой стороны, считаю все таки полезно иногда вручную запускать эту проверку BP. Вдруг в BP, что то добавили важное, и к этому действительно стоит прислушаться (хотя конечно за последние 5-6 лет ничего такого не встретилось ).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
21.02.2012, 11:57 | #5 |
Moderator
|
Цитата:
А в то что метки могут не глючить - не верю. Они были глючными в версии 2.1 и они продолжают глючить в версии 2009 RU7. Вот недавно на двуязычном внедрении, коллеги накатили импорт проекта с метками, а после этого у них сервера стали выдавать сооющение "Ошибка чтения при смешении бла бла байт в файле таком-то". Пришлось индексы приложения и метод грознуть и сервера рестартовать в середине рабочего дня. |
|
21.02.2012, 12:12 | #6 |
Administrator
|
Цитата:
X++: class TestClass1 { } public static void main(Args args) { CustTable custTable; select firstonly custTable where custTable.SalesGroup == '10'; } Цитата:
Сообщение от fed
А в то что метки могут не глючить - не верю. Они были глючными в версии 2.1 и они продолжают глючить в версии 2009 RU7. Вот недавно на двуязычном внедрении, коллеги накатили импорт проекта с метками, а после этого у них сервера стали выдавать сооющение "Ошибка чтения при смешении бла бла байт в файле таком-то". Пришлось индексы приложения и метод грознуть и сервера рестартовать в середине рабочего дня.
Самый неприятный "глюк" меточных файлов на моей практике - импорт проектов с метками в среду, в которой работает несколько АОСов. Новые метки при этом появляются только у клиентов, подключенных к тому АОСу, в который проект импортировался. Решается проблема импортом меток (только меток!) на каждый АОС по отдельности. Неприятно, конечно, но не смертельно.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.02.2012, 12:20 | #7 |
Moderator
|
Цитата:
Сообщение от Maxim Gorbunov
.Ужас У меня, конечно, тоже бывали такие ошибки, но я что-то не помню, чтобы это было связано с метками. Ошибка чтения бывала в AOD-файлах, в AOI - это, да. В ALD, ALC или ALI - не видел. Вообще-то, у меня и мысли не возникало, что это может как-то быть связано с метками. Самый неприятный "глюк" меточных файлов на моей практике - импорт проектов с метками в среду, в которой работает несколько АОСов. Новые метки при этом появляются только у клиентов, подключенных к тому АОСу, в который проект импортировался. Решается проблема импортом меток (только меток!) на каждый АОСы по отдельности. Неприятно, конечно, но не смертельно. |
|
21.02.2012, 10:51 | #8 |
Участник
|
Ну вопрос не в том, следуют ли разработчики best practice и следят за обновлениями, а в том пользуются ли они для самоконтроля этой кнопкой
|
|
21.02.2012, 10:57 | #9 |
Участник
|
fed, вы всё-таки лукавите Одно дело знать рекомендации, и понимая причины этих рекомендаций отступать от них. А другое дело игнорировать общепринятые правила, руководствуясь собственными предпочтениями или привычками.
|
|
21.02.2012, 11:05 | #10 |
Moderator
|
А я их не знаю. Я их читал году в 2002 и наверное процентов на 70 уже забыл. А то что для версий 3,4 и 2009 было - я точно не читал. Если я каких-то ошибок в программировании, например, SQL или взаимодействия между AOS и клиентом не делаю, так это не потому что я best practice читал, а просто потому что мой опыт или мое понимание того как SQL или AOS работают, говорят мне что такой то подход будет чреват такими-то граблями...
Кроме того, я видел лавки (ну например в германии), где строго контроллировали соответствие бест-практис и при этом делали чудовищные ошибки в дизайне и в коде... |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
21.02.2012, 11:37 | #11 |
Участник
|
читал, стараюсь следовать 5% если не ещё меньше
|
|
21.02.2012, 11:49 | #12 |
северный Будда
|
У меня эта проверка включена постоянно. Просто к рекомендациям BP нужно подходить разумно, а не слепо следовать букве закона. К тому же, многие проверки отключаются настройками. Например, я не вижу смысла в проверке на пользовательском слое русскоязычного клиента 100% использования меток вместо текста, и это у меня отключено.
__________________
С уважением, Вячеслав |
|
21.02.2012, 11:57 | #13 |
----------------
|
Пока идет разработка БП отключен, так как тормозит при каждой компиляции.
Перед переносом на тест включаю. Удобно при работе с метками, быстро отлавливаются все забытые места. Удобно при код-ревью - само контролирует заполнение свойств на различных элементах. |
|
21.02.2012, 12:09 | #14 |
Moderator
|
Кстати единство именования переменных это штука хорошая, но на мой взгляд, достаточно чтобы параметры функций начинались с подчеркивания, а переменные - нет. Требование начинать имя переменной с маленькой буквы приводит к забавным идентификаторам типа pBASomething - совершенно не читаемым.
Про отступы в тексте- двумя руками за. Только для этого ведь BP не нужно читать, достаточно обычной программистской культуры... |
|
21.02.2012, 12:24 | #15 |
Administrator
|
Цитата:
Сообщение от fed
Кстати единство именования переменных это штука хорошая, но на мой взгляд, достаточно чтобы параметры функций начинались с подчеркивания, а переменные - нет. Требование начинать имя переменной с маленькой буквы приводит к забавным идентификаторам типа pBASomething - совершенно не читаемым.
Допустим, у нас в методе объявлена табличная переменная типа PBATable. Следуя сложившейся традиции, назовём её так же, как и таблицу, то есть pbaTable. Проблема в том, что рядом в коде могут использоваться и динамические методы объекта pbaTable, и статические методы таблицы PBATable, и даже методы, объявленные на Map'е PBAItemLine. Конечно, всегда можно разобраться, какой именно метод используется в данный момент, немного заглянув вперёд в код, но это занимает время, ведь так? А имена переменных вроде pBATable - это как раз от непонимания сути Best Practices, которую в Developer Help разъяснять не стали. Эх, как бы эту культуру ещё привить
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.02.2012, 12:31 | #16 |
Moderator
|
|
|
21.02.2012, 12:40 | #17 |
Administrator
|
Не спорю. Но модуль модулю рознь. В частности, Product Builder - это такая адская ахинея, что им можно реально пугать по ночам Сам Microsoft, кстати, признался в своём бессилии и отказался от попыток привести это буйство фантазии кодеров в сколько-нибудь удобоваримый вид - Product Builder больше не развивается, а из следующих версий вообще будет исключён (см. http://www.microsoft.com/download/en...s.aspx?id=7225).
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.02.2012, 12:54 | #18 |
Британский учённый
|
Ага, это только в теории. Наши партнеры, как раз продали свой модуль МС, в 2009 версии он устанавливается отдельно, а в 2012 уже часть системы. Так вот не знаю как в 2012, но в 2009 их код это нечто. Я с ним и так часто сталкивался, а когда апгрейдил, то насмотрелся. "Бестпрактис? Не, не слышали." - это про них )
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
21.02.2012, 13:03 | #19 |
Участник
|
Тут добавлю по нововведениям.
AX2012 проверяет сколько полей используется из курсора и если используется 1 поле предлагает заменить select tableBuffer на select FieldList from tableBuffer А это по моему как раз совсем и не BestPractice |
|
21.02.2012, 13:06 | #20 |
Administrator
|
Почему нет? Особенно, если учитывать, что это рекомендация только для локальных select'ов.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
Теги |
best practice, x++, опрос, программирование |
|
|