AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 26.12.2019, 16:23   #1  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Для кого Best Practice?
Я решил вернуться в DAX, коллеги. Как что и почему в личку.
Открываю d365fo форму salesTable и нахожу более десятка
X++:
ttsbegin
в методах контролов формы. То есть Best Practice это для работяг, а настоящим пацанам можно?
__________________
Axapta book for developer
This post has been rated by: Logger (1), vmoskalenko (1).
Alt 30.12.2019, 10:14   #2  
Владимир Максимов ist offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1.726 / 1208 (44) ++++++++
Registriert seit: 13.01.2004
Blog-Einträge: 3
Ага, нашел наконец статью Best Practices с этой рекомендацией. Фиг найдешь еще ее на сайте Microsoft. Там вообще трудно что-то найти, если точно не знаешь где искать...

https://docs.microsoft.com/en-us/dyn...-code-in-forms

Вообще-то, все рекомендации Best Practices направлены на облегчение сопровождения кода. На то, что будет "потом". "Когда-нибудь". А при собственно написании кода - это некие дополнительные действия, которые именно в момент написания кажутся не очень-то и нужными. Ну и получаем, то, что получаем
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Alt 04.01.2020, 12:01   #3  
AlexSD ist offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Registriert seit: 14.10.2003
А что с ttsbegin в методах контролов D365 не так?
Alt 04.01.2020, 17:35   #4  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von AlexSD Beitrag anzeigen
А что с ttsbegin в методах контролов D365 не так?
например (подставьте любую песню, которую пользователь поёт внутри открытой транзакции)
X++:
ttsBegin;
I'm waiting for the night to fall
I know that it will save us all
When everything's dark
Keeps us from the stark reality
I'm waiting for the night to fall
When everything is bearable
And there in the still
All that you feel is tranquillity
There is a star in the sky
Guiding my way with its light
And in the glow of the moon
Know my deliverance will come soon
I'm waiting for the night to fall
I know that it will save us all
When everything's dark
Keeps us from the stark reality
I'm waiting for the night to fall
When everything is bearable
And there in the still
All that you feel is tranquillity
There is a sound in the calm
Someone is coming to harm
I press my hands to my ears
It's easier here just to forget fear
And when I squinted
The world seemed rose-tinted
And angels appeared to descend
To my surprise
With half-closed eyes
Things looked even better
Than when they were open
Been waiting for the night to fall
I knew that it would save us all
Now everything's dark
Keeps us from the stark reality
Been waiting for the night to fall
Now everything is bearable
And here in the still
All that you feel is tranquility
ttsCommit;
__________________
Felix nihil admirari
Alt 04.01.2020, 17:41   #5  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
в статье вроде не о транзакциях, а том, что вообще на форме кода должно быть минимум.
но как учили классики
Zitat:
В процессе развития форма отстаёт от содержания в ввиду отставания от содержания перестаёт соответствовать ему. Поэтому новое содержание временно облекается в старую форму, что вызывает противоречие между формой и содержанием. Это противоречие в конечном счёте приводит к сбрасыванию устаревшей формы, в результате чего содержание, которое облекается в новую, соответствующую ему форму, получает больший простор для своего дальнейшего развития.
__________________
Felix nihil admirari
This post has been rated by: MikeR (2).
Alt 04.01.2020, 20:00   #6  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Zitat:
Zitat von wojzeh Beitrag anzeigen
...вообще на форме кода должно быть минимум.
но как учили классики
И это актуально для D365FO, не говоря про код, да еще на контролах, где вообще кода быть не должно в принципе, а не просто кода, а самые что ни на есть транзакции. Получается, что обучающие ролики по D365FO про формы- ложь.
Те, решения которые вендор браковал по причине плохо написанного кода - это лишь надуманные придирки. Да и форма не из какого-нить купленного модуля. Форма то статусная - SalesTable. Думаю продолжать не имеет смысла, что не так...
Пишите дальше в таком же стиле, вы разработчик, не простой какой-нибудь, а разработчик Майкрософт. Это статусно.
__________________
Axapta book for developer
This post has been rated by: Logger (0).
Alt 04.01.2020, 22:32   #7  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4.004 / 3299 (118) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Zitat:
Zitat von AlexSD Beitrag anzeigen
А что с ttsbegin в методах контролов D365 не так?
Дык...
Не по феншую.

И эти люди запрещают нам ковырять в носу, тьфу, делать оверлейинг.
This post has been rated by: MikeR (2).
Alt 04.01.2020, 23:08   #8  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Сорян, я вообще не понял, что ты сказать хотел.
И нет, я не разработчик майкрософт.

В целом я согласен, что best practice написаны если не кровью, то слезами и соплями, но иногда жизнь диктует нам суровые законы, как говорил Остап Ибрагимович
__________________
Felix nihil admirari
Alt 04.01.2020, 23:59   #9  
ta_and ist offline
ta_and
Участник
 
226 / 122 (5) +++++
Registriert seit: 26.02.2002
Ort: СПб
Это еще ладно... а вот за какое место нужно гладить программиста M$ за то, что он делает ПРИВАТНЫЕ методы в классе - обработчике?
Надеюсь, всем понятно, что изменить мы этот метод в d365 напрямую мы не можем. Мы можем только сделать чайн класс. и попытаться перекрыть этот метод там... да вот незадача, приватные методы не перекрываются чайн-классом. А внутри этого метода без всяких дополнительных методов делается куча работы строк на 100500 без всяких шлюзов и вызовов других методов, с помощью которых можно было бы повлиять на выполнение этого не побоюсь этого слова г...
И вот приходится полностью дублировать класс, и подменять его вызов. И хорошо, что это вызов из пользовательского меню. А если бы этот вызов был бы зашит где-нибудь программно из других классов... А что если бы были наследники?... в общем шедевр на шедевре.
я уж не говорю о том, что методы стандартных классов должны, в принципе быть помечены как Replaceable - для того, чтобы разработчик мог НЕ вызывать стандартный next, если он не нужен..
Alt 05.01.2020, 01:17   #10  
AlexSD ist offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Registriert seit: 14.10.2003
А, феншуй... Ну, тогда да.

Я думал про то, что раньше был практический смысл, делать меньше кода, который выполняется на стороне клиенте. Сейчас в D365 весь код работает на "АОС". Так что, с этой точки зрения здесь остался только феншуй.

Вендор (МС) - это тысячи сотрудников, и каждый первый со своими тараканами в голове. Не всем (и не всему) нужно верить

Я ушел из МС 6 лет назад. Сейчас у меня появились задачи, которые я делаю для МСа в качестве внешнего вендора-контрактника. Мой код ревьювят так же, как я когда-то ревьювил чей-то код (Серега В., привет ). Появились новые БП, некоторые БП поменялись/отменились за это время. Все меняется. Не со всеми комментариями моего кода я соглашаюсь. Спорю и доказываю, что так, как сделал я, лучше и оптимальнее. БП придумывали люди для определенных ситуаций. Эта ситуация поменялась, БП - тоже меняется.

ЗЫ. Depeche Mode forever
Alt 05.01.2020, 01:24   #11  
AlexSD ist offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Registriert seit: 14.10.2003
Zitat:
Zitat von wojzeh Beitrag anzeigen
например (подставьте любую песню, которую пользователь поёт внутри открытой транзакции)
Ну, вы проверьте сами. В форме SalesTable нет кода, который состоял бы только из ttsbegin. Везде указана пара вызовов ttsbegin/ttscommit. Т.е. у пользователя нет времени на музицирование между ttsbegin и ttscommit.
Alt 05.01.2020, 03:17   #12  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von AlexSD Beitrag anzeigen
Depeche Mode forever
amen!
__________________
Felix nihil admirari
Alt 05.01.2020, 21:41   #13  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Я помню, что меня за заполнение двух полей на методе write datasource распинали бронзовые товарищи в свое время. А тут целая транзакция в контроле форме. Ребята, да вы, вообще, с паттерном MVC знакомы?
В PHP если вы делаете вставку записи на уровне контролера, не говоря уже про view, то ваш код не пройдет проверку в нормальной конторе, это уровень модели, а то и ниже.
Форма в АОТ - это некий симбиоз view + controller. Какие транзакции?! Причем здесь выполнение на клиенте?!
Мы теперь в форме весь код держим, так что ли? Нужно записать, обновить. удалить, не стесняемся...
__________________
Axapta book for developer
Alt 05.01.2020, 22:49   #14  
sukhanchik ist offline
sukhanchik
Administrator
Benutzerbild von sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3.343 / 3563 (125) ++++++++++
Registriert seit: 13.06.2004
Ort: Москва
Zitat:
Zitat von MikeR Beitrag anzeigen
Мы теперь в форме весь код держим, так что ли? Нужно записать, обновить. удалить, не стесняемся...
Мировоззрение поменялось. Форма теперь - это по сути особый класс, который с т.з. того же PHP работает на сервере и тут нет клиентской части.
Так что в общем-то особо нет разницы (с т.з. производительности) где расположен код. Другое дело, если эту транзакцию надо вызвать не только с этой формы. Но это уже не вопрос производительности. А архитектура может меняться настолько непредсказуемо, что один фиг может потребоваться полная переделка. Поэтому логично сделать не заморачиваясь.
__________________
Возможно сделать все. Вопрос времени
Alt 06.01.2020, 00:49   #15  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von sukhanchik Beitrag anzeigen
Мировоззрение поменялось. Форма теперь
мировоззрение, может, и поменялось, а форма-то сама поменялась в этом плане?
по-моему, большинство объектов тихо переехали по программе реновации и похорошели
__________________
Felix nihil admirari
Alt 06.01.2020, 01:17   #16  
AlexSD ist offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Registriert seit: 14.10.2003
Zitat:
Zitat von MikeR Beitrag anzeigen
Я помню, что меня за заполнение двух полей на методе write datasource распинали бронзовые товарищи в свое время. А тут целая транзакция в контроле форме. Ребята, да вы, вообще, с паттерном MVC знакомы?
Я вроде не слышал раньше, что форма SalesTable или какая другая форма в Аксапте хоть как-то была связана с MVC.
В SalesTable пишет куча народу из разных отделов слабо связанных между собой. Вы хотите сказать, что если условный разработчик, где-то наткнулся на какой-то нынче модный паттерн, он в неделю отпущенную ему на задачу переписывает всю систему с нуля основываясь на этом шаблоне? Вряд ли такого разработчика долго продержат в компании
Я думаю, что каждый человек добавляет свой код базируясь на своем личном в данный момент чувстве прекрасного и разумном времени, которое ему выделили на эту задачу.
Alt 06.01.2020, 10:13   #17  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Слава богу народ в open source (php) переболел безумием отказа от паттернов. А с аксаптой все граздо хуже. И это подтверждает тот факт, что на собеседовании допустим в авито, вас будут спрашивать про паттерны, а вот если проходить собеседование по аксапте, то про паттерны либо не будут спрашивать, либо будут спрашивать уже на должность арихтектора. Условный разработчик по аксе условно плохо представляет SOLID.
В строительстве без паттернов можно строить быстро и дешево хозблоки, но никак не возможно построить высотное здание типа Москва Сити с сложной архитектурой и коммуникациями.
Программирование - очень молодая отрасль и те, кто привык не отходя от формы делать в ней все, еще достаточно много, Но надо понимать, что аксапта должна сильно отличаться от движка блогов.
Опять же если в строительстве высотного здания использовать деревянный фундамент, то оно просто рухнет. Так как за эти столетия накопился опыт и стратегии, появились ГОСТ-ы.
В программировании аксапты пока есть понимание, что на клиенте, выполнять код плохо, Это самое, самое начало...
Так вот php код тоже всегда выполняется на web сервере, это не клиентские сценарии js. И тем не менее уже есть понимание, что делать в view, контроллере и модели.
Да я вижу, что sales Table не подходит под паттерн проектирования. Его просто нет. Так зачем тогда мурыжить в тренингах по разработке, что не пишем код на формах. Очередная промывка мозгов?
__________________
Axapta book for developer
Alt 06.01.2020, 10:20   #18  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Zitat:
Zitat von sukhanchik Beitrag anzeigen
Мировоззрение поменялось. Форма теперь - это по сути особый класс, который с т.з. того же PHP работает на сервере и тут нет клиентской части.
Просто проектанты из мс не знают паттернов. На собеседовании спрашивают, какие фуркты и как переместить из одной карзины и куда.
Zitat:
Zitat von sukhanchik Beitrag anzeigen
А архитектура может меняться настолько непредсказуемо, что один фиг может потребоваться полная переделка. Поэтому логично сделать не заморачиваясь.
Если архитектура строится не на паттернах, грош ей цена. Поэтому и переделывается несколько раз, так как нет понимание как делать.
__________________
Axapta book for developer
Alt 06.01.2020, 10:26   #19  
axm2017 ist offline
axm2017
Участник
 
2.067 / 296 (14) ++++++
Registriert seit: 15.05.2017
Эмм.. писать на формах наверное плохо.
Почему надо писать код не на формах тоже достаточно очевидно.

Однако рвать волосы как то не вижу повода: есть разница между поддержкой и написанием нового.

Насколько понимаю из редких бесед с представителями мс сейчас развитие системы идёт путем эволюции и ключевое даже потенциально не внести новые ошибки. Поэтому доступный код не должен меняться без веских оснований.

Новый же код должен соответствовать бп и прочему + соображениям здравого смысла.
Alt 06.01.2020, 16:38   #20  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Не заметил, что бы с чьей-то головы упал хоть один волос, а вот замять, заболтать попытки есть.
Если все таки очевидно, то, наверное, было бы логично внести в список баг, которые надо поправить, именно как багу.

ЗЫ, Вот не понимаю, почему так все на любят жигули, это которая LADA. Народ старается, план выполняется, импорт замещается, комплектующие западные. А с конвейера выезжают жигули. Не понятно, короче.
__________________
Axapta book for developer
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
palleagermark: Authoring Best Practice checks that use XML based input Blog bot DAX Blogs 0 06.01.2017 11:12
emeadaxsupport: Short System Data Type "IdentifierName" resulting in false Best Practice checks Blog bot DAX Blogs 0 18.06.2014 10:11
AX UK: Building a Microsoft Virtualisation & Management Practice Blog bot DAX Blogs 0 17.02.2010 21:07

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 11:25 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.