Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
1

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

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

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

Какую литературу на эту тему прочитать? Что посоветуете?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 18:41
Ответы с готовыми решениями:

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

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

Проектирование радиопередатчиков. Литература, советы.
В качестве дополнительной работы к своей диссертации решил вот проработать вопрос о передаче данных...

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

23
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
19.06.2015, 20:12 2
Самое главное не делайте глобальных переменных. Моя вот программа когда перевалила с 20к строк, стало ясно что нада делать тучу cpp файликов, а не один большой. Просто из за того что время компиляции и сборки будет огромным, а исправлять порой приходится просто пару строчек..
Ещё по пройденным граблям - если будет с 20 winapi окон, то не меняйте названия переменных в них (а лучше вообще делайте их массивами, типа lc[5][20] (local char), на копипасте сэкономите кучу времени.
Вообще конешно ещё лучше создать собственную платформу(типа с интерпритатором) для создания программ, но до этого надо дорасти))
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
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
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.06.2015, 02:44 4
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
коду надо будет очень сильно постараться чтобы дорасти до 20 тыщ строк
Сам по себе он не растёт, он пишется руками ну и какие то части (как например основа для winproc для WinApi копируется, так как оказывается проще, т.к. если уж хорошо делать, то обработка каждого окна слишком сложна). Я просто из своего опыта сказал, что я вот с такой проблемой столкнулся... работал 2 года над программой. (ну так, не спеша, за частую ещё и опимизируя частично, всё же размер не уменьшился) Про индусов даже начинать не буду, троллинг за ранее чую, нн раздувать.

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

Добавлено через 48 секунд
Цитата Сообщение от Izual Посмотреть сообщение
пишу платформу
Что понимается под словом платформа?
1
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
20.06.2015, 11:41 6
Цитата Сообщение от Lovc Посмотреть сообщение
Какую литературу на эту тему прочитать? Что посоветуете?
Для начала книгу Макконнелла "Совершенный код"
2
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.06.2015, 13:08 7
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Хорошо читабельным считается код который читается без комментариев
Так я понял, вам нехватает догматичного взгляда и стиля общения Hoggy?.. Ну так идите и с ним в таком русле и разговаривайте. Мне же все эти ваши шаблоны - просто по барабану.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
в начале создается абстрагированное двигло
Ещё раз читай мой предыдущий пост, или 7 раз читай, или пока не дойдёт... Я смотрю ты учитель йода видиш как начальство заказывает построение программы в начале, и как всё оборачивается через год и два..
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При правильном проектировании
Все вопросы заказчикам.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Что понимается под словом платформа?
Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь. (больше сказать не могу, т.к. и говорить нечего, платформа - она и в африке платформа)
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
20.06.2015, 13:25 8
Цитата Сообщение от Izual Посмотреть сообщение
Все вопросы заказчикам.
Проектирует софт не заказчик а исполнитель. Читаем раздел "математическая постановка задачи"

Добавлено через 9 минут
Цитата Сообщение от Izual Посмотреть сообщение
Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь.
Та я тебе просто подсказать пытаюсь. Просто не совсем понятно что имеешь в виду под платформой. Есть такой к примеру термин - "платформер" - т.е. что то из серии 2D игр т.е. действия происходят на "платформе" -это из этой серии?
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.06.2015, 15:17 9
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Проектирует софт не заказчик а исполнитель.
Ну что опять телекинезис?.. Я тебе говорю что ёпт в начале был один перечень задач, а потом он стал расти после выполнения первых.
На второе даже отвечать не буду, тот кто не хочет слышать - не услышит хоть 200 раз ему скажи. И это только подтверждается первым вопросом, на который ты сам так телекинетически ответил.
0
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
21.06.2015, 18:49  [ТС] 10
Fulcrum_013, хочу написать LMS.
https://ru.wikipedia.org/wiki/... 0%B5%D0%BC
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
21.06.2015, 18:57 11
Цитата Сообщение от Lovc Посмотреть сообщение
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.
Я так подозреваю что для такой задачи вы ошиблись разделом как минимум на 50-70%. В такой задаче огромная часть будет On-Line соответсвенно для нее будут удобны серверные скрипт-языки и JavaScript. Хотя не исключено что какая то часть АРМ в интранете вуза будет на С++. Для начала рекомендовал бы ознакомится с подобным решением из комплекта 1С-Bitrix.
0
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
21.06.2015, 19:02  [ТС] 12
Fulcrum_013, Я собрался писать на Python, но меня интересует проектирование, а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
21.06.2015, 19:16 13
Цитата Сообщение от Lovc Посмотреть сообщение
а так как на C++ пишется много больших программ, то и людей, которые предложат правильные книги, будет больше.
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
0
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
21.06.2015, 19:35  [ТС] 14
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
21.06.2015, 19:36 15
Lovc, вы собираетесь на проэктирование месяц+ чтоль выбросить? - с таким тэмпом вы ничего не сделаете вообще.
Ньюансы работы будут отталкиваться от языка на котором вы собрались писать. Всё остальное - не так то уж и значимо. На грабли вы без опыта всё равно наступите, лучше просто начните делать, там дальше - по мере роста знаний и опыта сами будете оптимизировать код. Единственное на чём я бы заострил внимание я уже написал вам в 1 моём посте.
Дорогу осилит идущий.
2
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
21.06.2015, 20:39 16
Цитата Сообщение от Lovc Посмотреть сообщение
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
Начните с того что возьмите бааальшой лист ватмана и сделайте диаграмму HIPO т.е. такие квадратики где что на каком компе вводится, каким куда выводится/записывается и как примерно обрабатывается. Ну если способны удержать эту схему в голове и проектировать и реализовывать будете один или с максимум еще одним-двумя гениями-телепатами (при большем количестве разработчиков обычно "телепатия" так не срабатывает) то можно и без бумаги, то бишь в голове, но скорее всего придется таки на бумаге. Особенно если нет опыта проектирования подобных систем. Оно просто из простыни путем абстрагирования сворачивается в достаточно небольшой движок в конечном итоге.
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
21.06.2015, 22:03 17
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
придется таки на бумаге
Таки ты сказал всё же что то дельное)) И в точку кстати данной темы. Именно бумага, карандаш и воображение - главные инструменты программиста!
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
21.06.2015, 23:55 18
Цитата Сообщение от Izual Посмотреть сообщение
Именно бумага, карандаш и воображение - главные инструменты программиста!
Сейчас кстати есть средства позволяющие делать это на экране. И ладно бы если просто черчение, они потом еще и заголовки классов создают и места под функции только код вписывай. другое дело что дойти до таких мелких деталей как описание кажого класса это в большом проекте целяком малореально. Я как бы с головы да ручками пока что, хотя была бы толковая система создания иерархий... может и пользовал бы. А пока что и борландовский и мелкомягкий редакторы классов слишком сырые и неудобные, да и без мысленного ввода это мало времени экономит. Хоть бы сенсорный интерфейс был, уже бы можно было использовать. А от него до мысленного ввода пол шага.

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

Добавлено через 1 час 36 минут
Цитата Сообщение от Izual Посмотреть сообщение
вы собираетесь на проэктирование месяц+ чтоль выбросить? - с таким тэмпом вы ничего не сделаете вообще.
А вы собираетесь квартал-другой потратить на написание кода, потом год-другой на рефакторинг, потом выбросить все и на месяц засесть за аналитику и проектирование?
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
22.06.2015, 01:15 19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А вы собираетесь квартал-другой потратить на написание кода, потом год-другой на рефакторинг, потом выбросить все и на месяц засесть за аналитику и проектирование?
Если программа будет работать, то лучше именно сначало сделать криво, чем засесть на месяц изучения аналитики, от которой толку не будет, т.к. сам язык не освоен. А речь именно об этом.
В общем ты мне порядком надоел, и твои телекинетические способности, которые кстати не работают, размером галстука меряются в другом месте, а выкабенивать из себя великого гуру, что ты и делаеш - у тебя всё равно не получится. На улице про таких сначала шёпотом говорят, потом в компаниях за спиной. Почему - потому что и так видно что за человек перед тобой, к чему эти все понты и паказуха в стиле "а я такое знаю, чего ты не знаеш".. Видимо не все закончив детский "сад вырастают из него мозгом". Больше я отвечать на твои комменты не буду, а то это попахивает провокацией.
0
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
22.06.2015, 15:04 20
Цитата Сообщение от Izual Посмотреть сообщение
т.к. сам язык не освоен
Так сначала тогда язык осваивайте а потом огромные системы проектируйте. проще будет. и быстрее
0
22.06.2015, 15:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2015, 15:04
Помогаю со студенческими работами здесь

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

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

Нужна литература в которой описаны именно классы и методы работы с операционной системой
Может кто нибудь посоветовать литературу в которой описаны именно классы и методы работы с...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru