28
Документирован ие долгоживущих веб-проектов Глеб Белогорцев РосБизнесКонсалтинг

документирование долгоживущих веб проектов. г. белогорцев. зал 3

  • Upload
    rit2011

  • View
    460

  • Download
    2

Embed Size (px)

Citation preview

Page 1: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Документирование долгоживущих веб-проектов

Глеб БелогорцевРосБизнесКонсалтинг

Page 2: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ВведениеИдеальная документация – всеобъемлющая документация?

• На создание требуется вечность• Нужно поддерживать актуальность• Реально используется только малая часть

Page 3: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ВведениеА может, ну её? Главное – код?

• Нужно минимизировать потерю знаний

• А еще лучше – обеспечить их рост

Page 4: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ВведениеДисклеймер• документация для разработчиков• пишется силами разработчиков• время ограниченоНо выводы делаются на основе общих принципов.

Page 5: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение целейЗачем вообще нужна документация?

Какие могут быть цели?

Page 6: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение целей• Иметь под рукой базовую информацию о проекте (входы, выходы,

интерфейсы)

• Облегчить погружение в проект новых сотрудников

• Стандартизировать регулярно возникающие задачи по поддержке, распространить знания о них

• Сохранить знания по технически сложным и неочевидным деталям реализации

• Отслеживать изменения на проекте

Page 7: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение набора артефактовКритерии выбора• Соответствие выбранным целям• Простота создания и поддержания

актуальности

Page 8: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение набора артефактов

Затраты на создание артефакта должны покрываться экономией времени от его

использования

Page 9: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение набора артефактовПример: диаграмма последовательности

Описывает процесс, в котором легко разобраться по коду, или который часто меняется – не нужна.

Описывает очень сложный процесс или вы умеете генерировать её автоматически – нужна.

Page 10: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактовТребования:

• Функциональные

• Надежность

• Производительность

• Возможность поддержки

• …

Page 11: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактов

Описание архитектуры

Текстовое Диаграммы Предварительное

Page 12: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактовОписание организационных вопросов

• Кто за что отвечает

• Адреса, телефоны

• Регламенты

Page 13: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактовHOWTO («Как это сделать»)

Сделать А Сделать Б Проверить В Profit!

Page 14: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактовКомментарии в коде

• Должны быть по умолчанию

• Из них можно генерить документацию (см. phpDocumentor). А можно не генерить.

Page 15: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Варианты артефактовЛог изменений на проекте

Варианты:- Выборка из баг-трекера- svn log- Лог внедрений

Page 16: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Определение набора артефактов

Мы набросали ряд целей. Какие артефакты подходят в каждом случае?

Page 17: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Мой выборКарточка проекта – сводная информация о нем

• Название

• URL SVN

• URL проекта

• URL админки

• закрытые разделы (и как получать доступ)

• платформа (язык, фреймворк)

• ...

Page 18: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Мой выборВходы (какими путями на проект попадают данные: где добавляются пользователями, откуда и как импортируются)

Выходы (какими путями данные отдаются проектом)

Управление (как он управляется: админка, сигналы с других проектов)

Список разделов (в т. ч. функциональное описание разделов сайта)

HOWTO (описание решения типовых задач)

Лог изменений

Page 19: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ИнструментыТребования к хранилищу документации:

• Удобное редактирование

• Поиск

• Гиперссылки

• Аттачи

• Версионность

• Возможность задавать структуру дерева документов и работать с ней

Page 20: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Инструменты

Как хранить документы?

Wiki Plain text+SVN

Page 21: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ИнструментыWikiМного функций «из коробки».Нет жесткой структуры, работы с деревьями документов.

Page 22: документирование долгоживущих веб проектов. г. белогорцев. зал 3

ИнструментыPlain text + SVN (asciidoc, Doxygen, LaTeX)

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

Page 23: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Инструменты• Mwdiawiki (+Sphinx search, breadcrumbs)

• Автогенерация комментариев к коммитам

PRJ – TASK#1234: Задача. Описание изменений.

• Письма о внедрении и лог изменений• phpDocumentor

Page 24: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Внедрение документирования

Внедрение

Первичное заполнение

Поддержание актуальности

Page 25: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Внедрение документированияПервичное заполнение:• Метод «съесть слона»• Распараллелить работу• Поручить новичкам• Пообещать плюшки

Page 26: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Внедрение документированияПоддержание актуальности• Нужен «библиотекарь»• Проверка на необходимость

документирования – после внедрения

Page 27: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Почитать по темеК. Ларман, «Применение UML 2.0 и шаблонов проектирования»

С. Макконнелл, «Совершенный код»

Т. Лимончелли, «Тайм-менеджмент для системных администраторов»

Фредерик Брукс, «Мифический человеко-месяц»

Page 28: документирование долгоживущих веб проектов. г. белогорцев. зал 3

Спасибо за внимание

Контакты

E-mail: [email protected]

Блог: http://WidgetOK.ru

Вопросы?