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

C++

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

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

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

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

Какую литературу на эту тему прочитать? Что посоветуете?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 18:41     Проектирование программы: методы и литература по теме
Посмотрите здесь:
Проектирование программного обеспечения (литература) C++
Литература по теме Отладки программ C++
C++ Проектирование программы
C++ Литература по теме "C++ и Сети"
Проектирование ООП программы C++
C++ Где найти материал по теме само переписывающиеся программы?
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
19.06.2015, 20:12     Проектирование программы: методы и литература по теме #2
Самое главное не делайте глобальных переменных. Моя вот программа когда перевалила с 20к строк, стало ясно что нада делать тучу cpp файликов, а не один большой. Просто из за того что время компиляции и сборки будет огромным, а исправлять порой приходится просто пару строчек..
Ещё по пройденным граблям - если будет с 20 winapi окон, то не меняйте названия переменных в них (а лучше вообще делайте их массивами, типа lc[5][20] (local char), на копипасте сэкономите кучу времени.
Вообще конешно ещё лучше создать собственную платформу(типа с интерпритатором) для создания программ, но до этого надо дорасти))
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 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 недели сами то вспомните назначение этого массива?
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
20.06.2015, 02:44     Проектирование программы: методы и литература по теме #4
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
коду надо будет очень сильно постараться чтобы дорасти до 20 тыщ строк
Сам по себе он не растёт, он пишется руками ну и какие то части (как например основа для winproc для WinApi копируется, так как оказывается проще, т.к. если уж хорошо делать, то обработка каждого окна слишком сложна). Я просто из своего опыта сказал, что я вот с такой проблемой столкнулся... работал 2 года над программой. (ну так, не спеша, за частую ещё и опимизируя частично, всё же размер не уменьшился) Про индусов даже начинать не буду, троллинг за ранее чую, нн раздувать.

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

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

Добавлено через 9 минут
Цитата Сообщение от Izual Посмотреть сообщение
Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь.
Та я тебе просто подсказать пытаюсь. Просто не совсем понятно что имеешь в виду под платформой. Есть такой к примеру термин - "платформер" - т.е. что то из серии 2D игр т.е. действия происходят на "платформе" -это из этой серии?
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
20.06.2015, 15:17     Проектирование программы: методы и литература по теме #9
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Проектирует софт не заказчик а исполнитель.
Ну что опять телекинезис?.. Я тебе говорю что ёпт в начале был один перечень задач, а потом он стал расти после выполнения первых.
На второе даже отвечать не буду, тот кто не хочет слышать - не услышит хоть 200 раз ему скажи. И это только подтверждается первым вопросом, на который ты сам так телекинетически ответил.
Lovc
25 / 25 / 1
Регистрация: 19.06.2015
Сообщений: 46
21.06.2015, 18:49  [ТС]     Проектирование программы: методы и литература по теме #10
Fulcrum_013, хочу написать LMS.
https://ru.wikipedia.org/wiki/%D0%A1...B8%D0%B5%D0%BC
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.06.2015, 18:57     Проектирование программы: методы и литература по теме #11
Цитата Сообщение от Lovc Посмотреть сообщение
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.
Я так подозреваю что для такой задачи вы ошиблись разделом как минимум на 50-70%. В такой задаче огромная часть будет On-Line соответсвенно для нее будут удобны серверные скрипт-языки и JavaScript. Хотя не исключено что какая то часть АРМ в интранете вуза будет на С++. Для начала рекомендовал бы ознакомится с подобным решением из комплекта 1С-Bitrix.
Lovc
25 / 25 / 1
Регистрация: 19.06.2015
Сообщений: 46
21.06.2015, 19:02  [ТС]     Проектирование программы: методы и литература по теме #12
Fulcrum_013, Я собрался писать на Python, но меня интересует проектирование, а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.06.2015, 19:16     Проектирование программы: методы и литература по теме #13
Цитата Сообщение от Lovc Посмотреть сообщение
а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
Lovc
25 / 25 / 1
Регистрация: 19.06.2015
Сообщений: 46
21.06.2015, 19:35  [ТС]     Проектирование программы: методы и литература по теме #14
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
21.06.2015, 19:36     Проектирование программы: методы и литература по теме #15
Lovc, вы собираетесь на проэктирование месяц+ чтоль выбросить? - с таким тэмпом вы ничего не сделаете вообще.
Ньюансы работы будут отталкиваться от языка на котором вы собрались писать. Всё остальное - не так то уж и значимо. На грабли вы без опыта всё равно наступите, лучше просто начните делать, там дальше - по мере роста знаний и опыта сами будете оптимизировать код. Единственное на чём я бы заострил внимание я уже написал вам в 1 моём посте.
Дорогу осилит идущий.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.06.2015, 20:39     Проектирование программы: методы и литература по теме #16
Цитата Сообщение от Lovc Посмотреть сообщение
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
Начните с того что возьмите бааальшой лист ватмана и сделайте диаграмму HIPO т.е. такие квадратики где что на каком компе вводится, каким куда выводится/записывается и как примерно обрабатывается. Ну если способны удержать эту схему в голове и проектировать и реализовывать будете один или с максимум еще одним-двумя гениями-телепатами (при большем количестве разработчиков обычно "телепатия" так не срабатывает) то можно и без бумаги, то бишь в голове, но скорее всего придется таки на бумаге. Особенно если нет опыта проектирования подобных систем. Оно просто из простыни путем абстрагирования сворачивается в достаточно небольшой движок в конечном итоге.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
21.06.2015, 22:03     Проектирование программы: методы и литература по теме #17
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
придется таки на бумаге
Таки ты сказал всё же что то дельное)) И в точку кстати данной темы. Именно бумага, карандаш и воображение - главные инструменты программиста!
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.06.2015, 23:55     Проектирование программы: методы и литература по теме #18
Цитата Сообщение от Izual Посмотреть сообщение
Именно бумага, карандаш и воображение - главные инструменты программиста!
Сейчас кстати есть средства позволяющие делать это на экране. И ладно бы если просто черчение, они потом еще и заголовки классов создают и места под функции только код вписывай. другое дело что дойти до таких мелких деталей как описание кажого класса это в большом проекте целяком малореально. Я как бы с головы да ручками пока что, хотя была бы толковая система создания иерархий... может и пользовал бы. А пока что и борландовский и мелкомягкий редакторы классов слишком сырые и неудобные, да и без мысленного ввода это мало времени экономит. Хоть бы сенсорный интерфейс был, уже бы можно было использовать. А от него до мысленного ввода пол шага.

Добавлено через 4 минуты
Цитата Сообщение от Izual Посмотреть сообщение
Именно бумага, карандаш и воображение - главные инструменты программиста!
Главный инструмент программиста - моск и аналитические способности.

Добавлено через 1 час 36 минут
Цитата Сообщение от Izual Посмотреть сообщение
вы собираетесь на проэктирование месяц+ чтоль выбросить? - с таким тэмпом вы ничего не сделаете вообще.
А вы собираетесь квартал-другой потратить на написание кода, потом год-другой на рефакторинг, потом выбросить все и на месяц засесть за аналитику и проектирование?
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.06.2015, 01:15     Проектирование программы: методы и литература по теме #19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А вы собираетесь квартал-другой потратить на написание кода, потом год-другой на рефакторинг, потом выбросить все и на месяц засесть за аналитику и проектирование?
Если программа будет работать, то лучше именно сначало сделать криво, чем засесть на месяц изучения аналитики, от которой толку не будет, т.к. сам язык не освоен. А речь именно об этом.
В общем ты мне порядком надоел, и твои телекинетические способности, которые кстати не работают, размером галстука меряются в другом месте, а выкабенивать из себя великого гуру, что ты и делаеш - у тебя всё равно не получится. На улице про таких сначала шёпотом говорят, потом в компаниях за спиной. Почему - потому что и так видно что за человек перед тобой, к чему эти все понты и паказуха в стиле "а я такое знаю, чего ты не знаеш".. Видимо не все закончив детский "сад вырастают из него мозгом". Больше я отвечать на твои комменты не буду, а то это попахивает провокацией.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2015, 15:04     Проектирование программы: методы и литература по теме
Еще ссылки по теме:
Проектирование класса C++
Проектирование классов C++
Проектирование классов на С++ Visual C++
C++ курсовое проектирование на с++
Проектирование ОО архитектуры C++

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

Или воспользуйтесь поиском по форуму:
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.06.2015, 15:04     Проектирование программы: методы и литература по теме #20
Цитата Сообщение от Izual Посмотреть сообщение
т.к. сам язык не освоен
Так сначала тогда язык осваивайте а потом огромные системы проектируйте. проще будет. и быстрее
Yandex
Объявления
22.06.2015, 15:04     Проектирование программы: методы и литература по теме
Ответ Создать тему
Опции темы

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