УДК 004

Анализ лучших практик фреймворков веб-разработки

Тетерин Николай Николаевич – магистрант МИРЭА – Российского технологического университета.

Семенов Тимур Павлович – магистрант МИРЭА – Российского технологического университета.

Аннотация: В статье рассматривается анализ лучших практик фреймворков веб-разработки. Выбор веб-фреймворка, который наилучшим образом соответствует требованиям, – непростая задача для разработчиков. В настоящее время существует несколько сред для разработки веб-приложений, таких как Struts, JSF, Ruby on Rails, Grails, CakePHP, Django и Catalyst. Однако Lift – относительно новый фреймворк, появившийся в 2007 году для языка программирования Scala и обещающий массу преимуществ и дополнительных возможностей. Такие компании, как Siemens и IBM, а также социальные сети, такие как Twitter и Foursquare, начали разрабатывать свои приложения с использованием Scala и Lift. Передовая практика – это действия, технические или важные проблемы, выявленные пользователями в конкретном контексте, которые оказали превосходную услугу и, как ожидается, приведут к аналогичным результатам в аналогичных ситуациях. Каждый фреймворк имеет свои лучшие практики, целью которых является облегчение разработки веб-приложений. Однако в настоящее время не существует сравнительного анализа, определяющего лучшие практики для веб-фреймворков. Таким образом, в качестве основного вклада в эту статью определяется набор лучших практик для веб-фреймворков. Впоследствии эти лучшие практики были проанализированы и обсуждены с точки зрения разработки веб-приложений на базе Lift. Выявление этих лучших практик позволит разработчикам создавать более интерактивные и эффективные веб-приложения на основе Lift, интегрируя функции технологий Web 2.0 с меньшими усилиями и используя преимущества фреймворков. Кроме того, в этой статье содержится сравнительный анализ таких веб-фреймворков, как JSF, Struts, CakePHP, Ruby on Rails, Lift, Django и Catalyst. Наконец, в качестве доказательства концепции для этой статьи был разработан набор веб-приложений на основе Lift с применением лучших практик, таких как актеры, отложенная загрузка, поддержка Comet, SiteMap, Wiring, язык гипертекстовой разметки, поддержка версии 5 (HTML5) и параллельный рендеринг.

Ключевые слова: фреймворк, разработка, веб-фреймворк, рендеринг, веб-приложения.

Введение

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

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

Фреймворк – это высокоуровневое решение для повторного использования частей программного обеспечения, шаг вперед в простом повторном использовании на основе библиотек, который позволяет совместно использовать общие функции и общую логику доменного приложения. Это также обеспечивает более высокий уровень качества конечного продукта, так как одна важная часть приложения уже находится внутри фреймворка и, следовательно, уже протестирована. Теперь доступно множество веб-фреймворков, основанных на разных языках программирования: JSF и Strutts для веб-фреймворков на основе Java, Ruby on Rails на основе Ruby, Grails на основе Groovy и CakePHP для фреймворков на основе PHP. Однако в 2007 году появился еще один совершенно новый тип веб-фреймворка. Lift – это фреймворк на основе Scala, функции которого основаны на опыте Дэвида Поллака, его создателя, с ошибками других веб-фреймворков. Lift обладает преимуществами функционального программирования Scala. Функциональное программирование (FP) – это стиль программирования, в котором упор делается на функции, которые возвращают согласованные и предсказуемые результаты независимо от состояния программы. В результате функциональный код легче тестировать и повторно использовать, его проще распараллелить, и он менее подвержен ошибкам. Scala – это гибрид функционального и объектно-ориентированного (ОО) языка программирования, что означает использование возможностей функциональных языков более высокого уровня (таких как Haskell, Scheme и др.) при сохранении модульности и возможности повторного использования ОО-компонентов. Концепция неизменности FP – это особенно хорошо представленная функция в Scala, и это одно из самых простых средств обеспечения высокой масштабируемости. Scala позволяет делать больше в Lift с меньшим количеством строк кода.

Основная часть

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

В нескольких исследовательских работах были рассмотрены некоторые проблемы Lift и Scala. Например, Поллак и др. опубликовали разработку своего многопользовательского приложения для чата в реальном времени на платформе Lift. Это приложение предоставляло единый чат-сервер, который принимал сообщения чата и перераспределял их всем слушателям. В той же работе авторы также представили языковые функции Scala, такие как синглтоны, сопоставление с образцом, черты и неизменяемые типы данных.

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

О'Райли и др. определили восемь основных шаблонов, которые являются ключевыми для понимания и навигации в эпоху Web 2.0, а также представили проблемы, которые решает каждый шаблон. В этой работе был представлен тщательный анализ рыночных тенденций, проверенных передовых практик, тематических исследований лидеров отрасли и инструментов для практической самооценки. В заключение авторы упомянули, что для того, чтобы конкурировать и процветать в современном мире технологий Web 2.0, лицам, принимающим решения, включая руководителей, специалистов по продуктовой стратегии и предпринимателей, необходимо действовать сейчас.

Хайтауэр обсудил рекомендации для Struts и связанных технологий, таких как инфраструктура Validator, Java Server Faces (JSF) и стандартная библиотека тегов Java Server Pages (JSTL). Исследование предоставило рекомендации по использованию этих технологий и методов для разработки веб-приложений на базе Struts. Руководства включали справочную информацию, пошаговые инструкции и рекомендации.

О'Райли сосредоточился на опыте, связанном с интерфейсом прикладного программирования (API) J2EE. API-интерфейсы J2EE включали такие сокращения, как Enterprise JavaBeans (EJB), Java Database Connectivity (JDBC), Java Remote Method Invocation (RMI), eXtensible Markup Language (XML) и Java Management eXtensions (JMX). Поскольку J2EE является самой популярной платформой на основе Java, также был представлен набор опыта программистов. Исследование содержало информацию о лучших практиках на основе Java, опубликованных O'Reilly, которые охватывают API-интерфейсы платформы Java 2, Standard Edition (J2SE), такие как Swing, классы коллекций, настройку производительности и NIO.

Форд исследовал важные области архитектуры, дизайна и эффективные передовые методы или методы, основанные на собранных знаниях. Некоторые фреймворки, такие как Struts, Tapestry, WebWork, Velocity и Cocoon, были оценены для описания их использования. Автор также представил сравнение веб-фреймворков.

Лучшие практики для разработки веб-приложений:

  • поддержка AJAX: Lift предлагает поддержку асинхронного взаимодействия клиент-сервер;
  • облачные вычисления: Cloud Foundry – это название новой платформы как услуги (PaaS). Он уже поддерживает Lift и Scala;
  • поддержка Comet: Lift имеет поддержку Comet, которая позволяет веб-приложению передавать сообщения с сервера на сторону клиента, используя функции Web0 с минимальными усилиями;
  • пользовательские сообщения об ошибках: Lift предоставляет унифицированную модель для таких сообщений, которые можно использовать для статических страниц, а также для вызовов AJAX и Comet;
  • настройка и расширяемость: Lift предлагает больше возможностей для настройки этого фрагмента, чем просто создание некоторого XHTML. Указав некоторые атрибуты с префиксом в самом теге, атрибуты могут быть добавлены к элементам меню. Лифт также поддерживает модули, например. PayPal, Facebook, открытая авторизация и модуль, содержащий множество виджетов jQuery, например. автозаполнение, календари и индикаторы выполнения, среди прочего. Одной из распространенных настроек виджета может быть переопределение используемых каскадных таблиц стилей (CSS). Для этого Lift предоставляет собственный файл style.css;
  • отладка. Приложения Lift можно легко отладить с помощью инструментов сборки Maven и SBT, поскольку они позволяют добавлять все необходимые зависимости в проекты Lift. Процесс отладки можно выполнять через консоль Scala или IDE, например, Eclipse или IntelliJ IDEA, в дополнение к подключаемому модулю, соответствующему каждому инструменту;
  • документация: Scaladoc – это система генерации документации, которая специально читает отформатированные комментарии в исходном коде Scala и генерирует скомпилированную документацию. Обычно он используется для создания документации API в виде веб-страниц HTML.

Заключение

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

Список литературы

  1. Сычев, А. В. Перспективные технологии и языки веб-разработки : учебное пособие / А. В. Сычев. – 2-е изд. – Москва : ИНТУИТ, 2016. – 493 с.
  2. Хортон, А. Разработка веб-приложений в ReactJS / А. Хортон, Р. Вайс ; перевод с английского Р. Н. Рагимова. – Москва : ДМК Пресс, 2016. – 254 с.
  3. Заяц, А. М. Проектирование и разработка WEB-приложений. Введение в frontend и backend разработку на JavaScript и node.js : учебное пособие / А. М. Заяц, Н. П. Васильев. – 2-е изд., стер. – Санкт-Петербург : Лань, 2020. – 120 с. – ISBN 978-5-8114-5278-1.
  4. Леонтьев Ю. Web-дизайн. Руководство пользователя. М.: Компьютера, 2001. С. 25.
  5. Розенсон И. А. Основы теории дизайна: учебник для вузов. СПб.: Питер, 2007. 219 с.

Интересная статья? Поделись ей с другими: