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

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

HTML+CSS+javascript.

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

r

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

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

r

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

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

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

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

• CMS (content management sytem)

• HTML5

• jQuery и ajax

• Адаптивный веб-дизайн и верстка.
CSS фрэймворки: Twitter Bootstrap,
Foundation и Skeleton.

MVC фреймворки:Zend framework,
CodeIgniter, ASP.net; (Model View
Controller)

MVVM (Model View View Model) -
AngularJS, KnockoutJS;

Веб-сервер

r

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

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

r

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

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

r

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

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

Хостинг

r

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

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

r

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

Проектирование стороны сервера (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 системы

r

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

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

r

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