Файл: Критерии выбора средств разработки WEB-приложений (Анализ предметной области).pdf
Добавлен: 31.03.2023
Просмотров: 542
Скачиваний: 3
2.1.2 Каскадные таблицы стилей CSS
CSS (Cascading Style Sheets) — это простой инструмента для пользовательского дизайна, призван упростить процесс создания веб-страниц.
CSS обрабатывает внешний вид веб-страницы. Используя CSS можно контролировать цвет текста, стиль шрифтов, расстояние между абзацами, размер и расположение столбцов, использование фоновых изображений или цветов, макеты, варианты отображения для разных устройств и размеры экрана, а также множество других эффектов.
CSS легко изучаем, но он обеспечивает мощный контроль над представлением HTML-документа. Чаще всего CSS сочетается с языками разметки HTML или XHTML. [6, 11]
CSS экономит время, потому что он даёт возможность писать CSS один раз, а затем повторно использовать одни и те же стили на нескольких HTML-страницах. Можно определить стиль для каждого элемента HTML и применить его на нужные веб-страницы.
При использовании CSS, не нужно каждый раз писать атрибуты HTML-тегов. Просто пишется одно правило CSS тега и применяется ко всем моментом использования этого тега. Таким образом, меньше кода означает более быстрое время загрузки.
При необходимости изменить стиль во многих местах, где используется одно и тоже правило, нужно просто изменить стиль в одном месте, и все элементы на всех веб-страницах будут обновлены автоматически. CSS имеет гораздо более широкий набор атрибутов, чем HTML.
Таблицы стилей позволяют оптимизировать контент для более чем одного типа устройств. Используя тот же HTML-документ, различные версии веб-сайта могут быть представлены для разных платформ [14].
2.1.3 Язык программирования JavaScript
Javascript – это язык программирования, с помощью которого веб-страницам придается интерактивность. С его помощью создаются приложения, которые включаются в HTML-код (например, анкеты или формы регистрации, которые заполняются пользователем). Часто Javascript путают с языком программирования Java, однако общего между ними очень мало. К тому же, некоторые сравнивают Javascript с языками Python, Self, Ruby. Однако это особенный язык, который существует сам по себе. [14]
С помощью Javascript можно изменять страницу, изменять стили элементов, удалять или добавлять теги. С его помощью можно узнать о любых манипуляциях пользователя на странице (прокрутка страницы, нажатие любой клавиши, клики мышкой, увеличение или уменьшение рабочей области экрана…) Через него можно к любому элементу HTML-кода получить доступ и делать с этим элементом множество манипуляций. Можно загружать данные не перезагружая страницу, выводить сообщения, считывать или устанавливать cookie и выполнять множество других действий.
Вся уникальность данного языка программирования заключается в том, что он поддерживается практически всеми браузерами и полностью интегрируется с ними, а все что можно сделать с его помощью – делается очень просто. Ни одна другая технология не вмещает в себе все эти преимущества вместе. К примеру, есть такие, которые не кросс-браузерны (то есть поддерживаются не всеми браузерами). Это — VBScript, ActiveX, XUL. А есть такие, которые с браузером не интегрированы в нужной степени, это – Java, Flash, Silverlight. [6]
2.2 Разработка серверной части веб-приложений
2.2.1 PHP
PHP (Hypertext PreProcessor, препроцессор гипертекста) – язык программирования, исполняемый на стороне веб-сервера, спроектированный Расмусом Лердорфом (Rasmus Lerdorf) в качестве инструмента создания динамических и интерактивных веб-сайтов. [6]
Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками: традиционностью; простотой; эффективностью; безопасностью; гибкостью.
Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно. Причем, с открытыми исходными кодами.
Традиционность. Язык РНР будет казаться знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си, Perl.
Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. PHP — язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете, язык с универсальным (правда, за некоторыми оговорками) и ясным синтаксисом.
Простота. Сценарий РНР может состоять из 10 000 строк или из одной строки — все зависит от специфики задачи.
PHP — язык, который может быть встроен непосредственно в html -код страниц, которые, в свою очередь будут корректно обрабатываться PHP -интерпретатором. Можно использовать PHP для написания CGI-сценариев и избавиться от множества неудобных операторов вывода текста. Можно привлекать PHP для формирования HTML-документов, избавившись от множества вызовов внешних сценариев.
Большое разнообразие функций PHP избавят программиста от написания многострочных пользовательских функций на C или Pascal.
Эффективность. Очень важное преимущество PHP заключается в его «Движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью. По некоторым оценкам, большинство PHP-сценариев (особенно не очень больших размеров) обрабатываются быстрее аналогичных им программ, написанных на Perl. Однако, чтобы не делали разработчики PHP, откомпилированные исполняемые файлы будут работать значительно быстрее – в десятки, а иногда и в сотни раз. Но производительность PHP вполне достаточна для создания вполне серьезных web-приложений.
Безопасность. РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.
Гибкость. Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).
Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных ПК.
Бесплатное распространение. Стратегия Open Source, и распространение исходных текстов программ в массах, оказало несомненно благотворное влияние на многие проекты, в первую очередь — Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания РНР, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР.
Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы [6].
2.2.2 Python
Python — интерпретируемый, объектно-ориентированный, высокоуровневый язык программирования с динамической семантикой. Его высокоуровневые встроенные структуры данных в сочетании с динамической типизацией и динамической привязкой делают его очень привлекательным для быстрой разработки, а также для использования в качестве языка сценариев или для соединения существующих компонентов. Простой и понятный синтаксис Python подчеркивает читаемость и, следовательно, снижает затраты на обслуживание программы. Python поддерживает модули и пакеты, что способствует модульности программы и повторному использованию кода. Интерпретатор Python и обширная стандартная библиотека доступны в исходной или двоичной форме бесплатно для всех основных платформ и могут свободно распространяться.
Python имеет систему динамического типа и автоматическое управление памятью. Он поддерживает несколько парадигм программирования, в том числе объектно-ориентированный, императивный, функциональный и процедурный, и имеет большую и всеобъемлющую стандартную библиотеку.
Его очень часто выбирают в качестве языка разработки из-за повышенной производительности, которую он предоставляет. Поскольку этап компиляции отсутствует, цикл редактирования, тестирования, отладки невероятно быстр. Отладка программ Python проста: ошибка или плохой ввод никогда не вызовут ошибку сегментации. Вместо этого, когда интерпретатор обнаруживает ошибку, он выбрасывает исключение. Когда программа не обнаруживает исключения, интерпретатор печатает трассировку стека. Отладчик исходного уровня позволяет проверять локальные и глобальные переменные, оценивать произвольные выражения, устанавливать точки останова, каждый раз переходить через код строки и так далее. [12]
Python — это высокоуровневый, интерпретируемый и универсальный язык динамического программирования, который фокусируется на читаемости кода. Синтаксис в Python помогает программистам делать кодирование c меньшим количеством шагов по сравнению с Java или C++. Язык, основанный в 1991 году разработчиком Гвидо ван Россумом, имеет простое и интересное программирование. Python широко используется в крупных организациях из-за его многочисленных парадигм программирования. Обычно они включают в себя обязательно, и объектно-ориентированное, и функциональное программирование. Он имеет обширную и большую стандартную библиотеку с автоматическим управлением памяти и динамическими функциями. [12]
Язык Python имеет разнообразное применение в компаниях, занимающихся разработкой программного обеспечения. Его используют в таких областях, как игры, веб-фреймворки и приложения, разработка в области нейронных сетей, машинного обучения, приложения для графического дизайна и т.д. Это обеспечивает более высокий уровень использования языка программирования, в используемых отраслях. Некоторые из его преимуществ:
1. Обширные библиотеки поддержки.
Он предоставляет большие стандартные библиотеки, которые включают в себя такие области, как строковые операции, инструменты веб-сервиса, интерфейсы и протоколы операционной системы. Большинство из очень часто используемых задач программирования уже вписаны в него, что ограничивает количество строк кода, который должен быть написан на Python.
2. Интеграция.
Python использует интеграцию Enterprise Application Integration, которая упрощает разработку веб-сервисов путем вызова компонентов COM или COBRA. Он обладает мощными возможностями управления, поскольку он вызывается непосредственно через C, C ++ или Java через Jython. Python также обрабатывает XML и другие языки разметки, так как он может работать во всех современных операционных системах с помощью одного и того же байтового кода.
3. Увеличивает показатели продуктивности программиста.
Язык имеет обширные библиотеки поддержки и чистые объектно-ориентированные проекты, которые увеличивают продуктивность разработчика от двух до десяти раз при сравнении использования таких языков, как Java, VB, Perl, C, C ++ и C #.
4. Производительность.
Благодаря мощным функциям интеграции процессов, модульной системе тестирования и расширенным возможностям управления, он способствует увеличению скорости работы большинства приложений, а также улучшает показатели производительности приложений. Это отличный вариант для создания масштабируемых многопротокольных сетевых приложений [12].
2.2.5 Node.js
Node.js наделяет JavaScript функцией взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, созданные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js используестя чаще всего на сервере.
Среди преимуществ Node.js стоит выделить то, что он дает возможность пользоваться JavaScript на стороне клиента и на стороне сервера. Разработчики могут подключать специальное ПО JavaScript: JQuery, V8, JSON и управляемое событиями программирования. Также выделяют особые экосистемы, которые работают “поверх” Node.js, среди них веб-инфраструктура Express (быстрый, гибкий, минималистичный веб-фреймворк для приложений Node.js).
К недостаткам можно отнести следующий пункт: пользоваться неблокируемым вводом/выводом при ограниченных процессорных ресурсах Вы не сможете. Для этого используйте специальные архитектурные премы, например, разветвление пула процессов.
Node.js – довольно молодой, но уже популярный проект. Начал разрабатываться только в 2009 году, на данный момент используется во многих известных ресурсах. [20]
Прежде всего для приложений, которым нужно обмениваться информацией между пользователями в реальном времени. К примеру, это могут быть разных видов чаты, игры, рассылки с помощью API, программное обеспечение, предназначенное для совместной работы. Впрочем, с Node.js разработать такое приложение будет намного проще и легче чем в PHP.