Форум программистов, компьютерный форум CyberForum.ru

Нужно ли документировать проект? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
06.09.2013, 19:50     Нужно ли документировать проект? #1
Всем доброго вечера.
Паттерны проектирования и Совершенный Код читать пока не планирую (так как начинающий), но некоторые вопросы узнать бы хотелось.
Я решил написать одно приложение, чтобы потренироваться, а впоследствии и опубликовать его под GPL-лицензией. Сначала все шло нормально, но сейчас количество кода превысило 1800 строк и ориентироваться в объектах и переменных стало крайне затруднительно. Стараюсь писать аккуратно и красиво, но периодически всё равно приходится делать глобальный рефакторинг, и это очень долго.

Нужно вообще, или полезно сделать какую нибудь систему именования переменных, или как запомнить все невидимые элементы GUI ? (Например менеджеры компоновки, невидимые распорки...да и вообще) Чертить схему на бумажке что-ли? Как с этим справляются проф. разработчики?
пишу на Qt.
Можете дать какие-нибудь советы? Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 19:50     Нужно ли документировать проект?
Посмотрите здесь:

В центре экрана нужно нарисовать квадрат. А в нем еще 8 В целом должно получиться 9 квадратов. И нужно их покрасить в 3 разные цвета C++
C++ Нужно написать програму в которой нужно определить суму двух 2D масивов
даны 2 последовательности в файлах, в двух разных, нужно их обьединить и отсортировать по возрастанию. Но нужно сделать прогу с помошью указателей C++
C++ Нужно сделать что бы давало рандомно числа и нужно написать ответ
Нужно сделать задание по c++! Через 3 часа нужно сдать! C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
06.09.2013, 19:54     Нужно ли документировать проект? #2
А Doxygen для кого придумали?
Не замечали, что комментарии в опен соурс проектах подозрительно похожи по оформлению?
Убежденный
Системный программист
 Аватар для Убежденный
14219 / 6234 / 988
Регистрация: 02.05.2013
Сообщений: 10,391
Завершенные тесты: 1
06.09.2013, 20:01     Нужно ли документировать проект? #3
Цитата Сообщение от gromo Посмотреть сообщение
Паттерны проектирования и Совершенный Код читать пока не планирую
Зря. Очень зря.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
06.09.2013, 20:14  [ТС]     Нужно ли документировать проект? #4
Цитата Сообщение от XRuZzz Посмотреть сообщение
А Doxygen для кого придумали?
Я считал, что доксиген используют при создании библиотек в основном, для того чтобы другие разработчики, использующие её, разобрались. Поправьте меня, пожалуйста, если не так.
Цитата Сообщение от Убежденный Посмотреть сообщение
Паттерны проектирования и Совершенный Код читать пока не планирую
Зря. Очень зря.
Я их когда-нибудь, конечно же, все равно начну. Но сейчас литературы и так много: с++ 1200 стр, книга по qt Ж.Бланшета + многочисленные доки. Я думаю, что больше одновременно я не осилю. Или как вы считете? Может стоит и их читать вдобавок?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
06.09.2013, 22:43     Нужно ли документировать проект? #5
Цитата Сообщение от gromo Посмотреть сообщение
Я считал, что доксиген используют при создании библиотек в основном, для того чтобы другие разработчики, использующие её, разобрались. Поправьте меня, пожалуйста, если не так.
нигде ещё такой мысли не встречал, но я объязательно о ней подумаю... позже...

я хотел дать вам ссылку на сайт doxygen, но веселые ребята из ростелекома...
цитата из wiki - Doxygen
Блокировка сайта

Провайдер Ростелеком заблокировал для своих абонентов сайт doxygen.org.[1][2]


Добавлено через 2 минуты
Цитата Сообщение от gromo Посмотреть сообщение
Или как вы считете? Может стоит и их читать вдобавок?
ну это не фундаментальные книги(как и книги по C++), поэтому пропускать их не критично. но прослитать, знать что вы потеряете при этом, было бы неплохо. Я лично не читал.

Добавлено через 6 минут
советую скачать страустраупа на торрентах по С++11, пока торенты не позакрывали
в ближайшие 10 лет книга будет актуальна
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
06.09.2013, 22:57  [ТС]     Нужно ли документировать проект? #6
XRuZzz, да, я слышал про блокировку сайта доксигена
Я их пролистывал, очень любопытные мысли там есть, но все же они слишком не фундаментальные для меня еще)
Что же, буду доксигенить над проектом, потому что голова уже кругом Спасибо!
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
06.09.2013, 23:23     Нужно ли документировать проект? #7
doxygen-ить это нужно для командной разработки, просто идея в том, чтоб сразу писать нормальные комментарии из которых можно создавать доку. То есть даже можно не устанавливать doxygen, главное писать нормальные комментарии(которые поддерживают генерацию документации). Это как бы ваша культура программирования.

Добавлено через 6 минут
Фаулер кстати разносторонняя личность, все его книги полезны(да и не только книги). Я боюсь что на изучение одного Фаулера у вас уйдёт очень много времени. При этом желательно изучать ангоязычные издания. Потому что он генерует умные мысли быстрее, чем переводят его книги )

GUI кстати - это не функциональные требования. У того же Фаулера есть книга по UML. Есть хорошая русская книга Дениса Иванова. Нужно рисовать диаграммы UML(ну и других нотаций типа BPMN).
Если нарисуете диаграмму классов вы реально увидите косяки в архитектуре(сразу начнёте читать про паттерны проектирования ), нарисуете другую диаграмму - увидите больше. Тока их долго рисовать.
Есть проф. пакеты для проектирования ПО там можно рисовать и диаграммы и пользовательский интерфейс. Но я интерфейсы редко рисую, и стараюсь их особо не обсуждать. Когда требования описаны достаточно полно, интерфейс становится очевидным.

Почему не рисую? - По Коберну

Добавлено через 3 минуты
итог такой - дока должна генерироваться из проектных файлов(это абсолютно реально), иначе замучаетесь с поддержкой.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
06.09.2013, 23:27     Нужно ли документировать проект? #8
Цитата Сообщение от XRuZzz Посмотреть сообщение
итог такой - дока должна генерироваться из проектных файлов(это абсолютно реально), иначе замучаетесь с поддержкой.
Комментарии тоже можно не обновлять.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
06.09.2013, 23:32     Нужно ли документировать проект? #9
так и быть приведу список серьёзный пакетов для сбора требований и проектирования
EA Sparx Architect
3SL Candle - новый пакет, делают земляки из Петербурга, особо пока не смотрел
Visual Paradigm - китайцы жгут...

он конечно не полный, но отфильтрованный.

сайт github помоему тоже обладает возможностями для ведения доки - тоже особо с ним не разбирался.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 00:58  [ТС]     Нужно ли документировать проект? #10
Цитата Сообщение от XRuZzz Посмотреть сообщение
итог такой - дока должна генерироваться из проектных файлов(это абсолютно реально), иначе замучаетесь с поддержкой.
А это можно как-то реализовать в Qt Creator? Под проектным файлом вы подразумеваете .pro файл?
Я вот поюзал Doxygen - он генерирует доку для окрытых и защищенных интерфейсов только (или я не разобрался просто?). Если так, то я выше предполагал, что он для библиотек годится только. Это мне тоже, конечно, полезно будет, но хотелось бы организовать систему контроля за именами объектов, private интерфейсами.

Цитата Сообщение от XRuZzz Посмотреть сообщение
можно не устанавливать doxygen, главное писать нормальные комментарии(которые поддерживают генерацию документации)
Что вы имеете в виду? Как комментарии могут поддерживать документирование?

Цитата Сообщение от XRuZzz Посмотреть сообщение
Если нарисуете диаграмму классов вы реально увидите косяки в архитектуре
doxygen, насколько я понял, поддерживает рисовку диаграмм (пока не пробовал) при помощи пакета graphViz.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
07.09.2013, 01:31     Нужно ли документировать проект? #11
Цитата Сообщение от gromo Посмотреть сообщение
А это можно как-то реализовать в Qt Creator? Под проектным файлом вы подразумеваете .pro
да я тут не очень понятно выразился, я имел ввиду, любые комментарии в исходниках, любую исходную информацию о проекте, которую можно использовать в доке, а также различные файлы с моделированием работы ПО
Цитата Сообщение от gromo Посмотреть сообщение
Это мне тоже, конечно, полезно будет, но хотелось бы организовать систему контроля за именами объектов, private интерфейсами.
лано уговорили, попробую вникнуть в ваши слова. От кого вы услышали про контроль за именами объектов? покажите какой нить пример.

Добавлено через 3 минуты
кажется начинаю догадываться, у вас что в проекте есть глобальные объекты и переменные?
ну ка покажите ка нам ваш файл с main функцией
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 02:42  [ТС]     Нужно ли документировать проект? #12
Цитата Сообщение от XRuZzz Посмотреть сообщение
От кого вы услышали про контроль за именами объектов?
Ну вообще-то сам придумал Подумал, что когда переменных доходит до 1 000 000 то какой-то общий шаблон учета должен бы существовать. Ну раз нет...
Цитата Сообщение от XRuZzz Посмотреть сообщение
кажется начинаю догадываться, у вас что в проекте есть глобальные объекты и переменные?
Нет! Пока ни одной, слава богам

main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "mainwindow.h"
#include "personal_data.h"
#include <QTextCodec>
//#include <QDebug>
 
int main(int argc, char *argv[])
{
    QTextCodec *utfcodec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(utfcodec);
    QTextCodec::setCodecForCStrings(utfcodec);
 
    QCoreApplication::setOrganizationName(personal::organizationName);
    QCoreApplication::setApplicationName(personal::appName);
 
    QApplication app(argc, argv);
    MainWindow baseConvWindow;
    baseConvWindow.show();
 
    return app.exec();
}
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2013, 02:57     Нужно ли документировать проект? #13
Цитата Сообщение от gromo Посмотреть сообщение
А это можно как-то реализовать в Qt Creator?
Да, можно. Но несколько геморройно. Ман здесь.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 11:45  [ТС]     Нужно ли документировать проект? #14
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Да, можно. Но несколько геморройно. Ман здесь.
Там, насколько я понял, говорится об интеграции документации Ogre в Qt Creator. Мне же нужно сделать свою документацию своего проекта
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2013, 12:04     Нужно ли документировать проект? #15
Ну, лол, вместо документации Ogre подставляете свою и... вуаля. (Писать её, правда, придётся самостоятельно. Неудобно, да )
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 12:24  [ТС]     Нужно ли документировать проект? #16
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Ну, лол, вместо документации Ogre подставляете свою и... вуаля. (Писать её, правда, придётся самостоятельно. Неудобно, да )
Ну почитать ее я и в браузере могу, интеграция в IDE не нужна. Вот только смущает то, что на windows версии qt Creator есть динамическая справка по классам Qt, а в linux версии нету. СТраноо
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
07.09.2013, 12:36     Нужно ли документировать проект? #17
Цитата Сообщение от gromo Посмотреть сообщение
Ну вообще-то сам придумал Подумал, что когда переменных доходит до 1 000 000 то какой-то общий шаблон учета должен бы существовать. Ну раз нет...
собственно Макконел как раз об этом и пишет в книге "Совершенный Код".

Есть такое чудо как венгерская нотация. По началу я использовал элементы венгерской нотации, но со временем осознал бесполезность суффиксов и префиксов. От этого у меня осталось тока приставка "p" для указателей.

названия переменных и объектов просто должны быть осмысленными и не включать в себя неодназначные сокращения.

походу тут речь идёт о документе, который описывает стиль программирования, у меня есть свой такой документ. Если будет не лень то скину вам его.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 13:12  [ТС]     Нужно ли документировать проект? #18
Цитата Сообщение от XRuZzz Посмотреть сообщение
собственно Макконел как раз об этом и пишет в книге "Совершенный Код".
Правда? Не знал, серьезно.
Цитата Сообщение от XRuZzz Посмотреть сообщение
Есть такое чудо как венгерская нотация
Не знал, что это так называется но тоже использую часто.
Цитата Сообщение от XRuZzz Посмотреть сообщение
походу тут речь идёт о документе, который описывает стиль программирования, у меня есть свой такой документ. Если будет не лень то скину вам его.
Да да да! Речь о таком документе (не знал просто как он называется). Скиньте, пожалуйста, по возможности.
Такие документы вообще пишут в энтерпрайзе (как они тогда там называются?) ? Или это для личных проектов, для удобства?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
07.09.2013, 13:16     Нужно ли документировать проект? #19
Цитата Сообщение от gromo Посмотреть сообщение
Да да да! Речь о таком документе (не знал просто как он называется). Скиньте, пожалуйста, по возможности.
Такие документы вообще пишут в энтерпрайзе (как они тогда там называются?) ? Или это для личных проектов, для удобства?
лично я писал в фирме, согласовывая с более опытным товарищем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2013, 13:16     Нужно ли документировать проект?
Еще ссылки по теме:

Нужно ввести текст, если он больше 80 символов нужно чтоб он переходил на новую строку C++
C++ Как скопировать проект в другой проект для дальнейшей работы над новой версией (VS)?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
07.09.2013, 13:16     Нужно ли документировать проект? #20
Цитата Сообщение от gromo Посмотреть сообщение
Или это для личных проектов, для удобства?
Смысл писать какие-либо гайдлайны, если над проектом один человек работает?
Yandex
Объявления
07.09.2013, 13:16     Нужно ли документировать проект?
Ответ Создать тему
Опции темы

Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru