Последние две недели я работал над одним проектом и пробовал некоторые новые технологии, такие как AngularJS 2 и Webpack. Кроме того, я настраиваю другой проект для использования Hibernate и Spring Framework. Напишу о своем опыте с ними.

AngularJS 2 является большим улучшением по сравнению с его предшественником, я нахожу его более совместимым с другими распространенными языками программирования, такими как Java, потому что он использует Typescript, который обеспечивает объектно-ориентированную парадигму, менее сложен для понимания последовательности вызовов функций (это очень помогает при отладке наш код) и следует столь популярному (среди разработчиков Pernix) руководству по стилю Джона Папы. Я использовал Angular CLI, он упрощает настройку нового проекта с последними версиями AngularJS, предоставляет полезные команды, такие как: создание новых функциональных модулей, запуск тестов с помощью Protractor или Jasmine и проверка стиля кода (используя линтер Javascript).

Кроме того, Angular CLI включает Webpack. Как утверждает официальный сайт:

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

Таким образом, Webpack может (в некоторых случаях) быть альтернативой Grunt или Gulp. Я предпочитаю использовать один инструмент для управления своим приложением и задачами. Недостатком является то, что Webpack может быть сложно настроить, но, как я писал ранее, Angular CLI использует Webpack, поэтому мне просто нужно добавить конкретные инструкции в свой проект.

Еще одна сложная задача — использовать Webpack и Heroku. Процесс сборки должен управляться Webpack. В Heroku есть хук под названием heroku-postbuild, который я объявил командой (используя NPM) для вызова Webpack для начала сборки проекта. После завершения процесса сборки я выполняю его с помощью http-server, другого сценария NPM, автоматически вызываемого Heroku. Более подробную информацию об использовании NPM с Heroku можно найти здесь.

В настоящее время я работаю над API Java для предоставления БД с использованием PostgreSQL. Для выполнения проекта я использую Gretty (улучшение Jetty). Для управления HTTP-связью работает Spring Framework. На данный момент это не так просто настроить, но в процессе я многому научился. Hibernate — это возможность создавать модульные интерфейсы с БД. Это поможет обеспечить надлежащее обслуживание или даже изменить систему управления базами данных на MySQL, MariaDB или что-то подобное. Подробнее о моем опыте работы с этими двумя замечательными фреймворками я расскажу позже, когда проект будет продвигаться дальше.