Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как правильно документировать проекты?

54K
14 февраля 2011 года
Inacondition
43 / / 17.01.2011
Мне, как начинающему, было бы полезно приучить себя правильно вести документацию... Я понимаю, что те программы, которые я пишу в процессе обучения, не требуют документирования но необходимо нарабатывать привычки.

Как нужно вести документацию, чтоб работу приняли заказчики?
Какие методы документирования лучше?
Есть ли какие-то госты для этого?
Можно ли для этого использовать блок-схемы, актуально ли это сейчас?
5
14 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Inacondition
Как нужно вести документацию, чтоб работу приняли заказчики?


Спросите об этом заказчиков.

Цитата: Inacondition
Какие методы документирования лучше?


Те что наиболее понятны в каждом конкретном случае.

Цитата: Inacondition
Есть ли какие-то госты для этого?


Обычным людям наплевать на стандарты - им важен результат.

Цитата: Inacondition
Можно ли для этого использовать блок-схемы, актуально ли это сейчас?


Слова с парой диаграмм все же лучше :)

http://habrahabr.ru/blogs/development/110355/

241
14 февраля 2011 года
Sanila_san
1.6K / / 07.06.2005
Цитата: Inacondition
Мне, как начинающему, было бы полезно приучить себя правильно вести документацию... Я понимаю, что те программы, которые я пишу в процессе обучения, не требуют документирования но необходимо нарабатывать привычки.

Похвальное рассуждение. Начните с комментариев. Ещё в работе помогает фиксация мысли любым доступным способом, если вы пишете что-то не по готовому заданию. Ну то есть если стоит задача разработать некую программу вместе со спецификацией, не ленитесь записывать мысли до того как начнёте кодировать. Ну и действительно, диаграммы, текст, рисунки, что угодно - было бы самому понятно. Кстати, приучает ясно мыслить.

Цитата: Inacondition
Как нужно вести документацию, чтоб работу приняли заказчики?

Дело в том, что некоторым заказчикам плевать, некоторым нет, но ради последних вы вряд ли освоите профессию технического писателя, а ради первых оно часто не стоит трудозатрат больших, чем требуется для комментирования кода и написания readme-файла.

Цитата: Inacondition

Какие методы документирования лучше?

Автодокументирующие комментарии: они позволяют легче ориентироваться в собственном коде. Остальное по потребности.

Цитата: Inacondition

Есть ли какие-то госты для этого?

Госты есть, есть методические рекомендации, но опять же, вас как разработчика они не касаются никак. Есть целая профессия "технический писатель", и вот мастера этого дела иногда пользуются теми гостами, а иногда и нет. Вся проблема опять же в потребности того, кому продавать продукт. Я больше скажу: если вы прочитаете какие-то официальны рекомендации и будете им следовать, вы наверняка разовьёте в себе косноязычие и канцелярит устной и письменной речи. Это не принесёт вам пользы, а избавиться от этих качеств очень трудно.

Цитата: Inacondition

Можно ли для этого использовать блок-схемы, актуально ли это сейчас?

Блок-схемы хороши в двух случаях: либо когда ими описывается что-то очень простое, либо что-то очень общее. Я как-то хохмы ради накидал блок-схему одного из своих уже работающих проектов. Так вот разобраться с тем, как работает проект, по блок-схеме было почти невозможно.

54K
14 февраля 2011 года
Inacondition
43 / / 17.01.2011
Я может неправильно выразился, возможно начинающий и только учусь - разные понятия, я тот, что только учится программы писать...

Цитата: hardcase
Спросите об этом заказчиков.



У меня нет заказчиков и ближайшем времени не будет...


Цитата: hardcase
Те что наиболее понятны в каждом конкретном случае.



А какие вообще есть кроме блок-схем?


Цитата: hardcase
Обычным людям наплевать на стандарты - им важен результат.



Заказчики - люди обычные?

Цитата: hardcase
Слова с парой диаграмм все же лучше :)



Вы о чем?:confused:

241
14 февраля 2011 года
Sanila_san
1.6K / / 07.06.2005
Цитата: Inacondition
Я может неправильно выразился, возможно начинающий и только учусь - разные понятия, я тот, что только учится программы писать...


Тогда комментарии в коде - это лучшее, что вам следует освоить.

Цитата: Inacondition

У меня нет заказчиков и ближайшем времени не будет...


Это всё от вас самих и зависит. Просто выбирайте задачи по силам, и заказчики появятся. Один мой знакомый начинал вообще с написания скриптов под фотошоп, а дорос до начальника отдела разработки в крутом банке. Сейчас не то фрилансит, не то работает где-то с американцами. Не знаю точно.

Цитата: Inacondition

А какие вообще есть кроме блок-схем?


Ну есть потоковые диаграммы, есть диаграммы состояний, есть UML-диаграммы... Оно вам нафига сейчас?

Цитата: Inacondition

Заказчики - люди обычные?


Если вы будете писать софт для Microsoft, FSF или ТАНТК имени Бериева - вас ознакомят с требованиями по документированию. Если вам закажут калькулятор бухгалтера какой-нибудь, вам не скажут про документацию ни слова.

Цитата: Inacondition

Вы о чем?:confused:

Да вот как раз о том, что логичнее всего просто фиксировать мысли о том, что вы пишете, любым доступным способом. Желательно при этом, чтобы способ был ещё и максимально простым. Незачем плодить сущности.

54K
14 февраля 2011 года
Inacondition
43 / / 17.01.2011
Спасибо, Sanila_san))

Стало понятно в каком направлении двигаться.
33K
15 февраля 2011 года
hivewarrior
205 / / 16.11.2010
Цитата: Inacondition

Как нужно вести документацию, чтоб работу приняли заказчики?



Все зависит от заказчика. Но часто все же приходится писать не только readme файл, но и маленькое руководство пользователя. Очень радуют скриншоты программы в данном документе.
Если внутренний заказчик, то часто вообще ничего не надо, ибо сам и отвечаешь за интеграцию своей разработки, да и вполне специфические они бывают...

Цитата: Inacondition

Какие методы документирования лучше?


Коменты в коде. Еще можно завести небольшой дневничек/записную книжку. Можно электронный ежедневник, программ на эту тематику предостаточно. И туда вписываешь свои планы/успехи за день. Иногда помогает восстановить нить после праздников выходных (я тот человек, который работу домой не несет, поэтому и приходится вспоминать).

Цитата: Inacondition

Есть ли какие-то госты для этого?


19 серия точно, но это касается оформления самого документа. По-моему еще 13 и 24 серия тоже про программное обеспечение, но точно не помню.

Цитата: Inacondition

Можно ли для этого использовать блок-схемы, актуально ли это сейчас?


UML диаграммы. Книжек по этому делу хватает. Там и диаграммы классов и еще много интересного для ведения проекта. Есть даже пакеты с автоматической кодогенерацией на ЯП по графическим шаблонам.

278
15 февраля 2011 года
Alexander92
1.1K / / 04.08.2008
Вставлю пару слов с вашего позволения.=)

Inacondition, все зависит от того, какую документацию вы собираетесь вести. Одно дело - если вы пишете какой-то конечный продукт, а к нему - руководство пользователя. Другое дело - если вы пишете какой-то промежуточный элемент (библиотеку классов, например), которым могут захотеть воспользоваться другие программисты. Такие продукты действительно нужно документировать достаточно подробно (прежде всего, интерфейсную часть). Наконец, еще один случай - если вы сами пишете какой-то сравнительно большой проект и сами для себя вставляете какие-то комментарии, диаграммы и т.п. - для СВОЕГО же лучшего понимания того, что вы делаете. Это все совершенно разные стили написания документации.

А вообще, абсолютно согласен с замечанием выше, что вам сейчас достаточно научиться грамотно писать комментарии - так, чтобы вы посмотрели на свой код через несколько месяцев и восстановили в памяти, что и зачем вы писали.
276
20 февраля 2011 года
Rebbit
1.1K / / 01.08.2005
Цитата: Sanila_san

Ну есть потоковые диаграммы, есть диаграммы состояний, есть UML-диаграммы... Оно вам нафига сейчас?


Возможно именно сейчас оно вам (топикавтор) и не особо надо, но очень скоро, когда вы начнете проектировать более/менее сложные вещи, вам оно может и понадобится.
Со своего опыта скажу что когда работаю сам то предпочитаю не делать такой вот документации (я именно о том что процитировал), потому что меня это утомляет и раздражает. Работая в небольшой команде над не слишком сложным заданием тоже такого не используем (ребята мы толковые и запомнить несложные связи наследования, агрегирования и взаимодействия можем без проблем).
Совсем другое дело если проект большой, сложный и в команде появляются новые люди. Тут наличие документации по организации проекта просто необходимо. Точно так же как необходимо умение читать такую документацию тем, кто приходит на проект.
Также замечу что делать всю эту документацию чисто от руки нет смысла. Это утомительно и затратно по времени. Есть множество инструментов, которые помогут вам сделать большую часть документирования.

Еще замечу, что хоть документация чегото небольшого и не всегда необходима, но проектировать чтото даже очень небольшое на бумаге намного проще. И тут знания всяких ЮМЛ обозначений тоже будут вам полезны.

276
20 февраля 2011 года
Rebbit
1.1K / / 01.08.2005
Главное не забывать что для нас разработка продукта не менее важна, чем разработка документации. Так что если вы только учитесь хорошо программировать и проектировать и изучение стандартов и методов документирования сейчас для вас не критично и начнет вас раздражать, то самым лутшим действительно может оказаться
Цитата: Sanila_san
фиксация мысли любым доступным способом


:)
А вообще советую вам почитать Греди Буча. У него есть книги которые сочитают в себе и некие основи ЮМЛ и научат хорошему проектированию.

69K
20 февраля 2011 года
Doctor P.
1 / / 20.02.2011
Поделюсь и своим опытом (это мой первый пост на данном форуме, ура!).
Я работал на различных проектах, в которых документирование было устроено по-разному. Если соотнести мой опыт со статьей на Хабре (ссылка выше давалась), то ключевой принцип, совершенно верно - "Документировать нужно только то, что действительно необходимо".

Лично я выделяю следующие виды документации:
  1. Руководство для пользователя
  2. Функциональная документация, технические задания
  3. Техническая документация для программиста (комментарии кода, UML диаграммы, схемы базы данных, итд)
  4. Руководство администратора (как развернуть, как поставить, как настроить, итд)

Самая важная, документация, которая на мой взгляд всегда должна существовать в том или ином виде на проекте (исключение лишь - очень простые проекты) - это функциональная. Из нее всегда должно быть ясно, каким поведением система должна обладать в том или ином случае. Причины, почему она самая важная , очевидны - именно из этой документации формируется функциональная суть системы, а впоследствии, код, которую это суть реализует. Отсутствие такой документации есть либо признак непромышленной разработки, либо отсуствие необходимости в ней (что скорее всего означает, что функционал прост и понятен и без документации).

Документация техническая - ее наличие должно быть очень избирательно.
Как правильно говорится на хабре - можно убиться, если четко там все документировать.
Я думаю, что особо важная тех. документация - это описание сигнатур методов классов и схема базы данных (возможно, с описанием). Первое не позволяет потеряться на уровне кода, второе - на уровне данных. Все остальные виды документации подходят для своих конкретных случаев.

На моих проектах документация была устроена вполне хорошо.
На одном - был Wiki, там писалась функциональная документация (инфа о том, что система делает) и сигнатуры методов (причем абсолютно всех).
На другом - было много doc файлов (функциональная).
На третьем - doc файлы, сигнатуры методов, схема БД.
На четвертом - все что на 3ем + Flow diagram + state diagram
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог