Экскурс в мир web разработки

44
Санкт-Петербург, 2015 год Экскурс в мир WEB разработки Лаабе Дмитрий, IT-Доминанта

Upload: it-

Post on 27-Jul-2015

177 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Экскурс в мир WEB разработки

Санкт-Петербург, 2015 год

Экскурс в мир WEB разработки

Лаабе Дмитрий, IT-Доминанта

Page 2: Экскурс в мир WEB разработки

Немного о себе…

1. Опыт в ИТ – 19 лет

2. Преподавание ИТ в СПбГПУ («Политех») – 7 лет

3. Более 10-ти авторских курсов в области WEB разработки

4. Руководство рекрутинговой компанией в сфере ИТ – 10 лет

5. Подготовка ИТ рекрутеров – 8 лет

Page 3: Экскурс в мир WEB разработки

Что нужно знать рекрутеру о разработке ПО

1. Базовые понятия

2. Связи между ними

3. Привязку конкретных технологий к базовым понятиям

4. Архитектуру разрабатываемых систем

Page 4: Экскурс в мир WEB разработки

Что НЕ нужно знать рекрутеру о разработке ПО

1. Синтаксис языка JavaScript

2. Основные настройки WEB сервера

3. …

Page 5: Экскурс в мир WEB разработки

Базовые понятия: архитектура ПО

1. Одноуровневая: desktop приложение

2. Двухуровневая: клиент-серверное приложение

3. Трехуровневая: клиент-серверное приложение + база

данных

4. Многоуровневая: сложные системы с цепочками вызовов

Page 6: Экскурс в мир WEB разработки

Базовые понятия: клиент-серверное взаимодействие

Сервер - компьютер (или специальное компьютерное оборудование), выполняющий определенные сервисные функции

Клиент – компьютер отправляющий запросы серверу ответ

запрос

Page 7: Экскурс в мир WEB разработки

Клиент-серверное ПО

Примеры серверного ПО (Back End):

1. WEB серверы (выдача HTML страниц): MS IIS, Apache, nginx и т. д.

2. FTP серверы (выдача файлов): FTP службы ОС, FileZilla server и т.д.

3. SMTP(почтовые) серверы: MS Exchange, SendMail,

4. И т.д.

Примеры клиентского ПО (Front End):

1. WEB клиенты: Internet Explorer, Google Chrome, Mozilla FireFox и т.д.

2. FTP клиенты: Cute FTP

3. Почтовые клиенты: MS Outlook, The Bat

1. Серверное ПО – ПО обеспечивающее обработку запросов от клиентов в

рамках некоторого сервиса

2. Клиентское ПО – ПО взаимодействующее с пользователем, отправляющее

запросы на сервер и принимающее ответы от него

Page 8: Экскурс в мир WEB разработки

Базовые понятия: Протоколы

Сетевой протокол — набор правил и действий, позволяющий осуществлять обмен данными между включёнными в сеть устройствами.

TCP/IP –транспортно-сетевой,

HTTP, FTP, SMTP - прикладной

7-ми уровневая модель ISO OSI

Page 9: Экскурс в мир WEB разработки

Службы Интернет

Популярные службы:

• World Wide Web

• ICQ

• Skype

• FTP

• Telnet

• И др.

Служба Интернет – серверное ПО, работающее в Интернет.

Page 10: Экскурс в мир WEB разработки

Архитектура WEB приложений

WEB приложение – частный случай 3-х уровневой архитектуры приложения

WEB браузер (тонкий клиент)

WEB сервер Сервер БД

JavaScript Developer, Front End Developer

PHP Developer, Java Developer, Ruby Developer

DB Developer (SQL)

Page 11: Экскурс в мир WEB разработки

Служба World Wide Web

Page 12: Экскурс в мир WEB разработки

Служба WWW: обработка запросов

Page 13: Экскурс в мир WEB разработки

WEB хостинг: панель управления хостингом

Page 14: Экскурс в мир WEB разработки

WEB хостинг: терминальный доступ на сервер

Page 15: Экскурс в мир WEB разработки

Основы HTML

HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML).

Язык HTML интерпретируется браузерами, полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.

Тег HTML - элемент языка разметки гипертекста. Текст, содержащийся между начальным и конечным тегом отображается и размещается в соответствии со свойствами, определенными для данного тега.

Page 16: Экскурс в мир WEB разработки

Структура HTML документа

Page 17: Экскурс в мир WEB разработки

Стилевые описания CSS

CSS (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и др.

Page 18: Экскурс в мир WEB разработки

Формирование Веб-документа

HTML

CSS

JavaScript

Ин

тер

пр

етац

ия

веб

рау

зер

а

Page 19: Экскурс в мир WEB разработки

Статистика использования браузеров 2015

• Данные с сайта http://www.w3counter.com

• Данные с сайта http://www.w3schools.com

Page 20: Экскурс в мир WEB разработки

Кроссбраузерность

Кроссбраузерность — свойство сайта отображаться и работать во всех популярных браузерах идентично. Под идентичностью понимается отсутствие развалов верстки и способность отображать материал с одинаковой степенью читабельности.

Page 21: Экскурс в мир WEB разработки

Базовые понятия: Программирование

Программирование— процесс записи алгоритма/программы.

Язык программирования – набор правил определяющих способ записи программы

Page 22: Экскурс в мир WEB разработки

Front-end разработка

Front-end разработка – это создание клиентской части веб приложения. В нее входят (в общем случае): • HTML верстка шаблонов страниц сайта/UI • Создание UI • Программирование UI

Front-end разработчик vs JS разработчик: • Часто это одно и тоже • Front-end шире, чем JS • Front-end не всегда JS

Некоторые варианты front-end для WEB: • HTML/JavaScript • Flash/Flex/ActionScript • ActiveX/C+ или C# • Applet/Java • HTML/VBScript (только Internet Explorer)

Page 23: Экскурс в мир WEB разработки

JavaScript

JavaScript - прототипно-ориентированный сценарный язык программирования. Наиболее широкое применение нашел в веббраузерах для создания интерактивных страниц.

Задачи, решаемые с помощью JS в браузере: • Управление UI • Динамическое формирование и

загрузка содержимого • Проверка данных форм • Управление структурой

документа • Создание визуальных эффектов • и др.

Page 24: Экскурс в мир WEB разработки

JavaScript

Код JavaSript: 1. Встраивается в страницу или подключается к ней 2. Интерпретируется браузером 3. Выполняется браузером при возникновении определенных событий 4. Может менять содержимое и структуру страницы Пример:

Page 25: Экскурс в мир WEB разработки

Базовые понятия: Фреймворки

Принцип действия: 1. Реализует типовое приложение 2. Позволяет расширять себя под

конкретную задачу 3. Используется для более быстрого

создания однотипных систем

Фрейворк - каркас программной системы с определенной структурой и поведением по умолчанию

Page 26: Экскурс в мир WEB разработки

Библиотеки и фреймворки JavaScript

Библиотека/фреймворк JavaScript – набор функций/прототипов написанных на JS и готовых для повторного использования. Библиотека/фреймворк JS: • Решает определенный круг типовых задач front-end разработки • Состоит из одного или нескольких файлов JS • Может быть подключена к одной/нескольким/всем страницам веб приложения Типовые задачи, решаемые JS фреймворками: • Упрощение манипулирования элементами документа DOM • Разделение данных, логики и отображения (шаблон MVC) • Уменьшение количества кода • Модульность

Page 27: Экскурс в мир WEB разработки

Библиотеки и фреймворки JavaScript

Библиотека/Фреймворк Назначение и особенности

jQuery 1. Взаимодействиe JavaScript и HTML. 2. Работа с AJAX Пример: $("div.test"). addClass("blue")

AngularJS 1. Разработка сложных клиентских одностраничных приложений. 2. Отделение логики от данных и отображения (MVC) 3. Приложения более компактные.

Backbone.js См. Angular JS

Ember.js

См. Angular JS

CoffeScript 1. Язык, расширяющий возможности JS. 2. Транслируется на сервере в JS 3. Код более компактный и читаемый

Page 28: Экскурс в мир WEB разработки

jQuery

Библиотека jQuery: • Помогает получать доступ к любому элементу DOM, • Помогает обращаться к атрибутам и содержимому элементов DOM, • Помогает манипулировать элементами DOM, • Предоставляет удобный API для работы с AJAX, • Предоставляет набор компонентов UI

Примеры: • Меняем содержимое кнопки $( "button.continue" ).html( "Next Step..." ) • Выводим контейнер при нажатии на любую кнопку button-container

var hiddenBox = $( "#banner-message" ); $( "#button-container button" ).on( "click", function( event ) { hiddenBox.show(); });

Page 29: Экскурс в мир WEB разработки

Angular.js

Приложение на Angular.js состоит из модулей. Основные элементы модуля: 1. Контроллеры (Controllers) 2. Представления (View) 3. Менеджеров контроллеров (Routes) 4. Директив (Directives)

Page 30: Экскурс в мир WEB разработки

Angular.js: простейший модуль

Page 31: Экскурс в мир WEB разработки

AJAX

AJAX, (Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером, когда при обновлении данных веб-страница не перезагружается полностью.

Page 32: Экскурс в мир WEB разработки

Веб серверы

Статистика использования Веб серверов май 2015 по данным http://w3techs.com/:

Page 33: Экскурс в мир WEB разработки

WEB сервисы

Примеры WEB сервисов: • Google Maps Api Web Services • Yandex Search API • Platron API

Веб-сервис — идентифицируемая веб-адресом (url) программная система со стандартизированными интерфейсами.

Page 34: Экскурс в мир WEB разработки

СУБД в WEB

СУБД – программное обеспечение для управления базой данных Язык запросов – один из важнейших элементов СУБД SQL – де-факто стандартный язык запросов к реляционным БД

MS SQL Server, Oracle DB, PostgreSQL, MySQL, SQLLite и др.

Команда Описание

CREATE TABLE Создает таблицу

DROP TABLE Физически удаляет таблицу из базы данных

SELECT Выполняет запрос на выборку данных из таблиц и представлений

DELETE Удаляет одну или более строк из таблицы базы данных

INSERT Вставляет одну или более строк в таблицу базы данных

Page 35: Экскурс в мир WEB разработки

Среды WEB разработки

IDE - система программных средств, используемая программистами для

разработки программного обеспечения (ПО). Некоторые IDE используемые в WEB разработке: • MS Visual Studio (MS Visual WEB Developer) • IntelliJ IDEA (RubyMine) • WebStorm • Notepad и др.

Page 36: Экскурс в мир WEB разработки

Серверные WEB технологии: PHP

PHP - скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений, одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Популярные PHP фреймворки: • Zend Framework • Yii • Drupal

Обработка

Исходный файл PHP: Передается клиенту:

Page 37: Экскурс в мир WEB разработки

Серверные WEB технологии: ASP.NET

ASP.NET(Active Server Pages) — технология создания веб-приложений и веб-сервисов от компании Майкрософт, часть платформы Microsoft .NET

Page 38: Экскурс в мир WEB разработки

Серверные WEB технологии: ROR

ROR (Ruby on Rails) - фреймворк, написанный на Ruby. Ruby on Rails предоставляет архитектурный каркас MVC для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.

Page 39: Экскурс в мир WEB разработки

Серверные WEB технологии: Python/ Django

Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.

Hello.py

Django — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC

Page 40: Экскурс в мир WEB разработки

Серверные WEB технологии: Java

JSP(JavaServer Pages) – серверная технология WEB. Страница JSP включает и код и HTML разметку и компилируется в servlet.

Сервлет – класс Java, реализация которого расширяет функциональные возможности WEB сервера.

Page 41: Экскурс в мир WEB разработки

Серверные WEB технологии: Java

Пример сервлета:

Page 42: Экскурс в мир WEB разработки

Разработка WEB приложений

Подходы к разработке: 1. Разработка с «нуля»:

• Серверная: языки PHP, ASP, Java; • Клиентская: HTML, JS, CSS

2. Разработка с использование фреймворков: • Rails и язык Ruby • Django и язык Python • Zend Framework и язык PHP

3. Разработка с использованием CMS: 1С-Битрикс, UMI.CMS, Joomla, WordPress

Page 43: Экскурс в мир WEB разработки

Что нужно знать о проекте рекрутеру?

1. Архитектура проекта (уровневость) 2. Клиентские языки программирования проекта 3. Серверные языки программирования проекта 4. Используемые клиентские и серверные библиотеки 5. Используемые протоколы и API 6. Используемые фреймворки и(или) CMS 7. Используемые БД 8. Используемые IDE (среды разработки) 9. Какую часть проекта будет писать программист на

конкретной позиции

Ну и, конечно, какие задачи решает проект…

Page 44: Экскурс в мир WEB разработки

Спасибо за внимание!

• Сайт: http://www.it-dominanta.ru

• Телефон: +7 (812) 334-99-90

• E-mail: [email protected]

• Адрес: 191186, Санкт-Петербург, Большая морская ул., д.3 (БЦ "Лидваль"), офис 314.

Контакты:

Лаабе Дмитрий Генеральный директор и основатель IT-Доминанта Технический директор портала IT-Событие email: [email protected]