начало недели: мелкомягкий тренинг
08.10.2007 21:05Был сегодня на первом дне обучения по небезызвестному продукту мелкомягких Axapta (ныне именуемая Microsoft Dynamics AX).
Обучение шло с отрывом от производства (полный рабочий день) и проводило его (и будет еще проводить дня 2 минимум) компания Columbus.
Занесло меня туда от моей текущей работы, ибо скоро эти знания будут востребованы.
Занесло — потому как ранее я майкрософтовским софтом серьезно не занимался (делфи и фокспро там всякие — не в счет), ибо всю сознательную жизнь радел за юниксы (FreeBSD, если быть точным).
- ERP-система реально большая и крутая. Знания в этой области никогда не помешают. Мало ли чего.
- Обстановка обучения была весьма дружественной (было 12 человек, из которых человека 4 — из моей организации)
- Всё “железо” было от IBM. Вспомнил работу в Плэйфоне, где проработал на таком компе 1,5 года (правда, с большим размером экрана)
- Хороший офис и приветливый персонал
- Неожиданно бесплатный обед в близлежащем ресторанчике
И продуманные кофе-брейки.
Что огорчило:
- [шквал необузданных мыслей on]
Система разработки и сам язык программирования X++ (продвигаемый, как синтез С++, Java и SQL) оказались на троечку.
То есть, конечно, понятно, что от ERP-системы не надо ждать большего.
Что главная ее цель — решение проблем предприятия, автоматизация там и прочее.
Но меня, как разработчика, в первую очередь интересовало удобство редактора, продуманность заявленной ООП (но ощутить в полной мере ее пока не удалось: может быть, прошло мало времени, не знаю), наличие грамотной документации (а ее (сюрприз!) не оказалось. То есть для 4-й версии аксапты, которая была выпущена год назад, ее практически нет даже у самого майкрософта), продуманная структура системных объектов и таблиц (а оказалось, что они там свалены все в одну кучу и о базах данных, как таковых, речь не идет — используется только одна (!) БД. Каталогизировать таблицы тоже нельзя и приходится придумывать префиксы и постфиксы), грамотность самого языка в конце концов (Java-like ООП, повторюсь, не заметил. Удивили некоторые искусственные конструкции, например: массивы начинаются с 1, а не с 0. Присвоение значения 0-му элементу приводит к очищению всего массива (!); список переменных (которые в ООП должны быть полями класса) отделяется от программного кода (который должен в ООП быть заключен в методы) просто точкой с запятой (;). Да, точка с запятой — это в Х++ считается разделителем метода на 2 логические части.Ебануться. Удивительно. В стандартные языковые конструкции был зачем-то вплетен SQL. То есть можно написать select * from table и дальше — if, while, for и прочее. Причем это не прямые SQL-запросы к БД — они интерпретируются интерпретатором аксапты в прямые и потом посылаются уже СУБД. Вследствие этого в SQL-язык были введены определеные новшества и убраны, как авторы языка посчитали, излишества (например, нет distinct, having и пользовательских функций). Плюс позабавила возможность писать просто: select table. И всё. И дальше использовать по коду то, что это вернет. В переводе это означает — выбрать все поля указанной таблицы с сортировкой по первичному ключу. Нифига не интуитивно и, как и 0-й элемент массива, может привести к трудноуловимым ошибкам в коде. Finalize-блока в экспепшенах тоже нет. Как закрывать открытые соединения после catch — непонятно). Вспомнил не всё, были еще нюансы. Следующие дни покажут.
[шквал необузданных мыслей off]
То есть много вот таких деталей, из которых потом складывается общее впечатление о софте, который будет иметь твой мозг в будущем перед дедлайном.
В очередной раз убедился, что Intellij IDEA — рулит (если не брать в учет языки и сравнивать с точки зрения методологии программирования и удобства редактора кода). - Плохая вентиляция. Приехал весь взмокший.
А в целом всё было на уровне. Мне понравилось.