• Корректное получение доступа к default методам интерфейсов через рефлексию в Java 8, 9, 10

    • Перевод
    Примечание переводчика: развитие фреймворка CUBA порождает большое количество R&D проектов. В ходе одного такого проекта выяснилось, что нам нужно вызывать default методы интерфейсов из прокси классов. Наткнулись на очень полезную статью, мне кажется, что опыт, изложенный в ней, будет, как минимум интересен, как максимум — полезен широкому кругу разработчиков.

    Когда дело касается доступа к default методам интерфейсов в Java через рефлексию, гугление не очень помогает. Например, решение на StackOverflow работает только в определенных ситуациях и не на всех версиях Java.

    В этой статье будут рассмотрены различные подходы к вызовам default методов интерфейсов через рефлексию, это может быть нужно, например, при создании прокси-классов.

    TL;DR Если вам не терпится, то все способы вызова default методов, описанные в этой статье, доступны по этой ссылке, а также эта проблема уже решена в нашей библиотеке jOOR.
    Читать дальше →
  • Разработка на CUBA — большой шаг в сторону от Spring?



      Когда вы читаете требования к очередному корпоративному веб-приложению для внутреннего использования, то обычно (сужу по своему опыту) это один и тот же набор: реляционная база для хранения данных, зачастую доставшаяся от предыдущей версии приложения, большое количество форм разного уровня сложности (но одновременно типовых) для ввода данных, множество форм отчетности, сложная бизнес-логика, интеграции с другими приложениями — от бухгалтерии до управления поставками, несколько тысяч одновременно работающих пользователей. Что обычно приходит в голову?
      Читать дальше →
    • Vaadin Flow — диковинный олень

        Всякая перемена, даже перемена к лучшему,
        всегда сопряжена с неудобствами

        Ричард Хукер

        Как вы возможно знаете, Vaadin — один из самых популярных web-фреймворков на Java:


        Совсем недавно вышел новый релиз этого фреймворка для разработки web UI — Vaadin 10. Про Vaadin 10 и Vaadin Flow пока довольно мало публикаций на русском, и этот пост призван восполнить этот пробел.


        Создатели позиционируют Vaadin Flow как новый Java web-фреймворк для разработки современных web-приложений и web-сайтов (вот тут я им не совсем верю). Это часть Vaadin Platform, которая приходит на замену другому продукту — Vaadin Framework, она позволяет разрабатывать web-приложения (а если быть точным, то web UI) с применением стандарта Web Components на Java.

        Тут у читателя в голове скорее всего всё уже смешалось, все эти Vaadin Bla Bla, фреймворк, платформа и прочее. Что происходит?

        Мы используем Vaadin в составе своей платформы CUBA для UI back-office систем на протяжении 7 лет и за это время накопили большой опыт работы с ним, поэтому нас не может не волновать его судьба. Под катом вы найдёте мои спекуляции на тему Vaadin 10.
        Читать дальше →
        • +19
        • 3,4k
        • 8
      • Безопасность веб-приложений: борьба с самим собой, или проводим черту адекватности



          Насколько безопасным должно быть приложение? Для кого-то этот вопрос не имеет смысла. "Настолько, насколько это возможно. Чем безопасней, тем лучше". Но это не исчерпывающий ответ. И он не помогает сформировать security политику в проекте. Более того, если придерживаться только этой директивы ("чем больше security, тем лучше"), мы можем оказать медвежью услугу самим себе. Почему? Ответ под катом.

          Читать дальше →
        • Блеск и нищета Java для настольных систем

            image

            Вы не поверите, но в 2018 году всё ещё нужно разрабатывать Desktop приложения.

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

            — Здравствуйте, меня зовут Юрий, я пишу Desktop приложения в 2018 году.
            — Здравствуй, Юрий, давайте ему похлопаем, он смог поделиться своей проблемой!

            Да, действительно, мы всё ещё пишем Desktop приложения. Обычно, не очень хочется этим заниматься, чаще всего это legacy проекты. Но бывает, что нужно писать и новые настольные приложения.

            Зачем мы всё ещё это делаем, если есть web с его новыми продвинутыми возможностями: Progressive Web Apps, Service Worker, Web RTC, Web GL и т.д?

            Под катом расскажу как с этим жить и при чём тут Java.
            Читать дальше →
          • Платформа CUBA: Roadmap 2018

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


              Дисклеймер: Этот план не является догмой, и мы наверняка реализуем что-то сверх него, а что-то наоборот отложим. Однако в целом мы собираемся придерживаться этого плана, и предлагаем сообществу разработчиков на Платформе CUBA также на него ориентироваться.


              Тизер: CUBA Studio будет встроена в IntelliJ IDEA!


              Итак, поехали!



              Читать дальше →
            • Платформа CUBA в 2017: новые фичи, новые услуги, новые планы

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



                Читать дальше →
              • Kotlin DSL: Теория и Практика

                • Tutorial

                Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


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


                Читать дальше →
              • Что нового в CUBA Platform 6.5

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

                  Под катом:

                  • Uber JAR
                  • UI-компонент для предиктивного поиска
                  • Версионирование REST API
                  • Балансировка нагрузки в кластере
                  • Компонент приложения ZooKeeper
                  • Улучшения в Polymer UI
                  • Поддержка Bean Validation в CUBA Studio
                  • Поддержка Groovy в слушателях сущностей
                  Читать дальше →
                • Миграция устаревшей информационной системы на платформу CUBA

                  • Tutorial


                  Быстрое развитие технологий и инструментов разработки ПО приводит к тому, что технологии, лежащие в основе информационной системы, теряют свою актуальность и становятся тяжелой ношей. Взять, к примеру, какую-нибудь разработку компании для автоматизации процессов, написанную на Visual Basic 6.0 или Delphi 7, которая, мягко говоря, не сочетается с новыми трендами “все в web, все в облака”, да и не соответствует амбициям разработчиков.


                  Проблема перевода старой ИС на новые технологии, доходя до руководства, традиционно упирается в деньги: “поживем и так...”. Для разработчиков, в свою очередь, уже перенос модели данных и шаблонное программирование стандартных экранов вызывает негатив. При этом зачастую все усложняется требованием сохранения работоспособности старой ИС на этапе разработки и внедрения новой. Так или иначе, по моему опыту, продукт либо умирает совсем, вызывая мучения как программистов, так и пользователей, либо все же приходит понимание, что обновление ИС — неотложная необходимость.


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


                  Под катом пошаговая инструкция, как модернизировать устаревшую систему с минимальными усилиями на перенос модели данных и стандартных CRUD экранов.


                  Читать дальше →
                  • +13
                  • 4,5k
                  • 4
                • Что нового в CUBA Platform 6.4

                    CUBA Generic UI templates


                    Недавно мы выпустили новый релиз CUBA Platform и CUBA Studio. Если в версии 6.3 мы сделали акцент на архитектурных и технических новшествах, то этот релиз прибавил к платформе много фич, с которыми процесс разработки стал быстрее и удобнее. Мы добавили новые визуальные компоненты универсального пользовательского интерфейса, централизованный механизм валидации данных, движок для генерации альтернативного фронт-энда на основе Google Polymer и другие важные улучшения. Подробности — под катом.


                    Disclaimer: статья в первую очередь адресована разработчикам, уже знакомым с платформой CUBA.


                    Читать дальше →
                    • +18
                    • 5,2k
                    • 5
                  • 2016: год радикальных изменений для платформы CUBA

                      Эта статья – традиционный пост, подводящий итоги завершившегося года. А также история о том, что даже хороший продукт нужно уметь правильно продавать.

                      Безусловно, главное событие года для нас – переход в open source. Это привело к взрывному росту сообщества и – как ни парадоксально – продаж. Под катом я расскажу о причинах и результатах этого шага, и в дополнение сделаю обзор основных новшеств с технической точки зрения.

                      image
                      Активные проекты на платформе CUBA
                      Читать дальше →
                    • Разработка системы электронного документооборота изнутри: Как мы готовим СЭД ТЕЗИС к релизу

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

                        Но для того чтобы создать инструмент, способный что-то систематизировать и упорядочивать, нужно для начала самим научиться систематизировать и упорядочивать свои дела. Для нас главное дело — разработка системы документооборота ТЕЗИС. Поэтому неудивительно, что работа над каждым новым релизом системы тоже движется по четкому маршруту — как работа над любым документом в нашей СЭД.

                        В этой статье мы хотим ненадолго пустить читателя на внутреннюю кухню разработки системы документооборота. Мы расскажем об этапах подготовки к релизу СЭД ТЕЗИС и покажем, как выстроена работа над новыми версиями. Возможно, наш организационный опыт окажется кому-то полезным.
                        Читать дальше →
                      • Платформа CUBA: Java RAD фреймворк с открытым кодом

                          image Незаметно пролетели почти три года с момента публикации первой статьи о платформе на Хабре. За это время многое изменилось: мы вышли на международный рынок, перешли к open source лицензии, обновили стек технологий и внесли множество улучшений во фреймворк и средства разработки. Поэтому вместо длинного списка изменений мы решили опубликовать ещё одну обзорную статью о платформе CUBA, которая, я надеюсь, будет интересна разработчикам кровавого энтерпрайза корпоративных информационных систем — как ещё не знакомым с платформой, так и тем, кто уже что-то слышал о ней.

                          Итак, под катом вы узнаете:
                          • Что представляет из себя платформа CUBA и какова её архитектура
                          • Какие решения эффективнее всего разрабатывать на CUBA
                          • Как платформа помогает сэкономить время разработки корпоративных систем
                          • Какое окружение необходимо для развертывания CUBA-приложений
                          • Как мигрировать устаревшую систему на CUBA
                          • Под какой лицензией распространяется платформа
                          • Как организована поддержка разработчиков
                          Читать дальше →
                          • +18
                          • 13,4k
                          • 9
                        • «Сапожник в своих сапогах»: как мы писали модуль управления финансовыми ресурсами для внутренней СЭД

                            image

                            Не секрет, что мы в Хоулмонт сами используем СЭД ТЕЗИС. Странно было бы, имея в руках современный и надежный инструмент для хранения и согласования документов, пользоваться чем-то еще. Неудивительно и то, что для любой достаточно крупной компании штатной функциональности СЭД порой не хватает. В этой статье мы расскажем, как создавался дополнительный модуль к нашей внутренней СЭД ТЕЗИС — модуль управления финансовыми ресурсами, или просто модуль финансовых заявок, как мы его зовем. А заодно воспользуемся случаем и немного покажем, как проводится проектное внедрение системы на примере отдельно взятой организации.
                            Читать дальше →
                          • Три столпа платформы для системы документооборота

                              «Мы есть то, что мы едим» — к этому выводу пришли еще древнегреческие мудрецы. Именно они подметили, что пища, из которой, как из кирпичиков, складывается фундамент организма, влияет не только на самочувствие человека, но также и на его настроение, умственную деятельность и даже отвечает за «духовное здоровье».
                              image
                              У системы документооборота тоже может быть свой фундамент — технологическая платформа. Выбор платформы и принципов, на которых она построена, в буквальном смысле влияет на то, как СЭД будет дальше жить — ведь эти принципы и есть те самые “кирпичики”, которые обеспечивают ее устойчивость.

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

                              Именно в таких случаях важен выбор платформенного решения. Однако, какой должна быть платформа, лежащая в основе будущей СЭД? Какие фундаментальные принципы должны лежать в ее основе? Мы выделили для себя три основных принципа, которыми должна обладать технологическая платформа системы электронного документооборота, чтобы обеспечить успешное развитие СЭД в будущем.
                              Читать дальше →
                            • Платформа CUBA выходит на рынок Свободного ПО

                                Спустя два года присутствия на российском и года на мировом рынках платформа CUBA присоединяется к кругу свободно распространяемого программного обеспечения и переходит на лицензию Apache 2.0. Таким образом, широкий круг разработчиков Java, ориентирующийся на открытые технологии, получит возможность разрабатывать и распространять свои CUBA приложения абсолютно бесплатно, а также изменять и развивать платформу самостоятельно!

                                Кто не знаком с платформой, приглашаем вас ознакомится на наш сайт или прочитать первую статью о платформе на хабре.



                                Добро пожаловать под кат, чтобы узнать, как и почему платформа сделала разворот в сторону СПО.
                              • Электронное правление банка и СЭД: опыт интеграции

                                  image

                                  Возьмем типового корпоративного заказчика, допустим, банк. В каждом банке есть руководящие органы – совет директоров и правление, потребности которых в работе с документами едва ли можно удовлетворить при помощи обычной СЭД. Причем не надо путать задачу обеспечения деятельности коллегиальных органов с так называемым «АРМом Руководителя», который есть в некоторых СЭД. Руководитель, пусть даже самого высокого ранга, в принципе такой же участник бизнес-процесса, как и любой другой сотрудник, он тоже согласует и утверждает документы. Только в силу своей занятости и высокого статуса, руководители более требовательны к удобству работы с системой и, как правило, очень мобильны. Короче говоря, руководителям нужно ограниченное подмножество функций СЭД, упакованное в красивый и удобный интерфейс на планшете, но это все-таки СЭД, а не какая-то другая система.
                                  А когда мы говорим об автоматизации коллегиальных органов, типа совета директоров и правления, то на первый план выходит коллективная работа и поддержка процессов корпоративного управления, для чего используются специализированные системы. СЭД, даже с «АРМ Руководителя», не покрывает этот комплекс задач.
                                  Читать дальше →
                                • Lori Timesheets — учет времени на платформе CUBA



                                    “Время – это капитал работника умственного труда.”
                                    Оноре де Бальзак


                                    Часто случается, что люди отдают предпочтение старым и привычным вещам, игнорируя новые, даже себе во вред. Вот так и мы долгое время с упорством использовали систему учета времени, которая не отвечала нашим требованиям и постоянно создавала проблемы буквально всем — от программистов до бухгалтерии.

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

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

                                    В этой статье я расскажу, как мы в сжатые сроки (< 1 мес), ограниченными силами (человек и еще полчеловека) разработали это приложение.
                                    Если вам интересно, добро пожаловать под кат
                                    • +10
                                    • 6,8k
                                    • 5
                                  • Русская платина: СЭД работает даже там, где ходят медведи

                                      Платину добывают так же, как золото – моют песок, собирают драгоценные крупицы, затем переплавляют. Регулярные работы по добыче платины на месторождении Кондёр в Хабаровском крае были начаты старателями артели «Амур» еще в 1984 году. Как оказалось, залежи платины здесь огромны, свидетельством чему стали самородки весом от полутора до трех с половиной килограммов. В 2007 году образовался холдинг «Русская платина», куда вошла артель «Амур» и ряд других предприятий.
                                      image
                                      А когда возникает холдинг, то неизбежно появляется и потребность в автоматизации документооборота, потому что бизнес-процессы усложняются, их участников разделяют тысячи километров, и не то что с бумагой, даже с электронной почтой и таблицами Excel для регистрации документов обработать весь поток становится невозможно. В общем, группа компаний «Русская платина» решила внедрить СЭД ТЕЗИС.
                                      Читать дальше →

                                    Самое читаемое