JHipster (Java Hipster) — полнофункциональная платформа веб-разработки для современного разработчика

JHipster Программирование и разработка

JHipster

Согласно опросу разработчиков Stack Overflow 2019, около 51% разработчиков являются разработчиками полного стека. Итак, что делает разработчика полноценным разработчиком? Разработчик полного стека — это тот, кто играет со всеми аспектами процесса разработки, от внешнего интерфейса до внутреннего, до баз данных, тестирования и отладки. Здесь стек относится к широкому спектру компонентов и инструментов, которые способствуют разработке приложения.

В этой статье мы обсудим JHipster, платформу разработки с полным стеком, которая может устранить 70% ваших усилий по написанию шаблонного кода и настройке библиотек. JHipster помогает вам сосредоточиться на бизнес-логике, а не тратить время на интеграцию технологий. Он поддерживает широкий спектр современных технологий веб-приложений. Давайте посмотрим на различные технологии, поддерживаемые в JHipster:

  • Клиентские технологии.
  • Серверные технологии.
  • Другие вспомогательные инструменты.
  • Варианты развёртывания.

Клиентские технологии

MVVM

В последние годы клиентские технологии быстро превратились из одностраничных приложений в платформу MVVM (Model-View-ViewModel). Этот технологический прогресс стал ошеломляющим для разработчиков. Хорошая новость в том, что JHipster поддерживает широкий спектр клиентских технологий. Здесь мы обсудим важные клиентские технологии, поддерживаемые JHipster:

  • UI технологии.
  • MVVM Framework.
  • Фреймворк для тестирования.
  • Другие инструменты.

1. Технологии пользовательского интерфейса

JHipster поддерживает различные технологии пользовательского интерфейса. Давайте посмотрим на несколько технологий пользовательского интерфейса.

HTML5и CSS3 : HTML5 — это последняя версия HTML с новыми элементами, атрибутами и поведением. Релиз предлагает поддержку таких функций, как подключение — веб-сокеты и WebRTC -, автономное хранилище, доступ к устройствам, 2D / 3D графика — холст, WebGL и SVG — и многое другое. Принимая во внимание, что CSS3 — это последняя версия CSS. Он предлагает множество функций, таких как медиа-запросы, flexbox, анимация и т.д.

Bootstrap: Bootstrap — самый популярный в мире фреймворк пользовательского интерфейса. Он содержит переменные SaaS и миксины, а также поддерживает мощные плагины JavaScript.

2. Платформа MVVM

Модель-представление-представление-модель (MVVM) — это архитектурный шаблон, который отделяет пользовательский интерфейс от серверной части. JHipster поддерживает фреймворки Angular и React.

Angular

Angular — это платформа MVVM на основе машинописного текста для создания мобильных и настольных веб-приложений. Некоторые особенности Angular следующие:

  • Angular обеспечивает высокую производительность, автономность и установку с нулевым шагом.
  • С новым маршрутизатором компонентов он обеспечивает автоматическое разделение кода и более быструю загрузку приложения.
  • Он предоставляет простой и мощный синтаксис шаблонов для представлений пользовательского интерфейса.
  • Он использует стратегии Cordova, Ionic или NativeScript для мобильных приложений.
  • Предоставляет мощный инструмент командной строки, называемый Angular CLI, для разработки и поддержки приложений angular.
  • А также представил такие концепции, как предварительная компиляция (AOT), отложенная загрузка, реактивное программирование и т.д.

React

React — это библиотека JavaScript для разработки пользовательских интерфейсов, которая использует XML-подобный синтаксис JSX для написания компонентов React. Это не полностью устоявшаяся структура MVVM — она ​​занимается только визуализацией пользовательского интерфейса. Но React позволяет взаимодействовать с другими библиотеками, предлагая функции, аналогичные Angular. Эти библиотеки включают React Router, Redux, MobX и так далее. Обычно JHipster использует TypeScript для написания кода React. Но его также можно закодировать с помощью JavaScript.

3. Структура тестирования

Из-за значительного роста клиентской среды также возникает необходимость в клиентской среде тестирования. JHipster поддерживает различные платформы тестирования на стороне клиента для модульного тестирования, а также сквозное тестирование. Вот они:

  • Jasmine: Это среда тестирования кода JavaScript; Jasmine — это фреймворк для модульного тестирования, управляемый поведением, и имеет удобный для чтения синтаксис.
  • Mocha: Mocha — это многофункциональный фреймворк для тестирования кода JavaScript. Он предоставляет множество функций, таких как обнаружение утечек глобальных переменных, простая поддержка асинхронности, создание отчётов о тестовом покрытии, поддержка собственных модулей ES для узлов, поддержка отладчика узлов и многое другое.
  • Quint: Quint — это мощный и простой в использовании фреймворк для тестирования JavaScript. Требуется лишь минимальная настройка конфигурации для проектов на основе браузера и настройка нулевой конфигурации для проектов Node.js. Эта структура обеспечивает гибкость для запуска теста в любом месте и имеет гибкие API-интерфейсы для настраиваемых утверждений.
  • Protractor: это среда для сквозного тестирования, разработанная для приложений Angular и Angular JS. Protractor построен на основе WebDriverJS, что обеспечивает простое взаимодействие пользователя с приложением. А также, он может автоматически выполнить следующую задачу по завершении отложенных задач.
Читайте также:  Учебное пособие по JavaScript: начало работы с анимацией Canvas

4. Другие инструменты

Некоторые из других инструментов, поддерживаемых JHipster:

  • Webpack: это сборщик, который имеет гибкие плагины для объединения ваших скриптов, изображений, стилей и т.д.
  • BrowserSync: это инструмент для синхронизированного тестирования браузера, который экономит время. BrowserSync содержит такие функции, как автоматическая перезагрузка при изменении файла, синхронизация взаимодействия пользовательского интерфейса и т.д. Путём интеграции с Webpack / GulpJS вы можете испытать продуктивную настройку разработки.
  • Karma: Karma — это средство выполнения тестов, которое выполняет тестовые коды JavaScript. Он обеспечивает продуктивную среду тестирования за счёт создания веб-сервера, на котором устраняется необходимость настраивать множество настроек. Он поддерживает фреймворки для тестирования, такие как Jasmine, Mocha.

Серверные технологии

Серверные технологии

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

  • Платформа приложения.
  • Безопасность.
  • Инструменты для тестирования.
  • Инструменты сборки.
  • Параметры базы данных.

1. Платформа приложения

С появлением среды Spring спрос на JavaEE значительно снизился. Кроме того, Hibernate — ещё одна основная концепция, которую необходимо учитывать. Давайте обсудим их ниже.

Spring Framework: Spring- самая популярная среда веб-приложений Java, которая делает Java современной, производительной, реактивной и готовой к работе в облаке. Spring использует принцип инверсии управления (IoC), который обеспечивает внедрение зависимостей и контекст приложения. Одной из основных особенностей Spring является то, что он постоянно сочетает в себе IoC, аспектно-ориентированное программирование (AOP) и абстракцию технологий. Некоторые модули в платформе Spring — это Spring Boot, Spring Security, Spring MVC, Spring data и другие.

Hibernate: Hibernate- самый известный инструмент объектно-реляционного сопоставления (ORM) для Java, который отображает объектно-ориентированную модель предметной области на схему реляционной базы данных. Он использует аннотации Java для отображения, а также реализует уровень доступа к данным на основе Java Persistence API (JPA). Некоторые другие функции, предоставляемые Hibernate:

  • Полнотекстовый поиск по вашей модели предметной области.
  • Ограничения на основе аннотаций.
  • Сохранение модели предметной области для хранилищ данных NoSQL.
  • Инструменты командной строки и плагины IDE.

2. Безопасность

JHipster поддерживает широкий спектр механизмов безопасности. Вот они:

  • JWT: JSON Web Tokens — это открытый стандартный метод RFC 7519, который обеспечивает безопасность между двумя сторонами. Здесь сервер предоставляет клиенту токен JWT после успешной проверки учётных данных клиента.
  • Session: это традиционный механизм аутентификации, при котором сервер создаёт и поддерживает сеанс для клиентов, которые успешно вошли в систему. JHipster предоставляет дополнительные дополнения поверх этого традиционного механизма.
  • OAuth2: он обеспечивает определённый поток авторизации и аутентификации для приложений. OAuth2 более сложен по сравнению с другими механизмами аутентификации. Здесь используется механизм области действия, при котором доступ пользователей может быть ограничен определёнными службами приложения. JHipster использует OpenID connect для поддержки механизма OAuth2.

3. Инструменты тестирования

Инструменты тестирования, поддерживаемые в JHipster, следующие.

  • JUnit: JUnit — это среда тестирования Java, которая используется в основном для модульного тестирования. Но его также можно использовать для интеграционного тестирования в сочетании со средой Spring Test.
  • Gatling: это инструмент для выполнения нагрузочного тестирования вашего веб-приложения. Gatling использует Scala DSL для написания тестовых спецификаций, и это важный инструмент для тестирования производительности критически важных приложений.
  • Cucumber: это среда тестирования для разработки на основе поведения (BDD). Огурец в основном используется для приёмочных испытаний.

4. Инструменты сборки

Maven и Gradle — это два инструмента сборки на стороне сервера, поддерживаемые JHipster.

  • Maven: это инструмент управления проектами программного обеспечения, который управляет сборкой, отчётностью и документацией проекта. Он использует концепцию объектной модели проекта (POM) для определения процесса сборки. Имеет богатый набор плагинов.
  • Gradle: это инструмент для сборки, который увеличивает продуктивность разработчика. Gradle помогает создавать, автоматизировать и реализовывать проекты в быстром темпе. Он использует Groovy DSL для установки плана сборки и зависимостей.
Читайте также:  Clojure или Scala

5. Параметры базы данных

JHipster обеспечивает поддержку широкого спектра баз данных, включая базы данных SQL и NoSQL.

Базы данных SQL

JHipster поддерживает следующие базы данных SQL: H2, MySQL, MariaDB, PostgreSQL, MS SQL и Oracle. Ниже мы обсудим некоторые из них.

  • MariaDB: это реляционная база данных с открытым исходным кодом, которая предлагает быстрое, масштабируемое и надёжное обслуживание. MariaDB имеет богатую экосистему механизмов хранения и плагинов. В последней версии MariaDB есть функции ГИС и JSON.
  • PostgreSQL: PostgreSQL- ещё одна объектно-реляционная система баз данных с открытым исходным кодом, которая предлагает надёжность, надёжность и производительность. Он поддерживает расширенные методы индексирования, такие как GiST, GIN, покрывающие индексы, фильтры Booming и другие. PostgreSQL предоставляет параметры с высоким уровнем безопасности, включая GSSAPI, SSPI, LDAP, SCRAM-SHA-256. Ещё одна особенность PostgreSQL — объектное хранилище JSON, что позволяет использовать его в качестве гибридной модели.
  • MS SQL: это корпоративная система баз данных, требующая платной лицензии. MS SQL — популярный выбор для интеллектуальных и критически важных приложений.
  • Oracle: он обеспечивает высокопроизводительную архитектуру для доступа к данным и их обслуживания. Oracle имеет готовые к работе функции, такие как сегментирование, репликация, высокая доступность и т.д.

Базы данных NoSQL

JHipster поддерживает следующие базы данных NoSQ:

  • MongoDB: MongoDB- это распределённая база данных на основе документов. Он хранит данные в формате JSON, что делает его более мощным и выразительным. Он поддерживает агрегаты и другие функции, такие как поиск по географическому признаку, поиск по графику и текстовый поиск.
  • Cassandra: Casandra- популярная база данных NoSQL из-за её фундаментальных архитектурных решений. Благодаря функциям линейной масштабируемости и отказоустойчивости он лучше всего подходит для критически важных приложений.
  • Elasticsearch: Elasticsearch- это база данных NoSQL, но она в основном используется в качестве поисковой системы из-за её возможности индексирования и производительности.

Другие инструменты разработки

Другие инструменты разработки

GIT

GIT — это распределённая система контроля версий с открытым исходным кодом для управления исходным кодом. Он имеет множество функций, включая ветвление и слияние, удобные промежуточные области, несколько рабочих процессов и многое другое. JHipster использует GIT для обновления приложений, а также для бесперебойной работы экосистем Node.js и NPM.

Node.js

Node.js — это среда выполнения JavaScript, управляемая NPM. Интерфейс командной строки JHipster требует, чтобы Node.js запускал приложение, потому что он зависит от приложения NodeJS. Многие инструменты, используемые в приложении, также нуждаются в NodeJS.

Docker

Docker — это технология с открытым исходным кодом, которая предлагает виртуализацию или контейнеризацию на уровне операционной системы. Это помогает создавать контейнеры, которые легко создавать, развёртывать, версии и совместно использовать. Он содержит зависимости, необходимые для работы приложения в ОС хоста. По этой причине он легче виртуальной машины. Docker позволяет запускать на одном оборудовании ещё больше приложений, чем виртуальная машина.

Варианты развёртывания

Варианты развёртывания

Heroku

Heroku — это облачная платформа для развёртывания, управления и масштабирования приложений. Он ориентирован на приложения, а не на контейнеры, и поддерживает широкий спектр языков программирования. JHipster использует подгенератор Heroku для развёртывания и обновления приложений JHipster на облачной платформе Heroku.

Cloud Foundry

Cloud Foundry — это платформа для мультиоблачных вычислений с контейнерной архитектурой. Он может запускать приложения, разработанные на любом языке программирования, и не прерывает ваш текущий рабочий процесс. Приложения развёртываются с помощью вспомогательного генератора JHipster.

Amazon Web Services

AWS — это платформа облачных вычислений, которая предоставляет платформу, программное обеспечение и инфраструктуру как услугу. Elastic Beanstalk от AWS — это простая в использовании платформа для развёртывания и масштабирования ваших приложений. Используя субгенераторы, JHipster может развернуть приложение в AWS.

JHipster становится популярным среди разработчиков полного стека. С JHipster вы можете больше сосредоточиться на бизнес-логике, и он поддерживает широкий спектр технологий веб-приложений. У него более 400 участников, среди которых Google, Redhat, Heroku — некоторые официальные участники. Наслаждайтесь кодированием с JHipster и станьте мастером на все руки.

 

Оцените статью
bestprogrammer.ru
Добавить комментарий