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

32
Разработка веб-сервисов Беседа 10: Веб-сервис как изменяющийся продукт

Upload: technopark

Post on 22-May-2015

112 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Разработка веб-сервисов осень 2013 лекция 10

Разработкавеб-сервисов

Беседа 10: Веб-сервис как изменяющийся продукт

Page 2: Разработка веб-сервисов осень 2013 лекция 10

План занятия

Длительное и оперативное планирование

Развитие основного продукта

Оперативная работа и поддержка

Внутренний заказ

Исправление ошибок и технический долг

Рефакторинг

2

Page 3: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Цель планирования —

эффективное использование ресурсов

3

Page 4: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Негативные индикаторы

Одни сотрудники работают, другие нет

Что делать, если делать нечего?

Непонимание, когда получить решение задачи

4

Page 5: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Виды планирования

Длительное (стратегическое)

Оперативное (тактическое)

5

Page 6: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Длительное планирование

Составные части — мини-проекты

Временной план

Годовой план

Квартальный план

План на месяц

6

Page 7: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Оперативное планирование

Составные части — задачи

Итерации

Планирование

Контроль

Анализ

7

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

Планирование

Распределение объема задач

Распределение 60/20/20

Продуктовые задачи — 60%

Оперативная работа — 20%

Инфраструктурные задачи — 20%

8

Page 9: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Цели распределения и классификации

Учет необходимых ресурсов

Переключение сотрудников

Подключение дополнительных ресурсов

9

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

Планирование

Распределение продуктовых задач

Простые случаи:

Фронтенд

Бэк-офис

Сложные случаи

Фронтенд

Агрегация

Бэк-офис

10

Page 11: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Распределение инфраструктурных задач

Инструменты для оперативной работы

Мониторинг состояния проекта

Сопровождение кода

Документирование

Рефакторинг

11

Page 12: Разработка веб-сервисов осень 2013 лекция 10

Планирование

Распределение задач

12

Page 13: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Виды бэклогов

Продуктовый — развитие продукта

Оперативный — решение задач поддержки и эксплуатации

Технический

13

Page 14: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Приоритеты

Сортировка задач в строгом порядке

Группы приоритетов

Распределение приоритетов

14

Page 15: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Приоритеты

15

Page 16: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Принципы формирования

Как задача попадает в план?

Как задача меняет приоритет?

16

Page 17: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Принципы формирования итерации

Забивать целиком

Забивать важными задачами + дать правила выбора

17

Page 18: Разработка веб-сервисов осень 2013 лекция 10

Планирование

План задач. Итерация

Порядок решения задач

Долги

Важные задачи (и продукт, и инфраструктура)

Учет времени

Анализ выполнения

18

Page 19: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Рефакторинг – процесс изменения системы, когда

Не меняется внешнее поведение кода

улучшается его внутренняя структура

Цель рефакторинга – упростить понимание и модификацию программного обеспечения

19

Page 20: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Откуда возникает потребность в рефакторинге?

Всё не предусмотришь

Неудачное проектирование или кодирование

Рост объема кода

Новые парадигмы, синтаксические принципы

Борьба со сложностью

20

Page 21: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Возможные точки старта

добавление новой функции

разбор кода

21

Page 22: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Плюсы рефакторинга

улучшает структуру ПО

облегчает понимание ПО

помогает найти ошибки

позволяет быстрее писать программы

22

Page 23: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Минусы рефакторинга

неочевидность пользы

нужна определенная квалификация

вероятность ошибки

- Работает? Не трогай!

23

Page 24: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Рефакторинг не нужен, если

проще переписать

неработоспособность перед рефакторингом, слишком много ошибок

близка дата завершения проекта

24

Page 25: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Признаки плохого кода

Дублирование кода

Длинный метод

Суперкласс

Длинный список параметров

Множественные зависимости при изменении

Неиспользуемый код

25

Page 26: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Направления рефакторинга

Перепроектирование компонентов или методов?

Выделение общего кода в нечто большее

Можно писать более полный код, проводя рефакторинг на заключительной стадии

26

Page 27: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Массовый рефакторинг. Подходы

Переписываем сразу всё

Выделяем общий код и постепенно исправляем

27

Page 28: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Массовый рефакторинг

Если исправляем сразу всё, то при вероятности упасть

будут сложности с отслеживанием и возвратом в

исходное состояние

28

Page 29: Разработка веб-сервисов осень 2013 лекция 10

Рефакторинг

Массовый рефакторинг

Поэтапный рефакторинг

Ставим цели

Вырабатываем правила

Новый код пишем исходя из правил

Старый постепенно переводим на новые принципы

29

Page 30: Разработка веб-сервисов осень 2013 лекция 10

Резюме

Продукт постоянно изменяется. Это нормально

Планирование – друг человека

Иногда код нужно менять

При смене кода без тестов никуда

Поэтапное изменение кода – надежнее, но дольше

30

Page 31: Разработка веб-сервисов осень 2013 лекция 10

Структура курса

31

Домашнее задание

План разработки и запуска веб-сервиса согласно техническому

заданию и спроектированной архитектуре

Постановка тасков

Оценка времени и последовательности выполнения

Оценка сроков запуска

Оценка необходимых ресурсов (как аппаратных, так и людских)

Описание интеграционного тестирования

План итераций

Page 32: Разработка веб-сервисов осень 2013 лекция 10

Вопросы?

Максим Бабич

[email protected]

+7 916 9415275