Тема 1. Введение в веб-разработку
Проектирование Веб-сайта
Проектирование стороны клиента (frontend)
HTML+CSS+javascript.
Использование javascript-framework’ов
(jQuery, Dojo, KnockaoutJS, AngularJS и.т.д)
Использование встраиваемых компонент в веб-браузер.
(ActiveX или технологий виртуальных машин Abode Flash, Java, Microsoft Silverlight).
Плагины для браузеров
Совместное использование вышеперечисленных решений.
Проектирование стороны сервера (Backend)
Архитектурные решения
Проектирование серверной стороны можно разделить на следующие архитектурные решения:• Web-сайт на основе статических HTML-страниц без использования DHTML (Dynamic HTML).• Web-сайт c использованием языка программирования разработка с нуля.• Web-сайт на основе Content Management System (CMS). • Web-сайт на основе framework’а. (Zend Framevork, Laravel,CodeIgniter, Rybu on Rails, Microsoft ASP.net и.т.д.)
Языки программирования
Скриптовые языки / интерпретаторы
PHPPerlRubyPython
Компилируемые языки / компиляторы
JavaC++
Технологии веб-разработки
CMS (content management sytem)
HTML5
jQuery и ajax
Адаптивный веб-дизайн и верстка. CSS фрэймворки
Twitter Bootstrap, Foundation и Skeleton.
MVC фреймворки
(Model View Controller)Zend framework, CodeIgniter, ASP.net.
MVVM фреймворки
(Model View View Model)AngularJS, KnockoutJS.
Развертывание веб-сайта(deployment)
Хостинг
Хостинг может быть следующих типов:Shared - виртуальный хостинг. Минусы: полное разделение всех аппаратных ресурсов между сотнями сайтов.VDS/VPS (Virtual Dedicated Server/ Virtual Dedicated Server ) – виртуальный выделенный сервер. Минусы: разделение аппаратных ресурсов, дисковая система, канал связи между десятками выделенных серверов; необходимость администрирования.Dedicated – физически выделенный сервер. Минусы: необходимость администрирования.Collocated – размещение собственного оборудования у провайдера.
Аспекты при выборе хостинга
Предоставление соответствующих услуг. Возможность масштабирования выделяемых ресурсов. Репутация хостинг-провайдера.Территориальная удалённость data-центров (центров обработки данных - ЦОД) хостинг-провайдера от целевой аудитории разрабатываемого web-ресурса.Пропускная способность каналов.Возможность использования (дополнительных или сторонних каналов доставки данных) CDN (content delivery network)
Веб-сервер
Веб-сервер — сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными .
Принцип работы простого HTTP-сервера
Основная задача HTTP сервера - это ожидание запросов от клиентов и отправка им ответов. Взаимодействие с клиентами происходит по протоколу HTTP (HyperText Transfer Protocol). Клиент (обычно веб-браузер) запрашивает ресурс (обычно HTML файл или графический файл). Сервер связывает запрос с файлом или направляет запрос программе, которая генерирует необходимые данные. После этого сервер отсылает ответ обратно клиенту
Принцип работы HTTP-сервера Apache
Сервер Apache поддерживает одновременную работу и, следовательно, может обслуживать большое количество клиентов. Количество клиентов, которое может одновременно обслуживаться, ограничивается лишь используемыми аппаратными средствами и операционной системой. Сервер может быть легко сконфигурирован с помощью редактирования текстовых файлов или, используя один из многочисленных инструментов с графическим интерфейсом. В соответствии со своей модульной архитектурой, множество возможностей, которые необходимы для работы некоторых приложений, могут быть реализованы в виде дополнительных модулей Apache. Для разработчиков модулей реализован хорошо документированный API. Модульность и существование множества бесплатных модулей позволяет легко создать мощный веб-сервер без изменения его исходного кода. Используя на сервере множество доступных скриптовых языков, можно легко создать любое веб-приложение.
CMS системы
CMS (Content management system - Система управления содержимым) - Информационная система используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым. На данный момент существует множество готовых CMS систем, как платных так бесплатных, с открытым исходным кодом или закрытым, разработанных на различных языках программирования и в различных программных архитектурах. В сети Internet существует так же множество обзоров и ресурсов где можно найти подходящую систему. В типовой конфигурации наборы web-разработчика имеют поддержку только скриптовых языков программирования (php, perl и.т.д.), для того что бы установить/настроить CMS разработанную на другом языке программирования необходимы дополнительные компоненты или другая платформа. Для возможности работы с CMS системами локально, необходимо создать рабочее окружение на вашем персональном компьютере. Необходим веб-сервер, интерпретатор выбранного языка программирования либо виртуальная машина, база данных и возможно другие компоненты в зависимости от выбранной CMS. Рекомендуется инсталлировать готовое программное окружение состоящее из выше перечисленных компонент, таким пакетом программ может быть набор разработчика: DENWER, XAMPP, WAMPP и др.
Основные функции CMS
Предоставление инструментов для создания содержимого, организация совместной работы над содержимым,Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.,Публикация содержимого,Представление информации в виде, удобном для навигации, поиска