Добавлен: 24.05.2023
Просмотров: 172
Скачиваний: 2
Существует множество готовых систем управления содержимым сайта, в том числе и бесплатных. Их можно разделить на три типа по способу работы:
- Генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования - База данных - Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах [17];
- Генерация страниц при редактировании. Системы этого типа служат для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта [18];
- Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путём кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечении некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем.
Система управления — программа, предоставляющая инструменты для добавления, редактирования, удаления информации на сайте.
CMS часто используется для поддержки нескольких пользователей, работающих в среде совместной работы [19].
Наиболее популярная система управления контентом WordPress, используется более чем на 27% всех сайтов в Интернете, и на 59% всех веб - сайтов с помощью известной системы управления контентом [20].
Большинство современных CMS имеют модульную архитектуру, что позволяет администратору самому выбирать и настраивать те компоненты, которые ему необходимы. Типичные модули: динамическое меню, блог, новости, опросы, поиск по сайту, статистика посещений, гостевая книга и т. д.
Сайты, организованные посредством системы управления контентом, основаны на следующих технологиях: веб-сервер, хранилище данных (зачастую СУБД, например, такие как MySQL или PostgreSQL, однако существуют и noSQL CMS), веб-приложение для обеспечения работы самой системы, визуальный (WYSIWYG) редактор страниц, файловый менеджер с веб-интерфейсом для управления файлами сайта, система управления правами пользователей и редакторов сайта.
Существуют разнообразные системы управления сайтом, среди которых встречаются платные и бесплатные, построенные по разным технологиям. Каждый сайт имеет панель управления, которая является только частью всей программы, достаточной для управления сайтом [11].
Наиболее распространены следующие технологические платформы, используемые в качестве основы веб-приложения, реализующего работу CMS: PHP, Perl, .NET.
Под термином контент-менеджер, обозначается род профессиональной деятельности — редактор сайта или сотрудник, работающий с CMS [21].
Большая часть современных систем управления содержимым реализуется в виде визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст.
Каркас веб-приложений (Web application framework, WAF) — это каркас, предназначенный для создания динамических вебсайтов, сетевых приложений, сервисов или ресурсов. Он упрощает разработку и избавляет от необходимости написания рутинного кода. Многие каркасы упрощают доступ к базам данных, разработку интерфейса, и также уменьшают дублирование кода [22].
Существуют специализированные типы каркасов веб-приложений, например, каркасы для создания систем управления содержимым.
Content Management Framework (CMF) — это каркас (фреймворк программной системы) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения [23].
Фреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных и шаблонизации.
Большинство современных CMF являются реализацией архитектуры Model-View-Controller.
Model–View–Controller (MVC, «Модель–Представление–Контроллер», «Модель–Вид–Контроллер») — схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо [24]:
- Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние;
- Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели;
- Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.
Многие современные системы управления содержимым построены вокруг MVC-паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla!, Bitrix, MODx Revolution, SilverStripe, Contao, Frog CMS/Wolf CMS ведётся постепенный перевод на такую архитектуру TYPO3. Другие системы используют фреймворки, популярные сами по себе.
Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF, хотя провести чёткую границу между CMS и CMF порой сложно [23].
Такая готовая к использованию система управления контентом, как Drupal, одновременно считается и каркасом для построения таких систем, что определяется как возможностью расширения функционала за счёт пользовательских модулей, так и богатством механизмов и абстракций для управления контентом, предоставляемым этой системой [25][26].
Интегрированная среда разработки, ИСP/IDE (англ. Integrated development environment) — комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).
Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. IDE обычно предназначены для нескольких языков программирования, но есть и IDE для одного определённого языка программирования.
Частный случай IDE — среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.
SDK (от англ. software development kit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ, включая мобильные приложения [27].
Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы побудить разработчиков использовать данную технологию или платформу.
1.2. Понятия, приводимые в качестве критериев к выбору IDE
Проприетарное программное обеспечение, несвободное программное обеспечение (англ. proprietary software; от proprietary — частное, патентованное, в составе собственности и software — программное обеспечение) — программное обеспечение, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО (наличия открытого программного кода недостаточно) [28][29]. Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно проприетарным называют любое несвободное ПО, включая полусвободное.
Графический интерфейс пользователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
Статический анализ кода (англ. static code analysis) — анализ программного обеспечения, производимый (в отличие от динамического анализа) без реального выполнения исследуемых программ. Может применяться для поиска кода, потенциально содержащего уязвимости [30].
Профилирование — сбор характеристик работы программы, таких как время выполнения отдельных фрагментов (обычно подпрограмм), число верно предсказанных условных переходов, число кэш-промахов и т. д. Инструмент, используемый для анализа работы, называют профилировщиком или профайлером (англ. profiler). Обычно выполняется совместно с оптимизацией программы [31].
Отладчик (дебаггер, англ. debugger от bug) — компьютерная программа или компонент, предназначенный для поиска ошибок в других программах, ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять трассировку (то есть, процесс пошагового выполнения программы, чтобы увидеть последовательность выполнения команд и значения переменных на данном шаге выполнения программы), отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д. [32].
Вывод. Программирование сайта является необязательным этапом в разработке веб-приложений, и на простых проектах заменяется средствами CMS, которой может быть недостаточно при написании кода с подключением фреймворков, где разумнее использовать многофункциональную IDE.
2. Сравнительный анализ сред разработки Web-приложений
Anjuta — официальная интегрированная среда разработки GNOME, особенно хорошо подходит для разработки графических программ. В рамках Google Summer of Code 2009 в неё добавлена поддержка JavaScript [33]. Она была написана для GTK+/GNOME и включает ряд специальных средств для программирования.
- Лицензия: GPL;
- Языки веб-программирования: C++, Java, JavaScript, Python;
- Платформы: Linux, FreeBSD;
- Другие особенности: есть отладчик, автодополнения, поддерживается разработка GUI, браузер классов, поддержка плагинов, средства просмотра и подсветка синтаксиса, средства управления проектом, мастеры приложений, поддерживается профилирование, нет покрытия кода, нет статического анализа кода, браузер классов, нет рефакторинга.
AppCode - интегрированная среда разработки (IDE), разработанная на основе платформы IntelliJ IDEA от JetBrains. Пользователи могут расширить свои возможности за счет установки плагинов , созданных для IntelliJ Platform, а также они могут написать свои собственные плагины [34].
- Лицензия: проприетарное ПО;
- Языки веб-программирования: C++, Java, JavaScript, Python;
- Платформы: Mac OS X;
- Другие особенности: есть отладчик, автодополнения, поддерживается разработка GUI, есть профилирование (Xcode profiler), браузер классов, поддержка плагинов, статический анализ кода, рефакторинг.
C++ Builder — интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке программирования C++ [35].
Изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, ныне принадлежащим компании Embarcadero Technologies [35].
- Лицензия: проприетарное ПО;
- Языки веб-программирования: C++;
- Платформы: Windows, Mac OS X;
- Другие особенности: есть отладчик, автодополнение, статический анализ кода, поддерживается разработка GUI, цикл разработки аналогичен Delphi (также большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно), профилирование (в комплекте с AQTime), покрытие кода, браузер классов, рефакторинг.
Code::Blocks — свободная кроссплатформенная среда разработки. Code::Blocks написана на С++ и использует библиотеку wxWidgets. Имея открытую архитектуру, может масштабироваться за счёт подключаемых модулей [36].
- Лицензия: GPL;
- Языки веб-программирования: C++;
- Платформы: Windows, Mac OS X, Linux, FreeBSD, OpenBSD, Solaris;
- Другие особенности: есть отладчик (GNU GDB, MS CDB); профилирование (GNU Profiler - gprof); поддерживается разработка GUI, статический анализ кода, браузер классов; подсветка синтаксиса; автодополнение, сворачивание блоков кода, скриптовый движок Squirrel; поддержка плагинов (Devpack), проверка правописания (для комментариев); автоформатирование кода; запуск полученной программы с аргументами; планировщик для нескольких пользователей; покрытие кода; браузер классов; нет рефакторинга.
CodeLite — свободная кроссплатформенная среда разработки программного обеспечения с открытым исходным кодом [37], использующая инструментарий wxWidgets. Чтобы соответствовать духу открытого программного обеспечения, CodeLite скомпилирована и отлажена исключительно свободными инструментами (MinGW и GDB) [37].
- Лицензия: GPL2;
- Языки веб-программирования: C++, PHP, Node.js;
- Платформы: Windows, Mac OS X, Linux, FreeBSD;
- Другие особенности: интерактивный отладчик (с интеграцией UnitTest++ над GDB); поддерживается разработка GUI, профилирование (интеграция Valgrind), нет покрытия кода, статический анализ кода, браузер классов; подсветка синтаксиса; управление проектами, автодополнение (ctags + clang), рефакторинг кода, интеграция с системами контроля версий Subversion и Git, навигация по коду (интеграция Cscope), рефакторинг.