Статья опубликована в рамках: LIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 27 ноября 2017 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ОСОБЕННОСТИ РАЗРАБОТКИ КОРПОРАТИВНОГО ПРИЛОЖЕНИЯ С ПОМОЩЬЮ JAVA EE 7, ИСПОЛЬЗУЯ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Компьютерная индустрия развивается с каждым годом и IT технологии никогда не стоят на месте. С 90-х годов прошло уже много лет и советский “железный занавес” пал. Высокие технологии перестали быть частью НИИ и стали доступны рядовым гражданам, что сделало возможным увеличение числа разработчиков на территории Российской Федерации. Стала возможна массовая компьютеризация предприятий, наиболее популярным видом приложений стали т.н. CRUD – приложения (от англ. Create, Read, Update, Delete – создание, чтение, обновление, удаление), реализующие основные операции по работе с базами данных. Однако, зачастую лицензионные копии имеют высокую цену и у начинающей фирмы возникает проблема с авторскими правами. Выходом из подобной ситуации может служить т.н. “Свободное ПО”.
Свободное программное обеспечение – это программное обеспечение, пользователи которого имеют права («свободы») на его неограниченную установку, запуск, свободное использование, изучение, распространение и изменение (совершенствование), а также распространение копий и результатов изменения.» [1]. Если на программное обеспечение есть исключительные права, то свободы объявляются при помощи свободных лицензий.
Общеизвестно, что объектно-ориентированный язык разработки программного обеспечения Java, созданный в 1995 году по концепции “Написано однажды – работает везде”, приобрел популярность благодаря следующим преимуществам [2, 4, 5]:
- кроссплатформенность – Java интерпретируемый язык программирования и запускается на любом;
- обилие уже написанного ПО – переход на другой язык вызовет проблемы совместимости, что потребует переписать много приложений;
- спецификация Enterprise Edition.
Появление в 1999 спецификации Enterprise Edition позволило программистам использовать язык JAVA для написания бизнес-приложений, а его концепция упростила разработку ПО для различных серверных машин.
Основные составляющие актуальной на данный момент спецификации Enterprise версии включают:
- EJB – многофункциональная спецификация, с помощью которой создается графический интерфейс пользователя и интерфейс, его обслуживающий (т.н. beans), а также компоненты, которые присутствовали для работы с базой данных до вынесения их в JPA;
- JPA – компонент для работы с реляционной базой данных, использующий понятие “сущности” для взаимодействия с БД, а также позволяющий создавать динамические запросы (фильтры, сортировка), для отображения содержимого базы данных в необходимом пользователю виде.
- сервлет – набор компонентов для обслуживания HTTP запросов;
- JSF – составная часть EJB, позволяющая ускорить разработку графического интерфейса;
- JAX-WS – компонент для создания веб-сервисов (программных функций, вызываемых по запросу пользователя);
- JNDI – компонент для организации структуры типа “каталог”, позволяющий пользователям находить и просматривать объекты по их именам;
- JMS – компонент для обмена сообщениями между приложениями, написанными на JAVA EE;
- JAAS – компонент JAVA EE для организации информационной безопасности бизнес-приложения;
- JavaMail – компонент для работы с электронной почтой.
Предпочтительная среда разработки
Среда разработки IDE (от англ. Integrated Development Environment «Интегрированная Среда Разработки») – программное обеспечение, используемое разработчиками для создания приложений. Обязательными компонентами IDE являются:
- текстовый редактор;
- интерпретатор;
- средства автоматизации сборки;
- отладчик.
В отношении финансов наименее времязатратной и наиболее экономичной среда разработки требуемого бизнес приложения средствами Java EE 7 должна обладать следующими качествами:
- Поддержка плагинов, что позволит разработчику модифицировать IDE под свои нужды и предпочтения;
- рефакторинг, т.е. возможность менять программный код, не изменяя внешнее поведение программы;
- автозаполнение набираемых синтаксических конструкций (к примеру, автоматическая расстановка фигурных скобок) для снижения затрат времени;
- желательно наличие включенной в среду библиотеки компонентов Primefaces, которая включает в себя более 100 компонентов, причем включающая не только графическую часть, но и интерфейсы для её обслуживания;
- Свободная лицензия, что позволит устанавливать среду разработки на неограниченное количество машин на неограниченное время, не тратя финансы.
Всеми данными качествами обладают две среды IDE: Eclipse и Netbeans (третьей известной средой IDE является intelliJ Idea. Не обладая свободной лицензией, данная IDE проигрывает своим конкурентам из-за преимуществ свободной лицензии). У каждой IDE есть свои преимущества и недостатки, но наиболее ярким недостатком Eclipse является то, что она написана на языке Java, а так как данный язык является интерпретируемым[5], то быстродействие данной IDE необходимо оптимизировать выбором определенных плагинов. Если этого не сделать, то конфликты среди установленных плагинов превысят определенный предел (прежде всего проблемы совместимости плагинов), что вызовет увеличение времени ожидания и как следствие – снизить производительность труда у разработчика.
Сервер приложений и предпочтительная система управления базами данных
Для начинающих веб-программистов на Java выбор сервера приложений может стать большой проблемой. Наиболее известными и удобными для начинающих[5] серверы на 2017 год являются: Tomcat, Glassfish, Wildfly. Каждый из них является превосходной платформой, на которой разрабатываются и развертываются бизнес-приложения. Однако неправильный выбор сервера на стадии проектирования продукта может привести к неоправданному увеличению сроков разработки.
Выбор конкретного сервера зависит от особенностей создаваемого приложения:
– если нет необходимости подключать полный комплект средств Java EE, то следует остановиться на сервере Tomcat как наименее требовательном к долговременной памяти;
– если же архитектура приложения подразумевает использование технологий полного стека, то следует использовать сервер Wildfly или Glassfish.
К выбору системы управления базами данных (СУБД) необходимо отнестись столь же серьезно, как и к выбору сервера приложений. К наиболее популярным свободным СУБД относятся (таблица 1):
Таблица 1
Система контроля версий и система управления проектом
СУБД |
Когда использовать: |
SQLite |
Если важна возможность легкого переноса базы данных на альтернативную машину и необходим прямой доступ к жесткому диску. |
MySQL |
Если важна простота установки, обилие встроенных функций для защиты информации, а также производительность (упрощение некоторых стандартов SQL позволило увеличить быстродействие) |
PostgreSQL |
Если предполагается легкое изменение типов данных или появление сложных или наследуемых (данная СУБД является объектно-ориентированной) |
Использование системы контроля версий[3] позволяет значительно упростить разработку приложения путем систематизации всех изменений (предотвращая конфликты имен, наличием всегда актуальной версии приложения на сервере). Самой известной системой на данный момент является Git, разработанная Линусом Торвальдсом и его командой [3][M1] . Она позволяет вводить в разработку приложения практически неограниченное число разработчиков (политика т.н. “branch” (англ. «ветвь»), создающая локальную копию приложения, в которой разработчик может вносить изменения в определенный участок кода параллельно тому как приложение меняется в целом).
Использование же систем управления проектом, таких как Phabricator позволит проводить проверку кода на соответствие принятым в компании соглашениям об именах и вести приложение по одному стилю кода. В качестве примера можно привести Google Java Style Guide. Кроме того, применение таких систем как «Система отслеживания ошибок» позволит в автоматическом режиме получать отзывы от пользователей и ускорит разработку приложения.
Рекомендации по модели разработки в Git
Модель разработки в контексте данной статьи – это набор процедур, которые выполняет каждый член команды, чтобы вся команда вместе могла достичь высокой управляемости процесса разработки. Простейшей, но наиболее эффективной моделью является разделение репозитория на две основные ветки: master и develop (рис. 1), присутствует так же Feature-ветви для реализации конкретного функционала (рис.2). В таблице 2 представлены назначение и место хранения каждой из этих ветвей.
Таблица 2.
Концептуальные между «ветвями»
Наименование ветки |
Назначение |
Место хранения |
Master |
В данной ветви хранится версия приложения, готовая к релизу |
Сервер |
Develop |
В данную ветвь объединяются Feature ветви, позже тестируется версия приложения, сохраненная в данной ветви |
Сервер, но локальная копия приложения из этой ветви обязательна для каждого разработчика |
Feature |
В данной ветви разработчик реализует требуемый функционал |
Локальная машина, после слияния с Develop ветвь удаляется |
Рисунок 1. Связь между ветвями master и develop.
Рисунок 2. Связи Feature веток с develop
Заключение
В данной статье были рассмотрены основные компоненты для организации разработки приложения, исходя из того, что обучение студентов необходимо проводить на бесплатном ПО и возможностей поддержки различных платформ. Благодаря получению опыта работы со свободным ПО студенты получают возможность трудоустройства в корпоративную организацию, в котором с легкостью перейдут на платное ПО при разработки корпоративных приложений. Свободное ПО, хоть иногда и уступает платному, но всегда имеется доступ к исходному коду, что позволяет его модифицировать под нужды предприятия.
Список литературы:
- https://ru.wikipedia.org/Свободное программное обеспечение
- Э. Гонсалвес. Изучаем Java EE 7. – СПб.: Питер, 2014. – 640 с.
- C. Часон.Git для профессионального программиста – Apress, 2012. – 496 с.
- A. Гупта. Java EE 7. Основы. – М.: Диалектика/Вильямс, 2014. – 336 с.
- Г. Шилдт. Java 8. Полное руководство 8-е изд. – М.: Вильямс, 2012. – 712 с.
дипломов
Комментарии (1)
Оставить комментарий