Главная » Просмотр файлов » Диссертация

Диссертация (1090660), страница 5

Файл №1090660 Диссертация (Методы и инструменты декларативного программирования динамических Web-узлов и приложений) 5 страницаДиссертация (1090660) страница 52018-01-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Наоборот, как правило, предметно-ориентированные языки проще в освоении, т.к. содержат только тот функционал, который требуется для решения задачв конкретной узко-специализированной предметной области. Понятие предметноориентированного языка ставится в противовес языкам общего назначения или GPL(англ. General-purpose programming language) [30].В книге [69] отмечается, что хороший предметно-ориентированный язык являетсяи декларативным: он предоставляет лингвистические абстракции в понятиях своейпредметной области, что позволяет препроцессору или интерпретатору такого языка«понимать» предметную семантику без комплексного анализа кода.Проведём аналогию использования парадигм программирования со строительством загородного дома.

Непосредственное участие субъекта в постройке дома:укладка кирпича, установка окон и дверей, монтирование коммуникаций — всё это по-23хоже на императивное программирование, т.к. дом строится на изначально пустом месте, а использование готовых компонентов (стройматериалов, окон и дверей, электрооборудования, сантехники) очень похоже на использование заранее подготовленныхбиблиотек, коих существует огромное количество в императивных языках высокогоуровня. Стоит также добавить, что низкоуровневое программирование напоминаетаналогичный процесс с оговоркой на то, что все готовые компоненты приходится изготавливать самостоятельно из сырья: выжигать кирпич, вытачивать брус, выплавлятьметаллические изделия.

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

По макету, разработанному архитектором, производится непосредственное строительство. Этот процесс аналогичен интерпретации программы.1.1Анализ технологий серверной стороны1.1.1Иерархическая модель инструментариевКлиентская часть редко исполняет логику приложения, выполняя скорее функциюпользовательского интерфейса. Именно по этой причине практически все клиентскиетехнологии заточены на решение специфичных задач, которые не требуют реализации сложных алгоритмических структур, а вся немногочисленная логика, нерешаемая этими технологиями, решается одним единственным языком программированияклиентской стороны — JavaScript, интерпретирующемся браузером.Совсем по-другому обстоят дела на серверной стороне, где исполняется основнаялогика работы приложения, происходит обработка больших объёмов данных, их выборка из внешних хранилищ и манипуляция, вспомогательные вычисления и многоедругое.

Этим и обуславливается технологическое многообразие серверной стороны. Внастоящем обзоре речь пойдёт о технологиях, позволяющих задать основную логикуработы Web-приложения. Условно, все классические серверные технологии разработки можно разделить на четыре группы, расположив их в определённой иерархической24последовательности (рис. 1.1). Похожая модель была предложена Эндрю Таненбаумом [114] для наглядного представления зависимости между скоростью и объёмом поотношению к различным типам компьютерной памяти.CMSФреймворкиИнтерпретируемыеязыки(Perl, PHP, Python, Ruby)Компилируемые языки(C/C++, Java)Рисунок 1.1.

Иерархическая модель инструментариев Web-разработкиНа верхнем уровне представленной пирамиды находятся системы управления контентом или CMS (англ. Content Management System). Это системы, предоставляющиеготовый функционал для размещения и управления пользовательскими данными. Какправило, это достаточно статичные и неповоротливые системы, для которых весьмазатруднительна реализация узко-специализированных функций.

Систем управленияконтентом существует большое количество, и, помимо знания языков программирования, требуется знание архитектуры таких систем, если требуется реализация узкоспециализированного функционала. Процесс разработки с использованием CMS становится весьма негибким и неэффективным, но при этом, если в задачах разработкиWeb-узла не значится реализация специфичного функционала, такие системы позволяют быстро развернуть информационный ресурс и разместить на нём необходимуюинформацию.Уровнем ниже расположены специализированные программные библиотеки, представляющие собой архитектурный каркас с набором высокоуровневых функций, решающих типовые задачи Web-разработки: авторизация пользователей, разграничениеправ доступа, получение данных, работа с СУБД и др.

Такой каркас носит название «фреймворк» (англ. framework, каркас, структура). Достоинство фреймворков вих повышенной гибкости и скорости разработки. Недостаток, присущий предыдущейгруппе — требуется время на обучение архитектуре — также сохраняется. Фреймворки25не заменяют языки программирования, они только помогают избежать необходимостьрешения рутинных задач и используются совместно с каким-либо из языков программирования.

Стоит также отметить, что многие фреймворки поддерживают технологию ORM (англ. Object-relational mapping, объектно-реляционное отображение), являющуюся высокоуровневым связующем звеном между СУБД и ООП.На следующем уровне находятся интерпретируемые языки общего назначения,традиционно применяемые в том числе и в Web-разработке. Интерпретация позволяет избежать необходимость перекомпиляции программы при каждом новом изменении. Помимо возможности интерпретируемости, у представленных языков естьи другая особенность — более высокий уровень абстракции. Они также являютсядинамическими, что подразумевает, как минимум, динамическую типизацию [109].Эти языки также поддерживают гибкую работу с памятью, эффективную обработкутекстовых данных, что особенно важно при разработке Web-приложений.

Работа сСУБД на этом уровне происходит напрямую через отправку запросов на предметноориентированном декларативном языке SQL (англ. Structured Query Language, языкструктурированных запросов). Низкоуровневые функции установки соединения сСУБД и передачи ей запросов осуществляются путём подключения дополнительныхмодулей и библиотек.И на самом нижнем уровне находятся компилируемые языки общего назначения,используемые не только в Web-разработке или обработке текстовых данных, но и,к примеру, в системном программировании.

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

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

Так, системы управления контентом, как правило, реализованы спомощью фреймворка, который, в свою очередь, реализован на одном из интерпретируемых языков, а интерпретатор специализированного языка всегда реализован накомпилируемом языке программирования.1.1.2Языки программированияБольшинство языков Web-программирования интерпретируемые, то есть весь программный код сохранён в явном виде в текстовых файлах — скриптах, а специализированная программа, называемая интерпретатором, построчно считывает исходныйкод и исполняет его «на лету» каждый раз во время поступления запроса от пользователя на соответствующий модуль. Интерпретируемые языки являются противоположностью компилируемым языкам, где компилятор преобразует программный кодна языке высокого уровня в исполняемый модуль в двоичном виде, который, в своюочередь, может быть исполнен напрямую машиной.Преобладание интерпретируемых языков в сфере Web-программирования обусловлено спецификой отрасли: программы на таких языках не требуют постоянной перекомпиляции, что позволяет разработчику менять логику работы приложения лишьизменяя соответствующие скриптовые файлы.

У подобного удобства есть и обратнаясторона — интерпретируемый код исполняется на несколько порядков медленнее компилируемого. Основной целью разработчиков интерпретаторов является уменьшениенакладных расходов и, как следствие, технологического разрыва по скорости междукомпилируемыми и интерпретируемыми языками. Для этого применяются различныеакселераторы и интеллектуальные алгоритмы повторного использования кода. Такаяже цель стоит и перед системными архитекторами, разрабатывающими архитектуруWeb-сервера и внедряющие кэширование как на клиентской, так и на серверной сторонах.

Характеристики

Список файлов диссертации

Методы и инструменты декларативного программирования динамических Web-узлов и приложений
Документы
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее