AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.09.2014, 21:50   #1  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
К тому же там C#, а речь о X++
Старый 17.09.2014, 03:08   #2  
KindDog is offline
KindDog
Участник
 
28 / 36 (2) +++
Регистрация: 13.07.2005
Адрес: Москва
Лучше бы Python вместо шарпа вкорячили.... си плюс плюсов было бы больше
Старый 17.09.2014, 10:01   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от KindDog Посмотреть сообщение
Лучше бы Python вместо шарпа вкорячили.... си плюс плюсов было бы больше

Как в Питоне сделать, чтобы
X++:
(x for c in employee if employee.salary >= 100)
Приводило к SQL запросу? Я, правда, перестал интересоваться этим лет 8 назад - но тогда хорошего способа не было.
Старый 17.09.2014, 10:25   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,004 / 3299 (118) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Мне кажется основные проблемы в Аксапте не из-за языка программирования и его недостатков / преимуществ. Все что сейчас надо, можно сделать текущими средствами.

Вопрос в том что именно делать, как делать и как это продавать.
Старый 18.09.2014, 17:18   #5  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
А еще полезная фича от ФП - передача функции как параметра.
Недостатков в современных системах и языках быть не должно, нужно принимать все полезное новое, а не страдать от отсталости имеющихся средств.
Благо выбор инструмента имеется.
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
За это сообщение автора поблагодарили: Diman (1), pitersky (-1).
Старый 18.09.2014, 19:43   #6  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,518 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от perestoronin Посмотреть сообщение
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
"если у вас есть молоток, то вы со всем будете обращаться как с гвоздями"(с)
инструмент всё-таки должен соответствовать задаче
копать современной машиной траншеи, конечно, быстрее, но если она копает 5% времени, а 95% простаивает, то вряд ли это эффективный инструмент
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: perestoronin (-1).
Старый 19.09.2014, 08:44   #7  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,347 / 996 (38) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от perestoronin Посмотреть сообщение
А еще полезная фича от ФП - передача функции как параметра.
Недостатков в современных системах и языках быть не должно, нужно принимать все полезное новое, а не страдать от отсталости имеющихся средств.
Благо выбор инструмента имеется.
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
Быстрее и дешевле всего аммоналом рвануть. При этом пустота в грунте образуется в разы больше, чем у конкурентов.
К примеру, те же ФП штука мощная, но читать и дебажить их почти так же трудно, как регулярные выражения.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: perestoronin (-1).
Старый 19.09.2014, 09:01   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от macklakov Посмотреть сообщение
но читать и дебажить их почти так же трудно, как регулярные выражения.
Почему?
За это сообщение автора поблагодарили: perestoronin (1).
Старый 19.09.2014, 09:51   #9  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,347 / 996 (38) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от belugin Посмотреть сообщение
Почему?
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
__________________
Isn't it nice when things just work?
Старый 19.09.2014, 10:58   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,004 / 3299 (118) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
Вот-вот !
Нужно думать еще о том какого уровня спецы будут потом систему поддерживать.
Спички детям не игрушка.
За это сообщение автора поблагодарили: Diman (1), perestoronin (1), ax_mct (4).
Старый 19.09.2014, 11:13   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить.
В F# можно (есть еще REPL), в C# в лямбдах нельзя.

Цитата:
И рекурсии на каждом шагу.
А это чем мешает?

Цитата:
А еще возможность написать всю программу в одну строку.
Такие программы дебажатся при помощи repl

Цитата:
Ну и конечно же ФП чемпион по возможностям мета-программирования.
ФП и метапрограммирование параллельны. Сравните Lisp nemerle и какой-нибудь F#.

Цитата:
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
LINQ в C# этот как раз ФП для немытых масс. + больше возможностей реализовать open closed principle (убрать от шалдовливых ручек правку исходников, а всместо этого давать расширять)
За это сообщение автора поблагодарили: Diman (1), perestoronin (1).
Старый 19.09.2014, 11:18   #12  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
Брекпоинты ставить можно во многих ЯФП, правда не везде, но если правильно код написан, то и отладка в тех местах не нужна. В ФП много разных вкусностей, но увы, это не про X++ и даже не про С#.

А вот за контейнеры, согласен, я б их вообще запретил, а еще c anytype что-то надо сделать на этапе компиляции.
__________________
Sapere aude
Старый 22.09.2014, 04:10   #13  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Вот стандарт наименования для C#
Нет стандартов в C#, есть рекомендации. И если наименование свойств как интерфейса важны то с локальными переменными все работают как бог на душу положит.
Программисты из других систем в X++ пишут не
InventTable inventTable;
а
InventTable tblInvent;
InventTable table;
InventTable _invent;
и так далее. То есть они просто не следуют уставу монастыря в которой пришли.
Или еще того хуже следуют примерам из MSDN
http://msdn.microsoft.com/en-us/library/jj677293.aspx
Loan lTbl;
Person pTbl;

delete_from lTbl;
delete_from pTbl;

У меня лично иногда это вызывает некоторое раздражение при том что с C# у меня уже лет 11 как все хорошо.
А подобный кодинг я вижу все чаще и чаще когда опытные программисты но из других систем начинают работать с AX.
Иногда даже почти родное m_* для членов класса встретишь.

И дело конечно же не в C#, а в самих программистах. Лично я на каждом языке (С, C++, VB, Java, C#, X++) всегда программировал так как принято в данном языке.

Но я вижу что подобных поводов для раздражения относительно кода будет все больше и больше из-за "доступности" AX для большего числа программистов.
Так как для меня определенно что все эти изменения не для удобства специалистов по AX а для маркетинговой привлекательности и декларируемого доступа более "дешевых" программистов с опытом не в MorthX а в Visual Studio.

Как понимаю спрос на "архитекторов" резко возрастет так как все будут думать что в Visual Studio и на C# могут программировать многие деревни в Индии и надо только найти создателя технических спецификаций и будет всем экономия денег (Смайлик я поставил, смайлик!)
Старый 22.09.2014, 09:03   #14  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Нет стандартов в C#, есть рекомендации.
Как, впрочем и в X++.

Цитата:
InventTable tblInvent;
Тяжелое наследие венгерской нотации. Пришло из C

Цитата:
InventTable table;
В коротких методах - более менее, если в нем нет ничего кроме "invent" но лучше inventTable.

Цитата:
InventTable _invent;
На это даже есть автоматическая проверка, насколько я помню.


Цитата:
Но я вижу что подобных поводов для раздражения относительно кода будет все больше и больше из-за "доступности" AX для большего числа программистов.
Как вы думаете, почему эти имена прошли code review?
Если бы code review делался автоматически прямо по мере набора кода больше или меньше шансов было получить такие имена?


Последний раз редактировалось belugin; 22.09.2014 в 09:08. Причина: Вставка скриншота
Старый 22.09.2014, 16:41   #15  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
...
На это даже есть автоматическая проверка, насколько я помню.
...
Как вы думаете, почему эти имена прошли code review?
Если бы code review делался автоматически прямо по мере набора кода больше или меньше шансов было получить такие имена?
Практически всегда на проектах начально настройки Best Practices checks минимальны. При включении максимального уровня хочется ее снова выключить так как количество ошибок в уже живом коде за сотни.

Code review эти имена не проходят. Его практически просто нигде нет. Некому и незачем. Лично я устал на каждом новом проекте об этом говорить. Бесполезно.

И да такая автоматическая проверка только и спасет. Но это надо чтобы хоть один такой перфекционист оказался в начале проекта. Дело ведь не только в опытности но и в менталитете.
Старый 23.09.2014, 06:23   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Практически всегда на проектах начально настройки Best Practices checks минимальны. При включении максимального уровня хочется ее снова выключить так как количество ошибок в уже живом коде за сотни.
Можно анализировать только новые ошибки.

Цитата:
И да такая автоматическая проверка только и спасет. Но это надо чтобы хоть один такой перфекционист оказался в начале проекта.
Если бы у вас был инструмент типа Resharper, могли бы переименовать не нравящиеся вам переменные прям по ходу дела.
Старый 23.09.2014, 02:39   #17  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
подобный потс говорит многое о внедренцах во Владимире =)
За это сообщение автора поблагодарили: mazzy (0), DSPIC (0).
Старый 25.09.2014, 13:04   #18  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Прогресс... Совершённый язык...

Я в упор не вижу недостатков X++.
Так же как и не вижу недостатков в Visual Basic, Java, C, C++, C# на которых я работал коммерчески.

Вот Assembler меня доставал, копать землю иголкой мне не понравилось.

Я очень против "прогресса" когда шило меняется на мыло, или на молоток ставят резиновую накладку и говорят о революции. В результате этого бессмысленного прогресса вызванного маркетингом очень мало опытных и нормальных программистов. Нормальные люди устают от этих скачек и уходят наверх или в сторону от программирования в АХ. Как результат остаются или останутся только сумасшедшие или новички.

А система такова что при программировании сам синтаксис это дело десятое. Но без опытных программистов, которые при этом понимают что важно а что нет, система просто может стать радиоактивной помойкой. С вылизанными до блеска столбами
Старый 25.09.2014, 15:36   #19  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
C# 6
http://damieng.com/blog/2013/12/09/p...es-illustrated

Чуть короче объявления. То есть например вместо трех строк одна.

Программирование, в том числе и на X++, это не синтаксис языка и лаконичность его конструкций, это прежде всего грамотное использование архитектуры конкретной системы и концепций ООП насколько это уместно для данной системы. То есть я могу понять разговоры про интерфейсы и паттерны, AX Best Practices, но меня просто парализуют разговоры о сокращении строчек кода.

Неужели мы, программисты AX (X++) в настолько разных реальностях?

P.S.
Цитата:
для быстрочитаемого и при этом компактного надежного кода
Сомнительно про надежность и читаемость когда код "компактен" и "красив".
P.P.S
Красивость и надежность кода никак не связана c синтаксисом языка. Как письмо на французском не делает его изысканным по причине использования данного языка.

Вот зачем уходить от X++?

Ладно там надежность/производительность в силу интерпретатора или компилятора, среды выполнения. Но тогда надо говорить не о выражениях языка а о других компонентах. А тут как я понимаю речь о листингах кода и как строчки кода могут выглядеть. Я вас просто не понимаю

Последний раз редактировалось ax_mct; 25.09.2014 в 15:57.
Старый 25.09.2014, 15:51   #20  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Сомнительно про надежность и читаемость когда хочется компактно и красиво.
Компактность и красота нужна не для сокращения объема до уровня зашифрованного текста (perl), а для легко читаемого листинга, больше похожего на набор наглядных коротких математических формул (scala).
За это сообщение автора поблагодарили: Diman (1).
Теги
.net, aot, cil, layer, morphx, x++, компилятор, слои

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Прощай, CITP-AT / Software-Vertriebsfirma Columbus IT Partner programmiert Pleite EVGL DAX auf Deutsch 3 02.10.2007 14:45

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:41.