|
![]() |
#1 |
Участник
|
Цитата:
Как вы считаете каковы причины того, что мы можем практически безболезненно перейти на новую версию Windows и при этом обновление версии AX является "проектом". Цитата:
Это всего лишь гаечный ключ к монстру
![]() Цитата:
Как я понимаю смена языка и среды разработки только увеличивает время разработки.
|
|
![]() |
#2 |
Banned
|
Цитата:
Если у нас есть Add-In или Add-On к MS Word (Excel, Project) например версии 2007 то поддержка следующих версий тоже будет требовать как минимум "проекта". Наше программирование в AX практически всегда является "Add-In" или "Add-On" поверх прикладного кода который может меняться. Цитата:
Сообщение от belugin
![]() Это не гаечный ключ а способ описания реализации.
Среда разработки и язык программирования это всего лишь гаечный ключ к монстру. Инструмент, не более того. "Картостроение" и "паковка" применительно к АХ это прежде всего функционал. А маленькие радости и горести программистов в мире строчек кода это извращения узкого круга гиков. Вот объясните бизнесу как вам хорошо от того что вы можете вместо трех строчек кода написать одну и от этого просто оргазмируете. Или даже то что айяяй - один и тот же код в десяти местах вместо одного. С приходом AX 2012 и множества полезностей разработка стала только дороже и дольше. Цена за интеграцию c VS, модели, компиляцию и более сложный фунционал. Это не плохо, это просто более дорогой ремонт более сложного механизма. В соседней теме звучало мнение о субьективных 30%-40% относительно к старым версиям AX: Впечатления от работы с MSDAX 2012 Последний раз редактировалось ax_mct; 22.09.2014 в 04:24. Причина: link added |
|
|
За это сообщение автора поблагодарили: Kabardian (1). |
![]() |
#3 |
Участник
|
Цитата:
Цитата:
Наше программирование в AX практически всегда является "Add-In" или "Add-On" поверх прикладного кода который может меняться.
Цитата:
Вот объясните бизнесу как вам хорошо от того что вы можете вместо трех строчек кода написать одну и от этого просто оргазмируете. Или даже то что айяяй - один и тот же код в десяти местах вместо одного.
Цитата:
Цена за интеграцию c VS, модели, компиляцию и более сложный фунционал.
Интеграцией с VS, моделями, компиляцией (в IL?) можно не пользоваться. Функционал не является средством разработки. Как по вашему, что из перечисленного внесло наибольший вклад в усложнение разработки? |
|
![]() |
#4 |
Banned
|
Цитата:
Сообщение от belugin
![]() Я не писал аддонов, но по опыту работы со скриптами не заметил никкакой обратной несовместимости - что там требуется кроме перебития номера версии в референсах? Тут говорял что аддины обратно совместимы.
Пойнт в том что использовать вызовы "системного" кода такого как WinAPI или популярные стандартные библиотеки - это одно (основываться на текущем фундаменте или на старом фундамента который оставили для совместимости), а ссылаться на прикладной слой (который меняется) это как на живом существе мансарду строить. Вы можете сделать в AX свой независимый модуль который будет использовать только свои собственные обьекты AOT (классы, таблицы и прочее) и все может быть хорошо. Но как только вы используете или ссылаетесь на "не свое" - оно может и более того должно меняться со временем. Это нормально. Так как чаще всего то что мы имеем в AOT это не "интерфейс", это внутренности сложного существа где все слишком переплетено. Начнем отделять один орган - порвем другие. Для работы со сторонними системами совместимость интерфейсов (данных, программного) необходима, но для внутренней работы AX это делать нельзя - живой и сложный организм помрет от такой целесообразности. Меняется функциональность - меняется все. Это оправданно. А то наш глаз который мы пристроили на лоб может оказаться совсем на другом месте просто потому что тело перевернули. Для бизнеса это внутренние проблемы программиста а не бизнеса. К которой прислушаются, но которая имеет понятное для них значение только если отражается на времени разработки и количестве "ошибок". А последние две вещи очень слабо связаны с программистскими радостями на уровне кода. Цитата:
Думаю что все понемногу внесло в усложнение разработки. Так как не одна составляющая усложнилась а почти все. И в каждом конкретном случае это по разному. |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от ax_mct
![]() Это как "повезет" или как о совместимости "позаботятся".
Пойнт в том что использовать вызовы "системного" кода такого как WinAPI или популярные стандартные библиотеки - это одно (основываться на текущем фундаменте или на старом фундамента который оставили для совместимости), а ссылаться на прикладной слой (который меняется) это как на живом существе мансарду строить. Цитата:
Так как чаще всего то что мы имеем в AOT это не "интерфейс", это внутренности сложного существа где все слишком переплетено. Начнем отделять один орган - порвем другие.
Цитата:
Меняется функциональность - меняется все. Это оправданно.
Цитата:
Для бизнеса это внутренние проблемы программиста а не бизнеса. К которой прислушаются, но которая имеет понятное для них значение только если отражается на времени разработки и количестве "ошибок". А последние две вещи очень слабо связаны с программистскими радостями на уровне кода.
Цитата:
Функционал напрямую связан со временем и стоимостью разработки. Даже в идеальном мире где вы кодируете по идеальной спецификации. Так как чем сложнее фунционал тем больше нужно и анализа и тестирования. Для меня разработка это полный цикл а не только удобное написание строчек кода.
- эти расширения практически не надо тестировать для работы в AX - разработчики VS знают, что они могут менять без нарушения работы расширений - вам не надо изучать реализацию редактора VS, а только его интерфейс чтобы его расширить Я не говорю, что для прикладного кода можно достигнуть совершенно такой же легкости и обратной совместимости, но думаю, можно существенно продвинуться относительно текущего состояния. |
|
|
За это сообщение автора поблагодарили: DSPIC (1). |
![]() |
#6 |
Сенбернар
|
Цитата:
Больно смотреть на то, как из нормального продукта (Аксы) делают.. полуфабрикат под свой вкус. ЗЫ : на вкус и на цвет все фломастеры - разные )
__________________
Best Regards, Roman |
|
![]() |
#7 |
Участник
|
Что именно оно? Отделять интерфейс от реализации?
Цитата:
Больно смотреть на то, как из нормального продукта (Аксы) делают.. полуфабрикат под свой вкус.
ЗЫ : на вкус и на цвет все фломастеры - разные ) |
|
![]() |
#8 |
Banned
|
Цитата:
Сообщение от belugin
![]() ...
Я не говорю, что для прикладного кода можно достигнуть совершенно такой же легкости и обратной совместимости, но думаю, можно существенно продвинуться относительно текущего состояния. … Проблема как раз в том, что Ax не конструктор, а конструкция из пластилина - у конструктора есть четкие интерфейсы деталек … Почему нельзя использовать те же принципы (...прекрасные детальки Tables, Forms, Maps…) для прикладного кода? … Вопрос в том, можно ли сделать прикладной код Ax больше похожим на конструктор … Наличие отделения интерфейса от реализации позволит сделать изменения более быстрыми и дешевыми С точки зрения программиста это нереально (или нереально дорого) отделить интерфейс от реализации для прикладной логики в AX. Дорого и неоправданно. Цитата:
Прикладной же код АХ это метаморф с постоянным изменением места внутренних органов и даже их функций. Сlasses, modules and functions should be open for extension but closed for modifications. Невозможно для прикладного кода AX. Это смерть для нее. Цитата:
![]() AX это вещь для потребителя. Программист AX не является ее потребителем а просто обслуживающий персонал. Представьте что вы заказываете себе строительство дома. И вам чихать на стандарты строителей и их цеховые правила а также на их внутреннюю гармонию с их непонятным вам миром. Все что вам нужно это соответствие вашим клиентским требованиям и ожиданиям. ![]() |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
![]() |
#9 |
Участник
|
Цитата:
Цитата:
Представьте что вы заказываете себе строительство дома. И вам чихать на стандарты строителей
![]() Пора закруглиться ![]() ![]() |
|
![]() |
#10 |
Гость
|
Цитата:
DAX же как правило используется как конструктор "собери сам". Если Windows выпускали бы как такой же конструктор и конечный продукт формировался для каждого клиента индивидуально, переход на новую версию был бы сопряжен с теми же трудностями. Примеры для AX 3 - 4- 2009: 1) Внедренцы DAX внедрили стандарт. Они будут переходить более менее безболезненно на новые версии, правда пользователей придется переучивать согласно новым тренингам и надеяться, что новые уникальные индексы уживутся со старыми данными. 2) Внедренцы DAX полностью проигнорировали стандартное приложение и запилили рядом свое с домино и медведями. Они на новые версии DAX будут переходить вообще без проблем. |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от Кирилл
![]() Потому что Windows - продукт коробочный, сценарии его использования и интерфейсы с другими программными продуктами заранее известны его разработчикам (а точнее ими же и диктуются).
DAX же как правило используется как конструктор "собери сам". Если Windows выпускали бы как такой же конструктор и конечный продукт формировался для каждого клиента индивидуально, переход на новую версию был бы сопряжен с теми же трудностями. Вопрос в том, можно ли сделать прикладной код Ax больше похожим на конструктор ![]() |
|
![]() |
#12 |
Участник
|
Цитата:
Лично для меня на 1 месте UnitTest, на 2-м рефакторинг со всеми БП... Без модульных тестов рефакторинг если и возможен, то нет уверенности в том, что вы ничего не сломаете. И все, никакого пластилина. Пользовательский тест обычно всегда после этого срабатывает.
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#13 |
Участник
|
Цитата:
Цитата:
Лично для меня на 1 месте UnitTest, на 2-м рефакторинг со всеми БП... Без модульных тестов рефакторинг если и возможен, то нет уверенности в том, что вы ничего не сломаете.
Те юниты которые есть часто не соответствуют понятиям предметной области или реализуют их неустойчивыми интерфейсами. Например нет такой сущности как "Журнал ГК" - его логика реализована в форме, таблицах, LedgerJournalEngine и прочем. Причем то, что реализовано в форме не имеет нормального программного интерфейса. Цитата:
И все, никакого пластилина. Пользовательский тест обычно всегда после этого срабатывает.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#14 |
Гость
|
Цитата:
Перенести всю логику из таблиц и форм, в классы, оставив там только вызовы соответствующих методов этих классов. |
|
![]() |
#15 |
Участник
|
Цитата:
Цитата:
Перенести всю логику из таблиц и форм, в классы, оставив там только вызовы соответствующих методов этих классов.
|
|
![]() |
#16 |
Гость
|
Цитата:
В примере Visual Studio Shell - это продукт, потребителем которого является программист, который всю логику потом и запиливает, но потом не может продать конечный продукт никому кроме себя. Это аналог использования DAX исключительно как средства разработки, в DAX тоже есть прекрасные детальки Tables, Forms, Maps и т.д. |
|
|
За это сообщение автора поблагодарили: DSPIC (1). |
![]() |
#17 |
Участник
|
Цитата:
Цитата:
Это аналог использования DAX исключительно как средства разработки, в DAX тоже есть прекрасные детальки Tables, Forms, Maps и т.д.
|
|
![]() |
#18 |
Гость
|
Цитата:
Все есть яд и и все есть лекарство, вопрос в дозах и условиях применения. Разные потребители. Прекрасными детальками пользуется программист. Он мыслит категориями "могу". Деталька предоставляет такие-то сервисы и накладывает такие-то ограничения и область применения. В итоге программист использует детальку только так, как это задумал ее автор, либо не использует. Потребителем прикладного решения является заказчик. Он мыслит категориями "хочу" и может захотеть что-либо, находящееся вне области применения, заданной нашей прекрасной системой без пластилина. И тут перед программистом встает дилемма. Либо отказаться от денег, либо от принципов ![]() Учетные системы их разработчиками задуманы как способ рубки бабла, а не абстрактная "вещь в себе", так что от денег отказываться никто не будет. Последний раз редактировалось Кирилл; 23.09.2014 в 14:52. |
|
![]() |
#19 |
Участник
|
Цитата:
Сообщение от Кирилл
![]() Разные потребители.
Прекрасными детальками пользуется программист. Он мыслит категориями "могу". Деталька предоставляет такие-то сервисы и накладывает такие-то ограничения и область применения. В итоге программист использует детальку только так, как это задумал ее автор, либо не использует. Цитата:
Потребителем прикладного решения является заказчик. Он мыслит категориями "хочу" и может захотеть что-либо, находящееся вне области применения, заданной нашей прекрасной системой без пластилина.
И тут перед программистом встает дилемма. Либо отказаться от денег, либо от принципов ![]() Дилемма всегда будет но при разных инструментах и подходах она встает реже или чаще. Я думаю, что можно серьезно уменьшить количество гнутых деталек, если поменять инструменты. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#20 |
Гость
|
|
|
Теги |
.net, aot, cil, layer, morphx, x++, компилятор, слои |
|
![]() |
||||
Тема | Ответов | |||
Прощай, CITP-AT / Software-Vertriebsfirma Columbus IT Partner programmiert Pleite | 3 |
|