17.07.2013, 12:42 | #1 |
Роман Долгополов (RDOL)
|
DAX 2012 и шаблоны проектирования
К шаблонам проектирования все относятся по разному - кто то молится на них, кто то на дух не переваривает, ну а основная масса DAX разработчиков про них просто не знает
Выскажу такое мнение - если вы разработчик DAX 2012 то узнать про шаблоны требуется в обязательном порядке, а следующие две книги Приемы объектно-ориентированного проектирования. Паттерны проектирования Архитектура корпоративных программных приложений обязательны к изучению. Просто потому что те, кто проектировал DAX 2012 про шаблоны знали и применяли. Как применяли и каковы результаты применения уже другой вопрос. Но вопросов "а что это за хрень?", "что они курили?", "#####%%%%%ьььь????" и прочих подобных после изучения станет в разы меньше. Просто вы станете "видеть" эти шаблоны в системе, сможете сравнить то что получилось в DAX с тем что пишут в книжках/интернетах, сможете агрументированно высказывать своё мнение. Книг по этой тематике немало, но ИМХО разработчикам DAX начинать надо с тех что я написал. |
|
|
За это сообщение автора поблагодарили: mazzy (2), AlGol (1), Garic (2), Vadik (1), Ruff (1), AlexeyS (1), Logger (3), gl00mie (1), S.Kuskov (1), SRF (1), dech (1), АртемМелихов (1). |
06.05.2014, 13:14 | #2 |
Участник
|
Цитата:
Просто потому что те, кто проектировал DAX 2012 про шаблоны знали и применяли.
|
|
06.05.2014, 13:29 | #3 |
Участник
|
|
|
06.05.2014, 15:20 | #4 |
Участник
|
До AX2012 RecId не использовался как полноценный ключ.
Плюсом для АХ4 и выше стало появление Unit Testing.
__________________
// no comments |
|
07.05.2014, 00:26 | #5 |
Участник
|
Я лично не видел 4.0, так что мое мнение может быть ошибочным, но, к примеру, в 2009-й появились примеры использования шаблона listener/subscriber, которого даже рядом не было в приложении 3.0, широко стал применяться шаблон "стратегия", ему даже посвятили отдельную тему в MSDN. Вообще, по-моему, в 2009-й отметились люди из C#, которые попытались "программировать с использованием языка, а не на языке" X++.
|
|
|
За это сообщение автора поблагодарили: Logger (3), NetBus (1), S.Kuskov (1). |
07.05.2014, 10:18 | #6 |
Участник
|
и похоже, придется вплотную заняться C#, так как есть подозрение, что через пару лет X++ в Аксапте может отойти на второй план.
|
|
07.05.2014, 10:21 | #7 |
Участник
|
я так думаю что X++ в стратегии Microsoft уже умер =))) т е "живой труп" или "хромая утка" используя политическую аналогию
|
|
07.05.2014, 10:44 | #8 |
Участник
|
Цитата:
Во-первых, C# программистов больше и поэтому дешевле, поэтому корпоративным заказчикам будет проще закрыть вакансии при внедрении и поддержке. Это дает больше возможностей для расширения рынка для MS Во-вторых, X++ уже сейчас используется только для бизнес-логики и может компилироваться в CIL И в третьих, поддержка еще одного языка требует дополнительных ресурсов IMHO |
|
07.05.2014, 11:43 | #9 |
Участник
|
Цитата:
Цитата:
Да, мы уже думали об этом. В частности, мы думали о том, чтобы генерировать из p-кода исходный код на C#, и нам это вполне под силу. И это дает нам возможность полностью отказаться от X++: давайте просто нажмем на кнопку и транслируем 98% имеющейся бизнес-логики в корректно работающий код на C#; затем мы можем посадить за работу армию программистов, и через месяц они доведут этот показатель до 100%, и тогда X++ уйдет в историю. Консалтинговые компании, ISV, компании, внедрившие Dynamics AX, - все те, кто ищут разработчиков для доработки приложения Dynamics AX, уже не будут говорить кандидатам: "...только вам придется еще выучить новый язык программирования, называемый X++", нет, вместо этого они смогут говорить: "вы будете работать с .NET в привычной среде разработки, это будет вкладом в вашу карьеру, все, чем вы будете заниматься у нас, вы затем сможете применить и в других компаниях". По-моему, это наилучший сценарий, который только можно вообразить.
|
|
|
За это сообщение автора поблагодарили: mazzy (2), AlexeyS (1). |
07.05.2014, 12:03 | #10 |
Moderator
|
По моим ощущениям, у опытного разработчика (на любом языке) на изучение X++ уходит порядка 2-3 недель. На изучение среды исполнения (в общем - как решать задачи по формированию форм, работе с контроллами, отчетами и тп) уходит порядка 6-8 месяцев. На изучение собственно прикладного ядра до приличного уровня - года 3-4-5 (как повезет). Перевод на C# позволит сэкономить аж 2-3 недели из 3-4-5 лет. Большой прогресс. Безусловно оправдяет слом всей среды...
|
|
|
За это сообщение автора поблагодарили: mazzy (2), BOAL (2), AlexSD (3), lev (6), S.Kuskov (1), GBH (1). |
07.05.2014, 14:48 | #11 |
Участник
|
Изучить X++ легче, чем C#, это верно, только проблема не в этом, а в том, что X++ это довольно узкая ниша и грозит стать еще уже.
Поэтому для программиста нужен существенный довод, чтобы с широко распространенного C# перейти на более простой и менее востребованный, ведь вернуться обратно будет сложнее. Тут ситуация как с Delphi - есть проекты, есть вакансии, но если ты уже опытный программист на другом языке, то на Delphi вряд-ли пойдешь, так как в дальней перспективе - неперспективно. Поэтому постепенно перейдем на C# в течение нескольких лет, ничего страшного. |
|
07.05.2014, 15:22 | #12 |
Moderator
|
Цитата:
Если продолжать пример с Delphi - была еще такая среда разработки C++ Builder, фактически Delphi сделанный на языке C++. И этим самым программистам на C++ Builder сейчас найти нормальную работу не намного легче чем Дельфистам. Потому что чтобы с VCL переучиться на MFC+ATL, сил нужно потратить почти столько же сколько на изучение C++ +MFC+ATL с ноля (при условии наличия общего программистского опыта конечно). Последний раз редактировалось fed; 07.05.2014 в 15:55. |
|
|
За это сообщение автора поблагодарили: ax_mct (2). |
07.05.2014, 18:38 | #13 |
Британский учённый
|
Да-да, теперь можно прочесть книгу С# за 21 день и идти работать АХ разработчиком, смишно. В любой среде разработки главное не язык, а знание технологий и непосредственное опыт. В Акспте требуется не просто кодить, а понимать архитектуру, функционал, бизнес процессы и еще много много других вещей которые к тому же еще и между версиями могут очень отличаться. Так что армия дотнетчиков это все сказки. Мне кажется единственная цель с которой МС переводит АХ на дотнет это более гибкие возможности интеграции с другими компонентами, продуктами и системами. Все остальное имхо этого не стоит.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
07.05.2014, 19:07 | #14 |
Moderator
|
На самом деле - то что для нас сказка ("Да вы разработчиков на любом C# форуме наймете за 50000 в месяц"), для сейлов - важный sales point при работе с клиентским Айтишником. Ни о каких интеграциях тут и речи не идет. Просто в любом продукте должны быть "бусы для дикарей", которые облегчают его продажу тем сотрудникам клиента, которые совсем не в теме и задают не те вопросы. На мой взгляд - и перевод на C# и workflow и интеграция с Analysis Services - из этой оперы....
|
|
|
За это сообщение автора поблагодарили: mazzy (2), Logger (3), gl00mie (2). |
08.05.2014, 12:51 | #15 |
NavAx
|
Цитата:
Да, если человек все время варился в кухне AX, то отставание от существующих подходов к разработке, определенно, накапливается. И книги из первого поста позволят наверстать упущенное за последние лет 5-10 (примерно к тем временам, если не более ранним, относится появление концепции "шаблонов проектирования").Другое дело, что вменяемый разработчик бОльшую часть этих шаблонов и сам применяет, просто не давая им конкретного названия. Они - суть просто готовые "рецепты" со своими областями применимости. Еще далеко шагнуло версионирование (появление GIT), По ходу написания пришла мысль. Будет забавно, если в Аксапту лет через 5-10 докатится мода на "ленивые вычисления" или функциональщину... Интересно, во что это выльется?
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... Последний раз редактировалось Maximin; 08.05.2014 в 12:54. |
|
|
За это сообщение автора поблагодарили: mazzy (2), lev (2). |
08.05.2014, 13:55 | #16 |
Участник
|
Я бы поспорил. Мне до сих пор на фрилансе приходят предложения по Delphi. Между прочим Skype тоже написан на Delphi, платежная система Апельсин, а также различные улучшалки производительности Windows от фирмы Auslogics Software. Так что здесь как посмотреть...
__________________
// no comments |
|
08.05.2014, 18:13 | #17 |
Banned
|
На последнем проекте был хороший программист из C#. Написал с нуля вывод во внутренние отчеты AX. Типа полное разделение уровня дизайна и кода, ни строчки кода в AOT/Report. Красиво, я оценил, но мне хотелось его придушить.
|
|
08.05.2014, 18:24 | #18 |
Участник
|
Цитата:
- "А я, обычным молотком прибил этот гвоздь".
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
08.05.2014, 18:49 | #19 |
Участник
|
Не знаю, связано ли это с модой на функциональщину, но в том же чудо-модуле TRAX, который появился в R3, куча мест в коде написана так: по входным данным заполняется XML-ка, дергается поставляемая с модулем .NET-сборка - бульк! - на выходе получаем другую XML-ку, которая раскладывается по нужным таблицам. В итоге видим, что "что-то не срослось", как следствие, тариф не подобрался, перевозчик не определился, в общем, идите лесом. Чего ей надо, почему не подобралось ничего - поди догадайся. Ладно еще, если дело окажется в том, что во входной XML-ке значения енума передались русскими метками, а сборка ожидала увидеть там название элементов енума латиницей, такое можно раскопать "методом пристального взгляда", а в остальном - черный ящик...
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
08.05.2014, 19:34 | #20 |
Banned
|
Цитата:
Но когда в чужом монастыре пытаются навести свой ужасный порядок начиная с наименования переменных и не имея понятия об уставе монастыря (best practices по всем темам) чувствуешь не просто раздражение а праведный гнев Мне их тоже однако жаль, быть программистом AX это быть золотарем, не для чистюль То есть свалка и грязь чаще всего и никакие шаблоны это не разгребут |
|
Теги |
ax2012, шаблон |
|
|