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

Беседа 10: Веб-сервис как изменяющийся продукт
План занятия
 Длительное и оперативное планирование
 Развитие основного продукта

 Оперативная работа и поддержка
 Вну...
Планирование

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

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

 Одни сотрудники работают, другие нет
 Что делать, если делать нечего?

 Непонимани...
Планирование
Виды планирования

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

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

 Составные части — мини-проекты
 Временной план
 Годовой план
 Квартальный план
...
Планирование
Оперативное планирование

 Составные части — задачи
 Итерации
 Планирование
 Контроль
 Анализ

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

 Распределение 60/20/20
 Продуктовые задачи

— 60%

 Оперативная работа

— 20%...
Планирование
Цели распределения и классификации

 Учет необходимых ресурсов
 Переключение сотрудников

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

 Простые случаи:
 Фронтенд
 Бэк-офис

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

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

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

 ...
Планирование
Распределение задач

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

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

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

 Распределение приоритето...
Планирование
План задач. Приоритеты

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

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

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

 Забивать целиком
 Забивать важными задачами + дать правила
выб...
Планирование
План задач. Итерация

 Порядок решения задач
 Долги
 Важные задачи (и продукт, и инфраструктура)

 Учет в...
Рефакторинг
Рефакторинг – процесс изменения системы, когда
 Не меняется внешнее поведение кода

 улучшается его внутренн...
Рефакторинг
Откуда возникает потребность в рефакторинге?

 Всё не предусмотришь
 Неудачное проектирование или кодировани...
Рефакторинг
Возможные точки старта

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

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

 улучшает структуру ПО
 облегчает понимание ПО

 помогает найти ошибки
 позволяет быст...
Рефакторинг
Минусы рефакторинга

 неочевидность пользы
 нужна определенная квалификация

 вероятность ошибки
- Работает...
Рефакторинг
Рефакторинг не нужен, если

 проще переписать
 неработоспособность перед рефакторингом,
слишком много ошибок...
Рефакторинг
Признаки плохого кода









Дублирование кода
Длинный метод
Суперкласс
Длинный список параметров
Мно...
Рефакторинг
Направления рефакторинга

 Перепроектирование компонентов или методов?
 Выделение общего кода в нечто больше...
Рефакторинг
Массовый рефакторинг. Подходы

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

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

Если исправляем сразу всё, то при вероятности упасть
будут сложности с отслеживанием и в...
Рефакторинг
Массовый рефакторинг

Поэтапный рефакторинг
 Ставим цели

 Вырабатываем правила
 Новый код пишем исходя из ...
Резюме
 Продукт постоянно изменяется. Это нормально
 Планирование – друг человека

 Иногда код нужно менять
 При смене...
Структура курса
Домашнее задание
План разработки и запуска веб-сервиса согласно техническому
заданию и спроектированной ар...
Вопросы?
Максим Бабич
tpark@maxbabich.ru
+7 916 9415275
Upcoming SlideShare
Loading in …5
×

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

418 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
418
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Разработка веб-сервисов Беседа 10: Веб-сервис как изменяющийся продукт
  2. 2. План занятия  Длительное и оперативное планирование  Развитие основного продукта  Оперативная работа и поддержка  Внутренний заказ  Исправление ошибок и технический долг  Рефакторинг 2
  3. 3. Планирование Цель планирования — эффективное использование ресурсов 3
  4. 4. Планирование Негативные индикаторы  Одни сотрудники работают, другие нет  Что делать, если делать нечего?  Непонимание, когда получить решение задачи 4
  5. 5. Планирование Виды планирования  Длительное (стратегическое)  Оперативное (тактическое) 5
  6. 6. Планирование Длительное планирование  Составные части — мини-проекты  Временной план  Годовой план  Квартальный план  План на месяц 6
  7. 7. Планирование Оперативное планирование  Составные части — задачи  Итерации  Планирование  Контроль  Анализ 7
  8. 8. Планирование Распределение объема задач  Распределение 60/20/20  Продуктовые задачи — 60%  Оперативная работа — 20%  Инфраструктурные задачи — 20% 8
  9. 9. Планирование Цели распределения и классификации  Учет необходимых ресурсов  Переключение сотрудников  Подключение дополнительных ресурсов 9
  10. 10. Планирование Распределение продуктовых задач  Простые случаи:  Фронтенд  Бэк-офис  Сложные случаи     Фронтенд Агрегация … Бэк-офис 10
  11. 11. Планирование Распределение инфраструктурных задач  Инструменты для оперативной работы  Мониторинг состояния проекта  Сопровождение кода  Документирование  Рефакторинг 11
  12. 12. Планирование Распределение задач 12
  13. 13. Планирование План задач. Виды бэклогов  Продуктовый — развитие продукта  Оперативный — решение задач поддержки и эксплуатации  Технический 13
  14. 14. Планирование План задач. Приоритеты  Сортировка задач в строгом порядке  Группы приоритетов  Распределение приоритетов 14
  15. 15. Планирование План задач. Приоритеты 15
  16. 16. Планирование План задач. Принципы формирования  Как задача попадает в план?  Как задача меняет приоритет? 16
  17. 17. Планирование План задач. Принципы формирования итерации  Забивать целиком  Забивать важными задачами + дать правила выбора 17
  18. 18. Планирование План задач. Итерация  Порядок решения задач  Долги  Важные задачи (и продукт, и инфраструктура)  Учет времени  Анализ выполнения 18
  19. 19. Рефакторинг Рефакторинг – процесс изменения системы, когда  Не меняется внешнее поведение кода  улучшается его внутренняя структура Цель рефакторинга – упростить понимание и модификацию программного обеспечения 19
  20. 20. Рефакторинг Откуда возникает потребность в рефакторинге?  Всё не предусмотришь  Неудачное проектирование или кодирование  Рост объема кода  Новые парадигмы, синтаксические принципы  Борьба со сложностью 20
  21. 21. Рефакторинг Возможные точки старта  добавление новой функции  разбор кода 21
  22. 22. Рефакторинг Плюсы рефакторинга  улучшает структуру ПО  облегчает понимание ПО  помогает найти ошибки  позволяет быстрее писать программы 22
  23. 23. Рефакторинг Минусы рефакторинга  неочевидность пользы  нужна определенная квалификация  вероятность ошибки - Работает? Не трогай! 23
  24. 24. Рефакторинг Рефакторинг не нужен, если  проще переписать  неработоспособность перед рефакторингом, слишком много ошибок  близка дата завершения проекта 24
  25. 25. Рефакторинг Признаки плохого кода        Дублирование кода Длинный метод Суперкласс Длинный список параметров Множественные зависимости при изменении Неиспользуемый код … 25
  26. 26. Рефакторинг Направления рефакторинга  Перепроектирование компонентов или методов?  Выделение общего кода в нечто большее  Можно писать более полный код, проводя рефакторинг на заключительной стадии 26
  27. 27. Рефакторинг Массовый рефакторинг. Подходы  Переписываем сразу всё  Выделяем общий код и постепенно исправляем 27
  28. 28. Рефакторинг Массовый рефакторинг Если исправляем сразу всё, то при вероятности упасть будут сложности с отслеживанием и возвратом в исходное состояние 28
  29. 29. Рефакторинг Массовый рефакторинг Поэтапный рефакторинг  Ставим цели  Вырабатываем правила  Новый код пишем исходя из правил  Старый постепенно переводим на новые принципы 29
  30. 30. Резюме  Продукт постоянно изменяется. Это нормально  Планирование – друг человека  Иногда код нужно менять  При смене кода без тестов никуда  Поэтапное изменение кода – надежнее, но дольше 30
  31. 31. Структура курса Домашнее задание План разработки и запуска веб-сервиса согласно техническому заданию и спроектированной архитектуре       Постановка тасков Оценка времени и последовательности выполнения Оценка сроков запуска Оценка необходимых ресурсов (как аппаратных, так и людских) Описание интеграционного тестирования План итераций 31
  32. 32. Вопросы? Максим Бабич tpark@maxbabich.ru +7 916 9415275

×