11 сентября 2016 года, 20:56

Обновил мой блог о хайбрисе. Собрал в один список все переменные, доступные из всех шаблонов, которые могут представлять интерес для разработчика. Эта часть хайбриса плохо документирована (или не документирована), так что списочек должен быть полезен как справочник.

https://hybrismart.com/2016/09/08/jsp/

Следующий пост будет, скорее всего, про Microsoft Bot Framework. Мне удалось сделать прототип чат-бота, работающего по Skype, Messenger и еще 8 каналам. Очень интересная тема. Готовлю пока материал.

https://hybrismart.com/2016/09/08/jsp/

05 сентября 2016 года, 22:19

Новое крупное обновление на моем блоге про Хайбрис. Сделал прототип интеграции SAP hybris и Google AngularJS 2.

AngularJS – это такой фреймворк для построения одностраничных веб-приложений, поддерживаемый Google и Microsoft. Двустороннее связывание данных (любые изменения в пользовательском интерфейсе сразу же отражаются на объектах приложения и наоборот), готовая библиотека интерфейсов, модульность и многие другие фичи являются как плюсами, так и минусами. Многие клиенты на Хайбрис рассматривают ангулар для определенных узких задач, где такой подход работает лучше, чем классический. У клиента, для которого я архитектурю всё это, таким примером является “личный кабинет” покупателя.

Минусом является то, что гугл никак не может зарелизить вторую версию, так что там пока все вилами на воде. Статья в целом подходит и для первой версии Angular, разве что только мои исходники будут бесполезны. В остальном все тоже самое.

По ссылке есть видео, разные диаграмки и полезные слова, также можно скачать исходный код на втором ангуларе.

https://hybrismart.com/2016/09/03/angularjs-v-2-and-hybris/

https://hybrismart.com/2016/09/03/angularjs-v-2-and-hybris/

02 сентября 2016 года, 11:53

Обновление на моем блоге про хайбрис. Сделал утилитку, которая показывает структуру шаблонов из акселлератора Хайбрис. Понятно будет, наверное, только фронтэнд-разработчикам на Хайбрисе.

В хайбрисе много сотен файлов, которые ссылаются друг на друга, одни файлы включены внутрь других. Например, productPrimaryImage включена в пару десятков других шаблонов, и если его править, то хорошо бы представлять, на что это повлияет. Вторая задача этой структуры – образовательная. Показывает, как собирается страница. Это совсем не очевидно из кода, т.к. вставки разбросаны по разным файлам. Например, для сборки страницы товара используется 24 разных файла.

https://hybrismart.com/2016/09/02/hybris-cms-template-structure-reference/

31 августа 2016 года, 22:55

Небольшой апдейт на моем блоге про Хайбрис. Понятен будет, наверное, все-таки только разработчикам. Тут есть некоторое их количество в читателях, так что информирую.

hybrisCronjob – утилитка для запуска cronjob-ов. Кронджобы – это такие модули Хайбриса, которые можно запускать по расписанию, по какому-нибудь событию или вручную. Так вот, для ручного запуска есть только веб-интерфейс и он несколько неудобный, когда сидишь в отладчике и запускать надо по пятьдесят раз на дню.

https://hybrismart.com/2016/08/31/hybris-runtime-development-tools-hybris-cronjob-management/

Обновление утилит для разработчика на Hybris: hybrisLog — новый инструмент для мониторинга и управления логами | 29 августа 2016 года, 00:53

Апдейт к моим утилитам для разработчика на Хайбрисе.

Начиная с версии 6.0, SAP заменил модуль логгирования на более функциональный и свежий, но вместе с этим сломал механизм управления в HAC.

В моем комплекте утилит для разработчика Хайбрис появился новый инструмент – hybrisLog. Основные возможности:

1) просмотр логов хайбриса в реальном времени. Фактически, это замена tail -f

2) изменение logLevel у любого из более чем пары тысяч классов. вовлеченных в систему логгирования.

https://hybrismart.com/2016/08/26/1896/

24 августа 2016 года, 11:02

Обновление на моем блоге про Хайбрис. Добавил в хайбрис возможность масштабировать и обрезать картинки интерактивно. Да, этого нет в коробке. Как ни странно. И это почти всем нужно.

Процесс выглядит так: админ загружает картинку бОльшего разрешения, выбирает галочками, какие картинки нужно создать меньшего разрешения, и подгоняет обрезку фото, если у загруженной не совпадают пропорции с требуемыми. Если после уменьшения картинки в иконку пропало слишком много важных деталей, то админ может отдельно для поля с иконкой выбрать другие настройки масштабирования и иначе обрезать картинку.

На этом бизнес-часть заканчивается, начинается темный лес с техническими деталями.

Тут было несколько челленджей. Поскольку плагин для кроп картинок я использовал внешний и современный (http://foliotek.github.io/Croppie/), а хайбрисовский менеджер товаров построен на фреймворке ZK 3.6.3 для one-page application, выпущенном семь лет назад, где почти ничего не дают сделать на внешнем джаваскрипте, задача поженить эти разные технологии была не из легких. Пришлось класть внешний джаваскрипт в попап, поднимать контекст для попапа в том же расширении, и придумать механизм обмена данными со старым ZK (эта часть наиболее неприятная, т.к. в новых версиях все уже придумали).

Также для ресайза я намеренно отказался от использования imageMagick и прочих внешних тулзов в пользу jScalr, которая работает хорошо, и к тому же мультиплатформенная.

https://hybrismart.com/2016/08/23/image-crop-resize-in-product-cockpit/

https://hybrismart.com/2016/08/23/image-crop-resize-in-product-cockpit/

Revolutionizing Hybris Development: The Power of Runtime Tools Unleashed! | 22 августа 2016 года, 01:25

У меня вышло обновление hybris Runtime Development Tools. Это инструментарий для упрощения и ускорения разработки на хайбрисе. Будет понятен только не только посвященным, но и любознательным)

Цель утилит – уход от веб-интерфейса к консоли. Обычно народ делает наоборот, заменяя консольные команды веб-интерфейсом, чтобы было красиво и удобно. Но лично для меня веб-интерфейс дико медленный, особенно, когда по 50 раз на дню нужно делать одну и ту же операцию. Плюс его не особо доработаешь. Утилиты позволяют решать многие задачи быстрее и лучше, чем стандартный интерфейс Хайбриса. Но главное, их можно использовать совместно с другими инструментами, от Экселя до Perl. Например, выгрузить все товары и в экселе проверить, нет ли аномалий в данных.

По ссылке ниже есть видео, где я демонстрирую возможности новых утилит. Для полноты картины смотрите также видео с предыдущей статьи на блоге.

https://hybrismart.com/2016/08/20/hybris-runtime-development-tools-update/

18 августа 2016 года, 01:51

Аж четыре поста-обновления на моем блоге. Я затеял проект “hybris Runtime development tools”, набор консольных утилит для выполнения разнообразных задач, связанных с разработкой на SAP hybris.

Большая часть утилит будет не очень понятна или непонятна совсем для тех, кто далек от “темы”. Если в двух словах и упрощенно, то эти утилиты позволяют делать то, что обычно разработчики делают в отладчиком в руках или с помощью существующих средств Хайбриса, реализованных, однако, только в виде формочек в административном интерфейсе. Для одного раза формочки очень даже удобны, но когда повторяешь одну и ту же операцию по тысяче раз на дню, хочется больше автоматизации. Вот мои утилитки и нужны для того, чтобы работать эффективнее.

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

Анонс:

https://hybrismart.com/2016/08/17/hybris-consoleapi-runtime-developer-tools/

Утилита первая, для работы с данными https://hybrismart.com/2016/08/18/hybrisflexiblesearch-command-line-tool-web-api

Утилита вторая, для работы с типами

https://hybrismart.com/2016/08/18/hybris-type-system-command-line-tool-web-api/

Утилита третья, для работы с бинами Spring

https://hybrismart.com/2016/08/18/hybris-beans-command-line-tool-web-api/

@[100003472810093:2048:Vyacheslav Khudyakov] @[100000077047562:2048:Marina Zhigalova] @[100001894770015:2048:Viktoriya Shaimardanova] @[100004031421822:2048:Alexey Lyubimov]

https://hybrismart.com/2016/08/17/hybris-consoleapi-runtime-developer-tools/

14 августа 2016 года, 17:17

Обновление на моем блоге: Hybris Development Skill Tree. Все компетенции, технологии и знания, необходимые для разработки на hybris. Все сведено в структуру, из которой понятно, что нужно освоить перед чем. Крупнее шрифт – важнее технология. Красным помечено то, без чего не обойтись.

https://hybrismart.com/2016/08/14/hybris-development-skill-tree/

https://hybrismart.com/2016/08/14/hybris-development-skill-tree/

02 августа 2016 года, 12:37

Обновление на моем блоге. В этот раз я не стал ждать четверга, потому что результаты оказались готовы за один день.

Мой последний пост называется сложно – что-то типа хранение сессий в Redis, но если говорить языком попроще, эта хрень нужна для того, чтобы если у вас упал любой из серверов интернет-магазина, покупатель ничего бы не заметил: корзина у него не обнулилась бы, аутентификация не слетела, чекаут не прервался.

Вся соль в том, что данные, ассоциируемые с текущей сессией пользователя – т.е. временные данные, хайбрисом не сохраняются нигде, кроме как в памяти. И если рухнет сервер, с ним рухнут и данные. Ну как минимум, нужно будет перелогиниться пользователю, а это в сезон распродаж всегда ведет к потерям в продажах, т.к. многие покупатели не напрягаются и идут в другой интернет-магазин.

В прототипе, который я демонстрирую в видео, пользовательская сессия не падает, даже если в процессе меняются сервера (с A на B и обратно). В жизни они меняться не должны, кроме случая, если основной сервер упал.

https://hybrismart.com/2016/08/02/hybris-cluster-redis-session-failover/

https://hybrismart.com/2016/08/02/hybris-cluster-redis-session-failover/