Добавлен: 15.05.2023
Просмотров: 582
Скачиваний: 5
СОДЕРЖАНИЕ
1. История и проблематика развития веб-технологий
2. Выбор языка программирования, фреймворка, CMS для написания веб-приложения
2.1. Классификация веб-проектов
2.2. Обзор языков программирования для веб-разработки
2.4. Системы управления контентом (CMS)
2.7. Тренды развития веб-технологий
3. Выбор инструментов для разработки веб-приложений
3.1. Интегрированные среды разработки
Следует упомянуть и такие системы, как CMF (Content Management Framework), сочетающие в себе черты CMS и фреймворков. Такой подход позволяет избавиться от лишних частей CMS, которые не нужны конкретному проекту[29].
CMS по назначению делятся на общие, для интернет-магазинов, для блогов и т.д.; по условиям использования - на платные и бесплатные. Для каждой популярной CMS можно найти множество платных и бесплатных модулей, которые легко подключаются.
Сайты для малого бизнеса лучше всего разворачивать на основе CMS. Это позволяет экономить время на разработку: для настройки таких решений не нужны дорогостоящие программисты. С другой стороны, одним из недостатков CMS является то, что в “коробочной” версии наличествует набор модулей с ограниченным функционалом: такие решения не гибки, кроме того, их бывает легко взломать, поскольку уровень программистов, писавших модули может быть недостаточно высок. CMS не рассчитаны для работы на крупных, сложных сайтах. Они могут не выдержать повышенных нагрузок.
Рассмотрим популярные CMS:
- WordPress: начал развиваться как серверное ПО для ведения блогов; в настоящее время на нем можно организовать разнообразные веб-приложения, в т.ч. интернет-магазины; это одна из самых популярных CMS в мире. Широко применяется для сайтов СМИ;
- Joomla! - еще одна CMS общего назначения; подходит для небольших сайтов;
- Drupal - CMF общего назначения; поставляется со встроенным фреймворком Symfony; сложная и производительная CMS, на которой работает, например, официальный сайт Белого Дома в США;
- Magento - популярная система управления интернет-магазинами;
- PrestaShop - также CMS для интернет-магазинов; как и предыдущая, используется, в основном, за пределами России;
- OpenCart — также система для интернет-магазинов; пользуется популярностью в России; используется для маленьких и несложных магазинов;
- 1С-Битрикс - CMS общего назначения; может интегрироваться с бухгалтерским ПО 1С, что делает ее удобной для организации масштабных онлайн-продаж[30].

Рисунок 5: Доля сайтов, построенных на популятрых CMS.
2.5. Шаблоны
В последние годы активно развиваются шаблонные решения. Если CMS - конструктор для сайта и его нужно настраивать, то шаблоны представляют собой готовую заготовку для типовых потребностей, например, для сайтов ресторанов, такси, клиник и т.д. При создании веб-приложений нужно выбрать логотип, цветовое решение, текст наполнения. Преимущества шаблонов - дешевизна, возможность быстрого запуска. Недостаток - не учитываются особенности конкретного бизнеса.
Шаблоны можно найти в таких каталогах, как TemplateMonster, ThemeForest и др. Часто встречаются онлайн-конструкторы, в том числе тематические: Wix, PageCloud и др[31].
2.6. Мобильные приложения
В разработке мобильных веб-приложений используется два подхода:
- нативная разработка
- кроссплатформенные технологии.
В первом случае код пишется на оригинальных языках программирования: Swift для iOS, Java для Android. Кроссплатформенные технологии создаются на базе таких платформ, как Apache Cordova, React Native и т.д. Сложные приложения предпочтительнее писать на нативных технологиях. При использовании кроссплатформенного программирования возникают проблемы, например, некоторые функции могут быть не реализованы, наблюдается перерасход оперативной памяти устройства, быстро заканчивается заряд батареи и т.п. С другой стороны, кроссплатформенный подход позволяет писать программу всего один раз, сразу и для iOS и для Android. Тем не менее, кроссплатформенный вариант следует выбирать только для простых приложений[32].
2.7. Тренды развития веб-технологий
Выбирая технологию, следует учитывать ближайшие перспективы развития IT, собенно в случаях больших проектов. Средства разработки быстро развиваются, имеют неуклонную тенденцию устаревать. Языки программирования радикально изменяются за период 5-7 лет, фреймворки - за 2-3 года, CMS - за 1-2 года. Важно предусмотреть тренды развития так, чтобы они оставались актуальными и через несколько лет. Иначе придется постоянно дорабатывать проект или даже реализовывать его заново.
По результатам исследований перспектив развития IT-рынка, таких, как TIOBE Index, можно выделить явных лидеров по росту. Это, в первую очередь, JavaScript и мультипарадигмальные языки, такие, как Scala. Неплохие перспективы демонстрирует Python.
Падающий тренд - ряд старых языков (Perl, Pascal) и PHP, хотя 7я версия PHP с исправленными недостатками может вывести эту технологию на новый уровень развития. Наблюдается также некоторое падение популярности языка Ruby[33].

Рисунок 6: Востребованность веб-разработчиков.
О трендах среди языков программирования свидетельствует график востребованности специалистов в США[34]:
Таким образом, выбор платформы для разработки — совокупности ЯП, фреймворков, CMS — представляет собой комплексную задачу, решение которой зависит, в первую очередь, от масштаба и сложности проекта, наличия программистов с требуемой квалификацией, сроков исполнения и некоторых других факторов.
3. Выбор инструментов для разработки веб-приложений
Поскольку за каждым ЯП стоит сложная и общирная инфраструктура и культура разработки, выбор платформы (ОС, ЯП, фреймворк) для создания веб-приложения предполагает еще и выбор инструментов разработки: редакторов кода, утилит, средств отладки и учета ошибок и т. п.
3.1. Интегрированные среды разработки
Комплексное решение перечисленных задач предоставляют IDE[35] — интегрированные среды разработки. Любая IDE (Integrated Development Environment) базируется на текстовом редакторе, оптимизированном для написания компьютерных программ: фрагменты кода подсвечиваются, система указывает на синтаксические ошибки, дает рекомендации по использованию переменных, автоматически дополняет стандартные синтаксические конструкции.
IDE для веб-программирования, как правило, специализированы для работы с такими языками, как html, css, JavaScript, PHP и т.д. Они содержат также средства для компиляции или интерпретации, сборки, оптимизации, сжатия, отладки кода.
IDE помогают визуализировать процесс создания приложения. Например, одно из основных отличий IDE от обычного редакторов кода - возможность видеть результат работы в режиме реального времени. При разработке визуальной части приложения на соседней панели можно отображать внешний вид веб-страницы. Он меняется почти мгновенно по мере внесения правок в код. Благодаря этому можно ускорить разработку. Вместе с тем, насыщение IDE множеством функций иногда можно считать не достоинством, а недостатком таких систем. Поэтому признаком качественной среды разработки является модульность - возможность отключать некоторые не востребованные разработчиком возможности.
3.1.1. Сравнение IDE и редакторов кода
При выборе IDE для небольших проектов следует рассмотреть вопрос об использовании вместо них обычного текстового редактора. Современные редакторы кода, такие как Sublime, Vim, Emacs содержат функции для отладки, сборки, что делает их похожими на IDE. Тем не менее, редакторы кода обладают рядом недостатков по сравнению с IDE.
- цена: наиболее эффективные из редакторов кода распространяются на коммерческой основе; так, например, подписка на редактор Sublime Text стоит 70 долларов в месяц, при том, что большинство популярных IDE распространяются под свободными лицензиями;
- поддержка и обновляемость: большинство редакторов были созданы до периода интенсивной веб-разработки, когда стандарты в отрасли менялись не так часто; в IDE новые возможности учитываются более полно и благодаря обновлениям регулярнее расширяют возможности программистов по использованию более эффективных приемов работы;
- плагины: расширение возможностей редакторов за счет установки плагинов (функциональных дополнений) зачастую небезопасно, поскольку такие модули часто изготавливаются сторонними разработчиками и могут быть источниками опасностей, допущенных как вследствие низкой квалификации, так и злого умысла;
- сложность: IDE сложны для освоения, но некоторые редакторы также требуют больших затрат времени на освоение; например, Vim позволяет вести разработку не прибегая к IDE, но особенности управления им отпугивают начинающих программистов;
- сложности при работе с большим количеством файлов. IDE ориентированы на адекватное отражение файловой структуры проекта, тогда как при пользовании обычными редакторвми распределение файлов по папкам может оказаться непродуманным и хаотичным[36].
В целом можно сказать, что для крупных проектов, где задействовано множество программистов, IDE предпочтительнее, поскольку позволяет более строго придерживаться корпоративных стандартов, стилей и прочих ограничений, способствующих единообразию и консолидированности кода. Некоторые корпорации приучают своих будущих сотрудников к той или иной IDE со школьной скамьи. Например, компания Microsoft предоставляет под свободной лицензией свой продукт Visual Studio IT-школам, выпускники которых в итоге предпочитают эту IDE другим. Они приобретают подписку на этот продукт, чтобы продолжить программирование в привычной среде в ходе профессиональной деятельности.

Рисунок 7: Популярность IDE и текстовых редакторов.
3.1.2. Отбор популярных IDE
Интегрированные среды обладают множеством достоинств и недостатков, поэтому при выборе таких продуктов для разработки веб-приложений следует пользоваться эффективным набором критериев. В качестве таковых можно выбрать следующие:
- кроссплатформенность: IDE должна иметь возможность установки на различные операционные системы и устройства;
- цена: IDE должна распространяться на бесплатной основе или предлагать пробный период, в ходе которого разработчик мог бы убедиться, что она ему подходит; следует отметить, что на рынке можно найти достаточное количество продуктов, удовлетворяющих этому требованию;
- поддержка: IDE должна получать обновления от разработчиков, поскольку языки программирования эволюционируют очень быстро, а некоторые их версии и вовсе становятся неактуальными;
- совместимость с веб-разработкойr: большинство IDE ориентированны на широкий круг задач, и если производится выбор с целью веб-разработки, следует убедиться, что рассматриваемый продукт обладает необходимыми функциями (поддержка синтаксисов html, css, js, мгновенный просмотр, отладка и т.п.).
Рассмотрим некоторые IDE в соответствии с этими критериями.
NetBeans
Данная IDE распространяется бесплатно, поддерживает инструменты веб-разработки, а также написание кода на языке PHP с возможностью анализа этого языка. Учтены свежие спецификации HTML, CSS, JavaScript. Поддерживается фреймворк Angular и серверное ПО Node.js. Регулярно выходят обновления.
В NetBeans организована эффектная подсветка кода, позволяющая также оценивать его корректность. Автоматизирован процесс набора отступов и интервалов. Приложение является полностью кроссплатформенным, поскольку написано на языке Java[37].
Eclipse
Eclipse - одна из самых популярных IDE для веб-разработки благодаря интуитивно понятному интерфейсу и высокой скорости работы. Обновления выпускаются примерно раз в квартал. Продукт хорошо русифицирован.
Эта IDE поддерживает веб-приложений для мобильных устройств, что существенно расширяет возможности программиста. Может быть развернута на большинстве настольных операционных систем, а также на Android, причем тестирование приложений можно производить не выходя из IDE. Имеется расширение Zend Studio, оптимизированное для разработки на языке PHP[38].
Visual Studio
IDE от Microsoft, поставляемое на коммерческой основе, хотя может предоставляться бесплатно на длительный период, а также в образовательных целях. Среда регулярно обновляется, располагает набором инструментов для эффективной веб-разработки. Поддерживает большое количество языков программирования, которые могут быть востребованы в процессе создания веб-приложения. Используется в крупных компаниях[39].