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

C++

Войти
Регистрация
Восстановить пароль
 
 
Lovc
36 / 36 / 3
Регистрация: 19.06.2015
Сообщений: 76
#1

Проектирование программы: методы и литература по теме - C++

19.06.2015, 18:41. Просмотров 1100. Ответов 23
Метки нет (Все метки)

Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.

Какую литературу на эту тему прочитать? Что посоветуете?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проектирование программы: методы и литература по теме (C++):

Где найти материал по теме само переписывающиеся программы? - C++
Где найти материал по теме само переписывающиеся программы?

Проектирование программного обеспечения (литература) - C++
Добрый день. Есть у кого-то ссылки на статьи или небольшую книгу по проектированию? uml не предлагать :). Мне нужно не средство, а сами...

Литература по теме Отладки программ - C++
Привет всем. Кто-нибуть встречал литературу на тему отладки. Типа как это реализуеться в больших программах. Лутшие решения отладки. и...

Проектирование программы - C++
Здравствуйте! Подскажите пожалуйста, какими средствами эффективнее проектировать и рекодить программу? Тема стала актуальна с...

Проектирование ООП программы - C++
Привет, начал писать большие программы, без планирования, в итоге , приходится переписывать по 100 раз, что посоветуете, как правильно...

Проектирование Базы Данных - литература - Базы данных
Подскажите что почитать по проектированию БД. Также использование внешних ключей. Буду очень благодарен!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
19.06.2015, 20:12 #2
Самое главное не делайте глобальных переменных. Моя вот программа когда перевалила с 20к строк, стало ясно что нада делать тучу cpp файликов, а не один большой. Просто из за того что время компиляции и сборки будет огромным, а исправлять порой приходится просто пару строчек..
Ещё по пройденным граблям - если будет с 20 winapi окон, то не меняйте названия переменных в них (а лучше вообще делайте их массивами, типа lc[5][20] (local char), на копипасте сэкономите кучу времени.
Вообще конешно ещё лучше создать собственную платформу(типа с интерпритатором) для создания программ, но до этого надо дорасти))
0
Fulcrum_013
721 / 746 / 73
Регистрация: 14.12.2014
Сообщений: 5,870
Завершенные тесты: 3
19.06.2015, 21:29 #3
Цитата Сообщение от Lovc Посмотреть сообщение
обираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.
Зависит от многих факторов. Даже например от тематики программы и типа интерфейса. К примеру САПР удобнее проектировать по одному, программу работы с СУБД по другому, игры по третьему, ну а управляющий софт - это вообще отдельная песня.
Цитата Сообщение от Izual Посмотреть сообщение
а лучше вообще делайте их массивами, типа lc[5][20] (local char), на копипасте сэкономите кучу времени
А если включить мозги то копипаст будет делать компилятор, и коду надо будет очень сильно постараться чтобы дорасти до 20 тыщ строк. А то можно уподобится индусам которые слепили метод в 75,000 строк.

Добавлено через 1 минуту
Цитата Сообщение от Izual Посмотреть сообщение
типа lc[5][20] (local char)
интересно, а вы через 2 недели сами то вспомните назначение этого массива?
0
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
20.06.2015, 02:44 #4
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
коду надо будет очень сильно постараться чтобы дорасти до 20 тыщ строк
Сам по себе он не растёт, он пишется руками ну и какие то части (как например основа для winproc для WinApi копируется, так как оказывается проще, т.к. если уж хорошо делать, то обработка каждого окна слишком сложна). Я просто из своего опыта сказал, что я вот с такой проблемой столкнулся... работал 2 года над программой. (ну так, не спеша, за частую ещё и опимизируя частично, всё же размер не уменьшился) Про индусов даже начинать не буду, троллинг за ранее чую, нн раздувать.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
через 2 недели сами то вспомните назначение этого массива
Да, пишу платформу, потому большинство переменных не только таким образом в массивах, а даже больше, трёх мерные указатели, а в нутри могут быть ещё Н-меры. Никто не отменял знаки /* */ в которых можно хоть 1000 строк описания помещять..
0
Fulcrum_013
721 / 746 / 73
Регистрация: 14.12.2014
Сообщений: 5,870
Завершенные тесты: 3
20.06.2015, 02:51 #5
Цитата Сообщение от Izual Посмотреть сообщение
Никто не отменял знаки /* */ в которых можно хоть 1000 строк описания помещять..
Хорошо читабельным считается код который читается без комментариев.[/quote]
Цитата Сообщение от Izual Посмотреть сообщение
Сам по себе он не растёт, он пишется руками ну и какие то части (как например основа для winproc для WinApi копируется, так как оказывается проще, т.к. если уж хорошо делать, то обработка каждого окна слишком сложна).
При правильном проектировании код растет при создании "кирпичиков". Потом количество кода необходимого для доделывания той или иной фичи резко падает. Т.е. в начале создается абстрагированное двигло которое и есть основной по объему код. А добавление конкретики в результате занимает очень мало кода.

Добавлено через 48 секунд
Цитата Сообщение от Izual Посмотреть сообщение
пишу платформу
Что понимается под словом платформа?
1
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
20.06.2015, 11:41 #6
Цитата Сообщение от Lovc Посмотреть сообщение
Какую литературу на эту тему прочитать? Что посоветуете?
Для начала книгу Макконнелла "Совершенный код"
2
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
20.06.2015, 13:08 #7
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Хорошо читабельным считается код который читается без комментариев
Так я понял, вам нехватает догматичного взгляда и стиля общения Hoggy?.. Ну так идите и с ним в таком русле и разговаривайте. Мне же все эти ваши шаблоны - просто по барабану.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
в начале создается абстрагированное двигло
Ещё раз читай мой предыдущий пост, или 7 раз читай, или пока не дойдёт... Я смотрю ты учитель йода видиш как начальство заказывает построение программы в начале, и как всё оборачивается через год и два..
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При правильном проектировании
Все вопросы заказчикам.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Что понимается под словом платформа?
Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь. (больше сказать не могу, т.к. и говорить нечего, платформа - она и в африке платформа)
0
Fulcrum_013
721 / 746 / 73
Регистрация: 14.12.2014
Сообщений: 5,870
Завершенные тесты: 3
20.06.2015, 13:25 #8
Цитата Сообщение от Izual Посмотреть сообщение
Все вопросы заказчикам.
Проектирует софт не заказчик а исполнитель. Читаем раздел "математическая постановка задачи"

Добавлено через 9 минут
Цитата Сообщение от Izual Посмотреть сообщение
Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь.
Та я тебе просто подсказать пытаюсь. Просто не совсем понятно что имеешь в виду под платформой. Есть такой к примеру термин - "платформер" - т.е. что то из серии 2D игр т.е. действия происходят на "платформе" -это из этой серии?
0
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
20.06.2015, 15:17 #9
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Проектирует софт не заказчик а исполнитель.
Ну что опять телекинезис?.. Я тебе говорю что ёпт в начале был один перечень задач, а потом он стал расти после выполнения первых.
На второе даже отвечать не буду, тот кто не хочет слышать - не услышит хоть 200 раз ему скажи. И это только подтверждается первым вопросом, на который ты сам так телекинетически ответил.
0
Lovc
36 / 36 / 3
Регистрация: 19.06.2015
Сообщений: 76
21.06.2015, 18:49  [ТС] #10
Fulcrum_013, хочу написать LMS.
https://ru.wikipedia.org/wiki/%D0%A1...B8%D0%B5%D0%BC
0
Fulcrum_013
721 / 746 / 73
Регистрация: 14.12.2014
Сообщений: 5,870
Завершенные тесты: 3
21.06.2015, 18:57 #11
Цитата Сообщение от Lovc Посмотреть сообщение
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.
Я так подозреваю что для такой задачи вы ошиблись разделом как минимум на 50-70%. В такой задаче огромная часть будет On-Line соответсвенно для нее будут удобны серверные скрипт-языки и JavaScript. Хотя не исключено что какая то часть АРМ в интранете вуза будет на С++. Для начала рекомендовал бы ознакомится с подобным решением из комплекта 1С-Bitrix.
0
Lovc
36 / 36 / 3
Регистрация: 19.06.2015
Сообщений: 76
21.06.2015, 19:02  [ТС] #12
Fulcrum_013, Я собрался писать на Python, но меня интересует проектирование, а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
0
Fulcrum_013
721 / 746 / 73
Регистрация: 14.12.2014
Сообщений: 5,870
Завершенные тесты: 3
21.06.2015, 19:16 #13
Цитата Сообщение от Lovc Посмотреть сообщение
а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
0
Lovc
36 / 36 / 3
Регистрация: 19.06.2015
Сообщений: 76
21.06.2015, 19:35  [ТС] #14
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
0
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
21.06.2015, 19:36 #15
Lovc, вы собираетесь на проэктирование месяц+ чтоль выбросить? - с таким тэмпом вы ничего не сделаете вообще.
Ньюансы работы будут отталкиваться от языка на котором вы собрались писать. Всё остальное - не так то уж и значимо. На грабли вы без опыта всё равно наступите, лучше просто начните делать, там дальше - по мере роста знаний и опыта сами будете оптимизировать код. Единственное на чём я бы заострил внимание я уже написал вам в 1 моём посте.
Дорогу осилит идущий.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 19:36
Привет! Вот еще темы с ответами:

Определения по теме Погрешности и методы решения СЛАУ - Численные методы
Добрый день. 1. Подскажите пожалуйста литературу для понимания Матриц. Вчера проходили методы: Крамера, Гаусса, Холецкого, Квадратного...

Литература по теме: "Многоуровненвая архитектура приложения" - C#
Здравствуйте! Посоветуйте какой-нибудь информационный источник(книги, сайты, видеоуроки), где можно будет почитать про многоуровневую...

Нужна литература в которой описаны именно классы и методы работы с операционной системой - C#
Может кто нибудь посоветовать литературу в которой описаны именно классы и методы работы с операционной системой? P.S. Так же...

Нужна литература по теме "Списки" - Turbo Pascal
Скиньте кто нибудь ссылку где можно найти тему: "Списки в Turbo Pascal", pliz!


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

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

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