Разработка веб-сервисов осень 2013 лекция 8

Preview:

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

Вопросы?

Максим Бабич

tpark@maxbabich.ru

+7 916 9415275

Recommended