Тема 1. Введение в веб-разработку

Проектирование Веб-сайта

Проектирование стороны клиента (frontend)

HTML+CSS+javascript.

Использование javascript-framework’ов

r

(jQuery, Dojo, KnockaoutJS, AngularJS и.т.д)

Использование встраиваемых компонент в веб-браузер.

r

(ActiveX или технологий виртуальных машин Abode Flash, Java, Microsoft Silverlight).

Плагины для браузеров

Совместное использование вышеперечисленных решений.

Проектирование стороны сервера (Backend)

Архитектурные решения

r

Проектирование серверной стороны можно разделить на следующие архитектурные решения:• Web-сайт на основе статических HTML-страниц без использования DHTML (Dynamic HTML).• Web-сайт c использованием языка программирования разработка с нуля.• Web-сайт на основе Content Management System (CMS). • Web-сайт на основе framework’а. (Zend Framevork, Laravel,CodeIgniter, Rybu on Rails, Microsoft ASP.net и.т.д.) 

Языки программирования

Скриптовые языки / интерпретаторы

r

PHPPerlRubyPython

Компилируемые языки / компиляторы

r

JavaC++

Технологии веб-разработки

CMS (content management sytem)

HTML5

jQuery и ajax

Адаптивный веб-дизайн и верстка. CSS фрэймворки

r

Twitter Bootstrap, Foundation и Skeleton.

MVC фреймворки

r

(Model View Controller)Zend framework, CodeIgniter, ASP.net.

MVVM фреймворки

r

(Model View View Model)AngularJS, KnockoutJS.

Развертывание веб-сайта(deployment)

Хостинг

r

Хостинг может быть следующих типов:Shared - виртуальный хостинг. Минусы: полное разделение всех аппаратных ресурсов между сотнями сайтов.VDS/VPS (Virtual Dedicated Server/ Virtual Dedicated Server ) – виртуальный выделенный сервер. Минусы: разделение аппаратных ресурсов, дисковая система, канал связи между десятками выделенных серверов; необходимость администрирования.Dedicated – физически выделенный сервер. Минусы: необходимость администрирования.Collocated – размещение собственного оборудования у провайдера.

Аспекты при выборе хостинга

r

Предоставление соответствующих услуг. Возможность масштабирования выделяемых ресурсов. Репутация хостинг-провайдера.Территориальная удалённость data-центров (центров обработки данных - ЦОД) хостинг-провайдера от целевой аудитории разрабатываемого web-ресурса.Пропускная способность каналов.Возможность использования (дополнительных или сторонних каналов доставки данных) CDN (content delivery network)

Веб-сервер

r

Веб-сервер — сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными .

Принцип работы простого HTTP-сервера

r

Основная задача HTTP сервера - это ожидание запросов от клиентов и отправка им ответов. Взаимодействие с клиентами происходит по протоколу HTTP (HyperText Transfer Protocol). Клиент (обычно веб-браузер) запрашивает ресурс (обычно HTML файл или графический файл). Сервер связывает запрос с файлом или направляет запрос программе, которая генерирует необходимые данные. После этого сервер отсылает ответ обратно клиенту 

Принцип работы HTTP-сервера Apache

r

Сервер Apache поддерживает одновременную работу и, следовательно, может обслуживать большое количество клиентов. Количество клиентов, которое может одновременно обслуживаться, ограничивается лишь используемыми аппаратными средствами и операционной системой. Сервер может быть легко сконфигурирован с помощью редактирования текстовых файлов или, используя один из многочисленных инструментов с графическим интерфейсом. В соответствии со своей модульной архитектурой, множество возможностей, которые необходимы для работы некоторых приложений, могут быть реализованы в виде дополнительных модулей Apache. Для разработчиков модулей реализован хорошо документированный API. Модульность и существование множества бесплатных модулей позволяет легко создать мощный веб-сервер без изменения его исходного кода. Используя на сервере множество доступных скриптовых языков, можно легко создать любое веб-приложение.

CMS системы

r

CMS (Content management system - Система управления содержимым) - Информационная система используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым. На данный момент существует множество готовых CMS систем, как платных так бесплатных, с открытым исходным кодом или закрытым, разработанных на различных языках программирования и в различных программных архитектурах. В сети Internet существует так же множество обзоров и ресурсов где можно найти подходящую систему. В типовой конфигурации наборы web-разработчика имеют поддержку только скриптовых языков программирования (php, perl и.т.д.), для того что бы установить/настроить CMS разработанную на другом языке программирования необходимы дополнительные компоненты или другая платформа. Для возможности работы с CMS системами локально, необходимо создать рабочее окружение на вашем персональном компьютере. Необходим веб-сервер, интерпретатор выбранного языка программирования либо виртуальная машина, база данных и возможно другие компоненты в зависимости от выбранной CMS. Рекомендуется инсталлировать готовое программное окружение состоящее из выше перечисленных компонент, таким пакетом программ может быть набор разработчика: DENWER, XAMPP, WAMPP и др.

Основные функции CMS

r

Предоставление инструментов для создания содержимого, организация совместной работы над содержимым,Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.,Публикация содержимого,Представление информации в виде, удобном для навигации, поиска