Текст
                    
Министерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ __________________________________________________________________________ Д.В. ВАГИН, Р.В. ПЕТРОВ СОВРЕМЕННЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2019
УДК 004.738.12(075.8) В 124 Рецензенты: канд. техн. наук, ведущий инженер-программист АО «Завод Экран» А.В. Волкова д-р техн. наук, профессор М.Э. Рояк Работа подготовлена на кафедре прикладной математики НГТУ В 124 Вагин Д.В. Современные технологии разработки веб-приложений: учебное пособие / Д.В. Вагин., Р.В. Петров. – Новосибирск: Изд-во НГТУ, 2019. – 52 с. ISBN 978-5-7782-3939-5 В учебном пособии сначала дается теоретическая часть, а затем посредством несложных заданий предлагается изучить основные аспекты создания веб-сайта и применить полученные знания при создании собственной веб-программы, реализовав отсутствующий в CMS модуль. Также в учебном пособии даны примеры решения часто встречающихся задач. УДК 004.738.12(075.8) ISBN 978-5-7782-3939-5 © Вагин Д.В., Петров Р.В., 2019 © Новосибирский государственный технический университет, 2019
ВВЕДЕНИЕ О ВЕБ-РАЗРАБОТКЕ Сейчас веб-приложения очень популярны. Такая популярность связана с необходимостью реализации различных сервисов и программ, рассчитанных на широкий круг лиц, которые не будут ставить себе на устройство (компьютер, телефон, телевизор и др.) какие-то внешние программы, но при этом заинтересованы в использовании вашей программы. Часто используемым вариантом является создание программы на базе веб-технологий, которая решает поставленную задачу, а для ее запуска достаточно браузера, который установлен у всех. Поэтому самый часто встречающийся формат веб-приложения – это веб-сайт, или просто сайт. Альтернатива – это API веб-сервиса или мобильное приложение, которое также получает данные с сервера по веб-протоколам. Мы в данном учебном пособии будем преимущественно обсуждать тему сайтов, но вы всегда можете обобщить материалы на более широкий спектр веб-приложений. СОВРЕМЕННОЕ СОСТОЯНИЕ В ОБЛАСТИ ВЕБ-РАЗРАБОТКИ В настоящее время при веб-разработке применяются различные методики, языки программирования и технологии. В основном разница в применяемых технологиях зависит от размера, длительности и предполагаемой посещаемости проекта, а также от того, кто является конкретным заказчиком и исполнителем проекта. Можно выделить несколько типов проектов, отличающихся разными подходами. 1. Небольшие по посещаемости, нагрузке и объему обрабатываемых данных сайты (до 5000 просмотров/день). Для них преимуще3
ственно используются готовые системы управления (CMS), готовые решения на базе CMS, а также SaaS решения для построения сайта. Во многих случаях для таких проектов применяется типовой (шаблонный) дизайн, но иногда разрабатывается и индивидуальный дизайн. Примеры таких проектов – 90 % всех сайтов в интернете. 2. Средние сайты. Посещаемость и/или объем обрабатываемых данных для такого типа сайтов могут быть уже достаточно велики для применения индивидуальных программных модулей или решений. Также требования отдела маркетинга могут генерировать необходимость отдельного программирования и доработки стандартной функциональности CMS. Как правило, такие сайты уже имеют посещаемость более 5000 просмотров/день (или более 500 посетителей/день). Чаще всего такие сайты разрабатываются на базе коробочных CMS с разработкой дополнительных модулей. Для таких проектов чаще всего применяется индивидуальный дизайн. Иногда для подобных проектов разрабатывается собственная система управления сайтом на базе фреймворка. Примеры таких проектов – средние интернет-магазины, региональные порталы, региональные СМИ и др. 3. Большие проекты. Как правило, это либо проекты с большой посещаемостью, либо проекты с большим объемом данных и требованиями к работе 24 × 7 × 365. Для них характерна очень серьезная программная доработка CMS или фреймворка для решения стоящих перед проектом задач. Как правило, в таких проектах используется несколько технологий и несколько языков программирования. Примеры таких проектов – крупные интернет-магазины (Эльдорадо, Связной, …), крупные СМИ и др. 4. Enterprise решения, сервисы, SaaS проекты для построения более мелких веб-проектов. Характеризуются высокой нагрузкой, требованиями к работе 24 × 7 × 365, долгим жизненным циклом, итерационной разработкой и большим числом пользователей с обязательным разделением по правам доступа. Для них характерна серьезная программная доработка CMS или фреймворка для решения стоящих перед проектом задач, объединение различных технологий и языков программирования. Примеры таких проектов – банковские сервисы, системы для коллективной работы, CRM системы (Битрикс24, АМО CRM), системы для поиска и бронирования авиабилетов, крупные мировые СМИ и сервисы (twitter, facebook, ВКонтакте, Одноклассники). 4