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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
#1

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

06.09.2013, 19:50. Просмотров 1336. Ответов 33
Метки нет (Все метки)

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

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

Нужно добавить проект на гугл-диск, как сделать так, чтобы запускалась сразу консоль, одним файлом? - C++
Нужно добавить проект на гугл-диск, как сделать так, чтобы запускалась сразу консоль, одним файлом?

Как скопировать проект в другой проект для дальнейшей работы над новой версией (VS)? - C++
(Visual Studio 2013) Например я сделал один проект, пусть это будет проект версия №1, затем я захотел улучшить проект версии №1 и сделать...

Как правильно документировать программу? - C# ASP.NET
Подскажите всё что касается сабжа. Сыылки и проч. Спасиба заранее.

Как документировать пространство имен - C#
namespace Person { /// <summary> /// Здесь создается объект Person /// </summary> class Person { ...

Как документировать код в пользовательской DLL - C#
Задался вопросом, вот многие пишут библиотеки, и когда я их подключаю в среде VS например создаю объект А. После А. ставлю точку и...

Нужно компилнуть проект - C++ Qt
Здравствуйте Есть проект созданный с помощью QT, я не программист, пробоавл разобраться не получаеться вылезала ошибука номер 2 потом...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
XRuZzz
Антикодер
676 / 577 / 28
Регистрация: 15.09.2012
Сообщений: 2,523
06.09.2013, 19:54 #2
А Doxygen для кого придумали?
Не замечали, что комментарии в опен соурс проектах подозрительно похожи по оформлению?
0
Убежденный
Системный программист
Эксперт С++
15553 / 7061 / 1114
Регистрация: 02.05.2013
Сообщений: 11,469
Завершенные тесты: 1
06.09.2013, 20:01 #3
Цитата Сообщение от gromo Посмотреть сообщение
Паттерны проектирования и Совершенный Код читать пока не планирую
Зря. Очень зря.
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
06.09.2013, 20:14  [ТС] #4
Цитата Сообщение от XRuZzz Посмотреть сообщение
А Doxygen для кого придумали?
Я считал, что доксиген используют при создании библиотек в основном, для того чтобы другие разработчики, использующие её, разобрались. Поправьте меня, пожалуйста, если не так.
Цитата Сообщение от Убежденный Посмотреть сообщение
Паттерны проектирования и Совершенный Код читать пока не планирую
Зря. Очень зря.
Я их когда-нибудь, конечно же, все равно начну. Но сейчас литературы и так много: с++ 1200 стр, книга по qt Ж.Бланшета + многочисленные доки. Я думаю, что больше одновременно я не осилю. Или как вы считете? Может стоит и их читать вдобавок?
0
XRuZzz
Антикодер
676 / 577 / 28
Регистрация: 15.09.2012
Сообщений: 2,523
06.09.2013, 22:43 #5
Цитата Сообщение от gromo Посмотреть сообщение
Я считал, что доксиген используют при создании библиотек в основном, для того чтобы другие разработчики, использующие её, разобрались. Поправьте меня, пожалуйста, если не так.
нигде ещё такой мысли не встречал, но я объязательно о ней подумаю... позже...

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

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


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

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

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

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

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

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

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

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

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

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

Добавлено через 3 минуты
кажется начинаю догадываться, у вас что в проекте есть глобальные объекты и переменные?
ну ка покажите ка нам ваш файл с main функцией
0
gromo
370 / 269 / 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();
}
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2013, 02:57 #13
Цитата Сообщение от gromo Посмотреть сообщение
А это можно как-то реализовать в Qt Creator?
Да, можно. Но несколько геморройно. Ман здесь.
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.09.2013, 11:45  [ТС] #14
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Да, можно. Но несколько геморройно. Ман здесь.
Там, насколько я понял, говорится об интеграции документации Ogre в Qt Creator. Мне же нужно сделать свою документацию своего проекта
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2013, 12:04 #15
Ну, лол, вместо документации Ogre подставляете свою и... вуаля. (Писать её, правда, придётся самостоятельно. Неудобно, да )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2013, 12:04
Привет! Вот еще темы с ответами:

Нужно собрать проект - C++ WinAPI
есть наработки кода, нужна помощь в собрании из них проекта

Нужно откомментировать проект - Delphi
Есть проект на подобии 2048, только с тройками. Не понимаю некоторую часть кода. Можете ли прокомментировать проект, чем больше тем лучше....

нужно доработать проект пятнашки( - Delphi
есть косяк с кнопкой назад когда заходиш в справку...и не могу вместо кнопок поставить картинки которые намутил(как можно сюда проект...

Нужно открыть проект на руби - Ruby on Rails
Нужно открыть проект на руби, пишет следующую ошибку при открытии(rails s) run bundle install to install missing gems Пошаманил со...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.09.2013, 12:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru