КонцепцияMvc
MVC=Model-View-Controller= одна из возможных русскоязычных интерпретаций термина выглядит как "Модель - Представление - Поведение".
Основная идея концепции заключается в том, чтобы разделить между собой данные, взаимодействие с пользователем (реакция на его запросы) и представление этих данных на экране пользователя. Поскольку все эти шаги разделяются между собой - то появляется ряд преимуществ. Например, можно изменить внешний вид Web-приложения, не меняя ничего больше. К одной модели присоединить несколько видов, отображая одни и те же данные в виде таблицы, графиков, гистограмм - содержимое самой модели при этом не меняется. Не затрагивая реализацию видов, можно изменить реакцию приложения на действия пользователя (работа с клавиатурой или мышью), для этого достаточно изменить контроллер.
Состоит из трех компонентов:
Model- представление "знаний". Данные и методы для работы с ними ("бизнес-логика". Не содержит в себе никаких сведений о том, как эти данные могут быть представлены.
View - отображение информации (визуализация)
Controller- осуществляет взаимодействие с пользователем. Контролирует ввод данных пользователем, выдает пользователю полученную от модели информацию при помощи представлений.
Как представления, так и контроллеры зависят от модели. Модель в свою очередь не зависит ни от чего. Таким образом, модель можно строить без учета того, как это все будет выглядеть на экране. И одной и той же модели придавать несколько вариантов внешнего вида.
MVC- это концепция, она не зависит от конкретного языка, реализующие данную концепцию программные пакеты (framework, русскоязычные термины - "каркасы", "шаблоны") существуют практически во всех языках программирования. ИспользованиеMVCпозволяет создавать (и сопровождать) очень большие приложения и гибкие приложения, работа с которыми без примененияMVCбыла бы сложна.
PHP
Название происходит от первых букв PersonalHomePage. На сегодняшний день название расшифровывают какPHP:HypertextPreprocessor, "препроцессор гипертекста". Из самого термина вытекает, что по структуре своейPHPпредставляет собой некую программную систему, через которую предварительно проходит исходный текстHTMLперед выдачей его клиенту. Язык программированияPHPотличается тем, что его код может быть встроен напрямую в текстHTMLстраницы. При этом две части кода - выполняемая на серверной стороне и выполняемая на клиентской стороне - могут идти в странице друг за другом. Однако выполняться они будут - и в разное время, и в разных местах.
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
<!-- Этот кусок кода будет выполняться на серверной стороне -->
<?php
echo 'Hello, world!';
?>
<!-- А этот кусок кода будет выполняться на стороне клиента -->
<script language="javascript>
alert("Hello, world!");
<script>
</body>
</html>
Стандартным механизмом включения скрипта PHP в HTML документ является использование тэгов <?php и ?>. Как правило, препроцессор поддерживает еще несколько видов тэгов: <? и ?>, <script type="text/php"></script>. Однако стандартом оговорено использование только первого способа. В любом случае, эти тэги отрабатываются - препроцессором PHP, а не браузером. До браузера они вообще не дойдут, в выдаваемой пользователю странице их не будет. Если, конечно, препроцессор настроен корректно и если эти строки не закомментированы полностью. PHP является кросс-платформенным языком, на его основе можно создавать различные приложения. Начиная от CGI и выполняющихся из командной строки утилит и заканчивая графическими приложениями, для чего в языке существуют "обертки" нескольких библиотек виджитов: Qt, Gnome (GTK) и других. PHP имеет достаточный набор функций и является объектно-ориентированным языком программирования. Кроме встроенных функций, существует великое множество расширений, позволяющих из языка PHP работать с электронной почтой, офисными документами, сокетами, файловой системой, архивами и так далее.
Применительно к Web-приложениям, возможны следующие варианты использования языка PHP:
Встраивание скриптов в исходный код HTML-страницы. Самый простой вариант для решения несложных задач. Для развитых приложений такой подход вряд ли можно назвать обоснованным, потому что развивать и сопровождать мало-мальски сложное приложение будет нелегко (если вообще реально).
Написание самостоятельного CGI-приложения. Недостатки - см.выше.
Использование одного из множества существующих MVC-frameworks: Phalcon, Yii, Zend, Symfony, DooPHP и других.
Python
Название не имеет ничего общего со змеей и берет свое начало от британского комедийного телешоу. Язык достаточно старый, его разработка началась еще в конце 80х годов голландцем Гвидо Ван Россумом. Считается, что Pythonимеет свою философию, называемуюTheZenofPython("Дзен питона").
Текст этой философии выводится интерпретатором в ответ на команду importthis;
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, толькоодин — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямосейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их побольше.
Синтаксис языка построен таким образом, чтобы специально затруднить написание нечитабельных программ. Отличительной особенностью языка является обязательное использование отступов при форматировании блоков кода. Несмотря на "старость" языка, он является очень современным вследствие его популярности: новая версия выходит примерно раз в 2-3 года. Pythonявляется одновременно и интерпретатором, и компилятором. Основной единицей является модуль, логически завершенный блок программы. Если данный модуль не менялся и для него существует скомпилированный байт-код - выполняется последний (имеет расширение .pyc). Если не существует или устарел - сначала выполняется компиляция, потом выполняется сгенерированный байт-код. Компиляторов существует несколько, наиболее распространенный из них -CPython. Отдельных процессов компиляции и компоновки нет, компиляция происходит "на лету", что позволяет экономить время при написании программ. Однако наличие компиляторов в байт-коды не исключается возможности работы чисто в режиме интерпретатора, прямо из командной строки.
Существует несколько MVC-фреймворков для реализацииWeb-приложений наPython. Вероятно, самым популярным из них являетсяDjango. Но не единственным: есть еще событийно-ориентированный фреймворкTwisted, естьWeb2Py,Pylons,Pyramidи другие.
Java
Авторство языка - SunMicrosystems(ныне -Oracle), официальная дата выхода - 23 мая 1995 года. Назван в честь марки кофе по имени одноименного острова, где этот сорт кофе производится. Поэтому эмблемойJavaявляется дымящая чашка кофе.
Идеология создания языка Javaвключала в себя 4 постулата:
Объектно-ориентированный язык.
Независимость от целевой платформы.
Должен содержать объекты и библиотеки для работы в сети.
Безопасное выполнение кода, полученного из удаленных источников.
Иными словами, Javaизначально разрабатывался как мультиплатформенный и как сетевой язык.
Из-за наличия двух ступеней (текст программы -> компиляция -> байт-код, байт-код -> интерпретатор -> исполняемые машинные коды) за языком Javaпрочно закрепилась репутация медленной, ресурсоемкой технологии. И в первых версиях языка (точнее - виртуальной машиныJava) это утверждение имело под собой реальные и серьезные основания. Но в последнее время, в силу ряда факторов, производительностьJavaлишь незначительно уступает бинарным кодам, скомпилированным с языка С++. А именно, на производительности отразились следующие факторы:
В настоящее время Oracle(SunMicrosystems) использует так называемуюJIT-технологию (just-in-time, "динамическая компиляция"). В таком варианте виртуальная машинаJavaпредставляет собой не интерпретатор байт-кода (как это было ранее), а проводит компиляцию "на лету" в бинарный код данного процессора. ПрименениеJIT-компиляторов позволило повысить время выполнения программ - в разы по сравнению с первыми версиями виртуальной машиныJava
Некоторые процессоры имеют аппаратную поддержку Java.
Наряду с виртуальной машиной Javaможет использоваться одноступенчатый компилятор, имеющий на выходе исполняемый бинарный код. Такой подход повышает производительность, конечно же, в ущерб переносимости скомпилированных программ.
Вообще говоря, называть Java"языком программирования" вряд ли правильно, скорее,Java- это "технология программирования". Существует несколько вариантов распространения программного обеспеченияJava.
JavaSE - Standard Edition
JavaEE-EnterpriseEdition. Включает в себяSEи дополняет ее рядом технологий "уровня предприятия": распределенными транзакциями, механизмом передачи событий и др.
JavaME-MicroEdition, предназначена для разработки (и выполнения) приложений для мобильных платформ, в том числе содержит в себе классы для обеспечения работы по беспроводному соединению.
Язык Javaна серверной части может быть применен несколькими способами. Для него тоже существуютMVCфреймворки:Play,Springи другие. Но на этом возможности его применения в качестве серверного программного обеспечения не заканчиваются.
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных