Upload
technopark
View
358
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
Разработкавеб-сервисов
Беседа 8: Инструментарий. Экспорт и импорт решений
План занятия
О велосипедах
Библиотеки и фреймворки
Интерфейсы использования сервисов
Безопасность
2
Библиотеки и фреймворки
Подходы к разработке
Берем готовый движок
Пишем с нуля
3
Библиотеки и фреймворки
Подходы к разработке
Пишем с нуля. Этапы
Получить данные из адресной строки / формы
Проверить данные
Выполнить действие
Отдать результат в браузер
4
Библиотеки и фреймворки
Подходы к разработке
Используем библиотеки и фремворки
5
Библиотеки и фреймворки
Библиотеки
Библиотека (модуль, пакет) — набор процедур, функций или классов для выполнения задач определенной тематики
6
Библиотеки и фреймворки
Библиотеки
Обработка текста
Шаблонизаторы
Работа с хранилищами
Работа с почтой
и многое-многое другое
7
Библиотеки и фреймворки
Библиотеки. Сборники кода
Perl — CPAN (~126800 модулей)
PHP — PECL/PEAR (~600)
Python — PyPI (~36200)
Ruby — RubyGems (~65200)
8
Библиотеки и фреймворки
Библиотеки. Работа с хранилищем
Работа с API хранилища (драйверы, ODBC, JDBC итп)
ORM — Object Relational Mapping или «объектно-реляционная проекция»
9
Библиотеки и фреймворки
Шаблонизаторы
Шаблонизатор — библиотека, позволяющая использовать шаблоны для генерации страниц
Назначение шаблонизатора — отделить представление от бизнес-логики приложения
10
Библиотеки и фреймворки
Шаблонизаторы. Возможности
Базовые конструкции
Переменные
Циклы
Логические конструкции (if, else…)
Обработка данных (escape, trim etc)
Включение шаблонов
11
Библиотеки и фреймворки
Шаблонизаторы. Различия
Синтаксис
Скорость работы
Интерпретация
Компиляция
12
Библиотеки и фреймворки
Шаблонизаторы. Примеры
Perl Template::Toolkit
HTML::Template
PHP Smarty
Twig
Python Kid
CTPP (Perl, PHP, Python)
13
Библиотеки и фреймворки
Фреймворки
Фреймворк — набор модулей, библиотек и соглашений для облегчения разработки повседневных задач и объединения компонентов сложной системы
В отличие от библиотек, влияют на архитектуру приложений.
14
Библиотеки и фреймворки
Основные задачи фреймворка
Обработка входных данных
Вызов обработчиков бизнес-логики
Вывод данных
15
Библиотеки и фреймворки
Дополнительные задачи фреймворка
Пре- и пост-обработка данных
Создание и валидация форм
Работа с хранилищами данных
16
Библиотеки и фреймворки
Примеры фреймворков
PHP
Yii
Symphony
Zend
Python
Django
17
Библиотеки и фреймворки
Примеры фреймворков
Perl
Mojolicious
Dancer
Catalyst
Ruby
Ruby-on-Rails
18
API
API — набор готовых инструментов (классов, процедур, структур и констант), предоставляемых сервисом для использования во внешних продуктах
Web API — набор HTTP-запросов и HTTP-ответов определенной структуры
19
API
API. Преимущества
Стандартизация
Отделение интерфейсов от реализации
Гибкость
Экономия ресурсов
20
API
API. Недостатки
Разнообразие (принципы, форматы)
Избыточность трафика
Зависимость от чужой разработки
Единая точка отказа
21
API
API. Принципы создания
Описание функций (процедур)
Описание передаваемых данных, их типов
Описание возвращаемых данных
Описание ошибок
22
API
API. Принципы создания
Описание данных:
WSDL — Web Services Description Language
23
API
API. Принципы создания
Описание ошибок
Разработайте список ошибок и их описание
Присвойте каждой ошибке свой код
Не экономьте на ошибках!
24
API
API. О чем нужно помнить
Журналы запросов
Минимизация трафика и пакетные вызовы
Версионность
25
API
API. Версионность
Как получится
Обратная совместимость
Версии вызовов
26
API
API. Передача метода и версии
Заголовки HTTP
Заголовки вызовов
Часть URL
27
API
API. Передача метода и версии
Заголовки и тело HTTP:
PUT /shop/item/
X-API-Version: 1.2
id: 15
28
API
API. Передача метода и версии
Заголовки вызовов{
options: {
method: ”get_shop_item”,
version: “1.2”
},
params: {
shop_id: 15
}
}
29
API
API. Передача метода и версии
Часть URL
GET /api/1.2/orders/list/
30
API
API. Форматы ответа
TEXT
JSON
XML
31
API
API. Технологии
REST
RPC
32
Безопасность
Эпидемии
Бэкдоры
Проверка входных данных
Инъекции, XSS итп
Целостность данных
Проверка авторизации пользователя
33
Резюме
Не изобретайте велосипеды
Всё написано до нас
Ускоряйте разработку, где это возможно
Стандартизуйте инструменты работы с сервисом
Следите за безопасностью
34