Разработка веб-сервисов осень 2013 лекция 1 1
TRANSCRIPT
Разработкавеб-сервисов
Прелюдия
Об авторе
Кто? Максим Бабич
Где? Mail.Ru Group, Деньги@Mail.Ru
Кем? Технический директор
Что еще? Ответы@
Рассылки@
Форумы@
Недвижимость@
Открытки@
2
Об авторе
Контакты: [email protected]
+7 916 941-52-75
Живое общение? Да!
офис Mail.Ru Group,
17й этаж
3
Правила игры
Разговариваем по одному.
Есть вопрос? Старый добрый метод: рука.
Не успели спросить?
Телефоны не могут поднимать руку
Нужно ответить — вне аудитории
Можно выйти, можно зайти?
Можно
«Вы» или «ты»?
Ваши правила?
4
План занятия
1. Описание курса, его цели
2. Структура курса, какие будут занятия
3. Отчетность
5
О чем курс?
Курс «Разработка веб-сервисов»:
О создании и поддержке веб-сервисов
О роли технического отдела
О командной работе и управлении разработчиками
6
О чем курс?
Курс разбит на блоки:
1. Техническое задание и организация командной работы
2. Проектирование и реализация
3. Эксплуатация и сопровождение
7
Цель курса
Обобщение и систематизация
Обмен опытом
Открытое обсуждение
Работа над ошибками
Какие цели у вас?
8
Зачем нужен курс?
Закрепить и систематизировать знания, полученные в предыдущих семестрах.
Узнать о принципах построения систем от этапа проектирования до этапа запуска проекта и его дальнейшей поддержки и сопровождения.
Научиться применять знания при проектировании сервисов.
9
Зачем нужен курс?
Понимать последствия архитектурных решений, их слабые и сильные стороны.
Улучшить навыки командной разработки
Узнать об аспектах управления техническим персоналом и попробовать управлять группой разработчиков
Научиться взаимодействовать с нетехническими сотрудниками для создания качественного продукта.
10
Структура курса
11
Беседа первая 14 сентября
Процесс разработки веб-сервиса: этапы и участники
Этапы создания продукта и участники процесса
Внутренние и внешние заказчики
Задачи, стоящие перед техническим отделом
Блок Техническое задание и организация команды
Структура курса
12
Беседа вторая 21 сентября
Методологии разработки
Обзор основных методологий разработки
Практика работы по этим методологиям
Инструменты для управления процессом разработки
Блок Техническое задание и организация команды
Структура курса
13
Беседа третья 28 сентября
Техническое задание
Принципы создания. Сбор требований, необходимость и достаточность.
Согласование задания и его изменений. Дрейф требований.
Декомпозиция технического задания согласно принятой методологии разработки
Оценка сроков выполнения задач, принципы оценки
Оперативное и длительное планирование
Блок Техническое задание и организация команды
Структура курса
14
Домашнее задание
Блок: Техническое задание и организация команды
28 сентября
Составление технического задания на разработку веб-сервиса
Структура курса
15
Беседа четвертая 5 октября
Построение команды и командная разработка
Подбор сотрудников и собеседования.
Вовлечение в работу
Рабочий процесс, тайм-менеджмент
Делегирование полномочий и координация разработки.
Нацеленность на результат или на процесс?
Контроль выполнения. Дедлайн и срыв сроков
Блок Техническое задание и организация команды
Структура курса
16
Семинар 12 октября
Презентация технического задания на создание проекта
Цель:
представить описание проекта, его функциональных
возможностей
Награда: 25 баллов
Блок Техническое задание и организация команды
Структура курса
17
Беседа первая 12 октября
Этапы построения архитектуры веб-сервиса
Проектирование: виды, принципы и цели
Программирование: от разработки модулей к разработке системы
Эксплуатация: запуск и поддержка проекта
Блок Проектирование и реализация
Структура курса
18
Беседа вторая 19 октября
Серверные компоненты разработки, взаимодействие в вебе
Обзор принципов работы основных типов серверов
Принципы построения веб-сервисов,
Основные схемы веб-сервисов и компонентов
Блок Проектирование и реализация
Структура курса
19
Домашнее задание
Блок: Проектирование и реализация
19 октября
Проектирование архитектуры веб-сервиса на основе
технического задания
Структура курса
20
Беседа третья 26 октября
Разработка для веба
Парадигмы программирования для веба
Организация процесса разработки в зависимости от выбранного языка
Шаблоны проектирования
Блок Проектирование и реализация
Структура курса
21
Беседа четвертая 2 ноября
Инструментарий разработки, импорт и экспорт решений
Принципы выбора инструментария разработки
Проектирование собственных фреймворков
Разработка своего API, поддержка чужого
Блок Проектирование и реализация
Структура курса
22
Семинар 9 ноября
Презентация архитектуры веб-сервиса
Цель:
представить схему взаимодействия компонентов,
обосновать выбор инструментов разработки
Награда: 50 баллов
Блок Проектирование и реализация
Структура курса
23
Беседа первая 16 ноября
Внедрение и эксплуатация продукта
Этапы запуска продукта
Тестирование
Сопровождение кода
Взаимодействие с отделом эксплуатации, суппортом, внешними партнерами
Мониторинг продукта и последствий изменений в нем
Блок Эксплуатация и сопровождение
Структура курса
24
Беседа вторая 23 ноября
Веб-сервис как изменяющийся продукт. Рефакторинг
Снова о жизненном цикле продукта.
Как распределять ресурсы.
Исправление ошибок и технический долг
Блок Эксплуатация и сопровождение
Структура курса
25
Домашнее задание
Блок: Эксплуатация и сопровождение
23 ноября
План разработки и запуска веб-сервиса согласно техническому
заданию и спроектированной архитектуре
Структура курса
26
Беседа третья 30 ноября
Устойчивость архитектурного решения
Высокие нагрузки
Поиск и анализ узких мест в веб-сервисе
Масштабирование
Блок Эксплуатация и сопровождение
Структура курса
27
Беседа четвертая 7 декабря
Построение эффективной команды
Оценка эффективности сотрудника и команды
Обмен опытом, внутреннее обучение, наставничество
Мотивация персонала
«Темная сторона» управления
Блок Эксплуатация и сопровождение
Структура курса
28
Семинар 7 декабря
Архитектура проектов Mail.Ru, эволюция сервисов
Цель:
рассказать о решениях, принимавшихся при разработке
некоторых веб-сервисов Mail.Ru
Блок Эксплуатация и сопровождение
Структура курса
29
Семинар 14 декабря
Презентация плана запуска проекта
Цель:
защита плана запуска проекта на основе технического задания
и архитектурной концепции
Награда: 25 баллов
Блок Эксплуатация и сопровождение
Структура курса
30
Экзамен
21 декабря
Ключевые даты:
28 сентября 12 октября
19 октября 9 ноября
23 ноября 14 декабря
Курс Разработка веб-сервисов
Отчетность
Смысл отчетности — создаем свой проект
При чём тут разработчики?
Разработчик тоже может быть заказчиком
Решение технических вопросов — на разработчике
31
Отчетность
Первый этап
создание технического задания, в котором прописано:
что должен из себя представлять проект в целом
описаны основные функции проекта
описаны интерфейсы
описаны сценарии использования
32
Отчетность
Второй этап
выбор инструментария разработки
перенос требований на архитектуру проекта,
описание взаимодействия основных частей
описание модулей
примерное проектирование структуры кода
33
Отчетность
Третий этап
оценка необходимых ресурсов (серверов, людей)
понимание последовательности работ
оценка сроков выполнения работ
подготовка проекта к эксплуатации
подготовка проектной документации с регламентами работы
34