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/

27 июля 2016 года, 18:44

Очередное обновление на моем блоге. Мне удалось подключить Varnish к Хайбрису для кэширования страниц и их частей. Это продолжение предыдущего поста про кэширование, но в данном случае я активно использую Varnish. Штука очень нужная, если надо обойтись меньшим числом лицензий на бóльшем траффике – ну вы меня понимаете 🙂

Видео из поста показывает, что запросы в Хайбрис приходят значительно реже, чем уходят из браузеров пользователей в сторону Хайбриса. Это все потому, что их по пути ловит Varnish и обслуживает, если у него для этого всё имеется. Если чего-то не хватает, он спрашивает это у MongoDB, котором это что-то обязательно есть.

Архитектура не такая, какая у Хайбриса в платном экстеншене, выпущенном с подобными намерениями. Детали – в посте.

Возможно, будет интересно @[100000077047562:2048:Marina Zhigalova] @[100001168004708:2048:Erik Babadzhanov] @[100001894770015:2048:Viktoriya Shaimardanova] @[100004031421822:2048:Alexey Lyubimov] @[1509384824:2048:Anatoly Mokhov] @[617283947:2048:Renata Mussina] @[1817791335:2048:Victor Romanovsky] @[100000571996239:2048:Maxim Antonov] @[100002859265802:2048:Ilya Timchenko] @[1328575098:2048:Max Shelukhanov] @[100006908653177:2048:Alexander Dnestranskiy] @[1698960808:2048:Alexander Zolotilin] @[100001735299023:2048:Alexey Pronin]

https://hybrismart.com/2016/07/27/varnish/

https://hybrismart.com/2016/07/27/varnish/