Блог платформы

1 неделя 5 дней назад

Три года назад мы объявили о выходе CUBA 6. Та версия стала революционной: вместо закрытой проприетарной лицензии мы стали распространять фреймворк свободно, по лицензии Apache 2.0. В то время мы не могли даже и близко представить, насколько это отразится на развитии фреймворка в долгосрочной перспективе. Сообщество CUBA стало расти в геометрической прогрессии, и мы столкнулись со всеми возможными (а иногда и невозможными) способами применения фреймворка. Сейчас мы представляем вашему вниманию CUBA 7. Надеемся, что эта версия сделает разработку ещё проще и приятнее для всех членов сообщества: от начинающих, которые только познакомились с CUBA и Java, до опытных разработчиков, за плечами которых не один завершенный проект уровня большой компании.

Читать далее »
2 недели 2 дня назад

В процессе разработки очень часто возникает необходимость создать экземпляр класса, имя которого хранится где-нибудь в конфигурационном XML или вызвать метод, название которого написано в виде строки как значение атрибута какой-нибудь аннотации. В таких случаях ответ один: “Используй reflection!”.

В новой версии фреймворка CUBA одной из задач по улучшению фреймворка было избавление от явного создания обработчиков событий в классах-контроллерах UI экранов. В предыдущих версиях объявления обработчиков в методе инициализации контроллера очень захламляли код, так что в седьмой версии мы решительно намерились все оттуда вычистить.

Читать далее »
2 месяца 2 недели назад

Разработчики обычно не очень любят менять свои привычки (зачастую, в список привычек входят и фреймворки). Когда я начал работать с CUBA, мне не пришлось учить слишком много всего нового, активно включаться в работу над проектом можно было почти сразу. Но была одна вещь, над которой пришлось посидеть подольше — это была работа с данными.

Читать далее »
2 месяца 2 недели назад

Слово “мажорный” в последнем релизе платформы и студии более чем заслужено. Это самый важный релиз за последние 3 года, который стал результатом анализа запросов и пожеланий коммьюнити с нашего форума, множества посещенных конференций и JUG-ов. Эта статья кратко обозначает наиболее интересные и поворотные нововведения.

Читать далее »
4 месяца 1 неделя назад

На прошлой неделе команда из Google наконец-то выложила исходники фреймворка J2CL, о котором говорили с 2015 года. Идея трансляции Java в JavaScript далеко не нова и все уже давно набили шишек с Google Web Toolkit, однако этот продукт сообщество ждало как ни один другой - о нем говорили и делали выступления, но никто его не видел.

Прошло больше 3х лет с первого анонса и, кажется, что продукт потерял рынок даже не родившись. Сегодня у нас есть Scala.js, Kotlin.js и JSweet, не говоря уже о том, что веб-разработка захвачена TypeScript и для Java не осталось места. За такое время многие, даже самые преданные джависты, утратили веру в “Java для Front end” и обуздали тот или иной JavaScript фреймворк.

Поскольку релиз всё таки случился, давайте посмотрим, что получилось и кому это может пригодиться.

Читать далее »
4 месяца 3 недели назад

Скрипты - один из самых распространенных способов сделать приложение более гибким, с возможностью поправить что-то прямо на ходу. Конечно же, у этого подхода есть и недостатки, нужно всегда помнить про баланс между гибкостью и управляемостью. Но в этой статье мы не будем рассуждать “в общем” по поводу плюсов и минусов использования скриптов, мы рассмотрим практические способы реализации этого подхода, а также представим библиотеку, которая предоставляет удобную инфраструктуру для добавления скриптов в приложения, написанные на Spring Framework.

Читать далее »
5 месяцев 1 день назад

Не секрет, что часто разработчикам приходится переходить на новые фреймворки, при этом, зачастую, приходится менять свои привычки. Эта статья как раз об этом - о впечатлениях опытного RoR разработчика, переходящего на CUBA Platform. В чем сходства и различия, что более эффективно, а что - более доступно для понимания - читайте в этой статье.

Читать далее »
5 месяцев 1 неделя назад

Как известно, HTTP 1.1 - это текстовой протокол передачи данных. HTTP сообщения закодированы, используя ISO-8859-1 (которую условно можно считать расширенной версией ASCII, содержащей умляуты, диакритику и другие символы, используемые в западноевропейских языках). При этом в теле сообщений можно использовать другую кодировку, которая должна быть обозначена в заголовке "Content-Type". Но что делать, если нам необходимо задать non-ASCII символы не в теле сообщения, а в самих заголовках? Наверное, самый распространенный кейс - это проставление имени файла в "Content-Disposition" заголовке. Это, казалось бы, довольно распространенная задача, но ее реализация не так очевидна.

TL;DR: Используйте кодировку, описанную в RFC 6266, для "Content-Disposition" и преобразуйте текст в латиницу (транслит) в остальных случаях.

Читать далее »
5 месяцев 3 недели назад

Этот текст посвящен различным подходам к валидации данных: на какие подводные камни может наткнуться проект и какими методами и технологиями стоит руководствоваться при валидации данных в Java-приложениях.

Читать далее »
5 месяцев 4 недели назад

Прошло уже целых полгода с того дня, как мы запустили Marketplace на нашем англоязычном сайте и чуть больше месяца со времени запуска каталога компонентов на русском. За это время в развитии каталога участвовали не только члены нашей команды, но и сообщество CUBA, и мы рассчитываем, что сможем продолжать развитие наших продуктов и сервисов в том же темпе.

Читать далее »