80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
|
|
1 | |
Проектирование программы: методы и литература по теме19.06.2015, 18:41. Показов 2530. Ответов 23
Метки нет (Все метки)
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу.
Какую литературу на эту тему прочитать? Что посоветуете?
0
|
19.06.2015, 18:41 | |
Ответы с готовыми решениями:
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 |
Зависит от многих факторов. Даже например от тематики программы и типа интерфейса. К примеру САПР удобнее проектировать по одному, программу работы с СУБД по другому, игры по третьему, ну а управляющий софт - это вообще отдельная песня.
А если включить мозги то копипаст будет делать компилятор, и коду надо будет очень сильно постараться чтобы дорасти до 20 тыщ строк. А то можно уподобится индусам которые слепили метод в 75,000 строк. Добавлено через 1 минуту интересно, а вы через 2 недели сами то вспомните назначение этого массива?
0
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
20.06.2015, 02:44 | 4 |
Сам по себе он не растёт, он пишется руками ну и какие то части (как например основа для winproc для WinApi копируется, так как оказывается проще, т.к. если уж хорошо делать, то обработка каждого окна слишком сложна). Я просто из своего опыта сказал, что я вот с такой проблемой столкнулся... работал 2 года над программой. (ну так, не спеша, за частую ещё и опимизируя частично, всё же размер не уменьшился) Про индусов даже начинать не буду, троллинг за ранее чую, нн раздувать.
Да, пишу платформу, потому большинство переменных не только таким образом в массивах, а даже больше, трёх мерные указатели, а в нутри могут быть ещё Н-меры. Никто не отменял знаки /* */ в которых можно хоть 1000 строк описания помещять..
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
20.06.2015, 02:51 | 5 |
Хорошо читабельным считается код который читается без комментариев.[/quote]
При правильном проектировании код растет при создании "кирпичиков". Потом количество кода необходимого для доделывания той или иной фичи резко падает. Т.е. в начале создается абстрагированное двигло которое и есть основной по объему код. А добавление конкретики в результате занимает очень мало кода. Добавлено через 48 секунд Что понимается под словом платформа?
1
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
20.06.2015, 13:08 | 7 |
Так я понял, вам нехватает догматичного взгляда и стиля общения Hoggy?.. Ну так идите и с ним в таком русле и разговаривайте. Мне же все эти ваши шаблоны - просто по барабану.
Ещё раз читай мой предыдущий пост, или 7 раз читай, или пока не дойдёт... Я смотрю ты учитель йода видиш как начальство заказывает построение программы в начале, и как всё оборачивается через год и два.. Все вопросы заказчикам. Можеш глянуть на мой профиль, последние 10 созданных тем в этом разделе посвящены ньюансам того чем я как раз и занимаюсь. (больше сказать не могу, т.к. и говорить нечего, платформа - она и в африке платформа)
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
20.06.2015, 13:25 | 8 |
Проектирует софт не заказчик а исполнитель. Читаем раздел "математическая постановка задачи"
Добавлено через 9 минут Та я тебе просто подсказать пытаюсь. Просто не совсем понятно что имеешь в виду под платформой. Есть такой к примеру термин - "платформер" - т.е. что то из серии 2D игр т.е. действия происходят на "платформе" -это из этой серии?
0
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
20.06.2015, 15:17 | 9 |
Ну что опять телекинезис?.. Я тебе говорю что ёпт в начале был один перечень задач, а потом он стал расти после выполнения первых.
На второе даже отвечать не буду, тот кто не хочет слышать - не услышит хоть 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 |
Я так подозреваю что для такой задачи вы ошиблись разделом как минимум на 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 |
Ну если вы всерьез за такую обширную тему решили взяться то книги по проектированию вам не читать надо а писать Хотя бы полномасштабная постановка задачи выльется в многотомник покруче "Война и Мир". Ну а вообще что посоветую разбить систему на относительно автономные модули, модули на гуппы по очередям внедрения, а очереди внедрения планировать так чтобы первая очередь давала минимальный функционал а последующие его наращивали и увеличивали количество АРМ и вообще количество абонентов и категорий абонентов.
0
|
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
|
|
21.06.2015, 19:35 [ТС] | 14 |
Спасибо, я понял вас. Лучше начну, а потом уже станет ясно, как лучше спроектировать.
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 |
Начните с того что возьмите бааальшой лист ватмана и сделайте диаграмму HIPO т.е. такие квадратики где что на каком компе вводится, каким куда выводится/записывается и как примерно обрабатывается. Ну если способны удержать эту схему в голове и проектировать и реализовывать будете один или с максимум еще одним-двумя гениями-телепатами (при большем количестве разработчиков обычно "телепатия" так не срабатывает) то можно и без бумаги, то бишь в голове, но скорее всего придется таки на бумаге. Особенно если нет опыта проектирования подобных систем. Оно просто из простыни путем абстрагирования сворачивается в достаточно небольшой движок в конечном итоге.
0
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
21.06.2015, 22:03 | 17 |
Таки ты сказал всё же что то дельное)) И в точку кстати данной темы. Именно бумага, карандаш и воображение - главные инструменты программиста!
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
21.06.2015, 23:55 | 18 |
Сейчас кстати есть средства позволяющие делать это на экране. И ладно бы если просто черчение, они потом еще и заголовки классов создают и места под функции только код вписывай. другое дело что дойти до таких мелких деталей как описание кажого класса это в большом проекте целяком малореально. Я как бы с головы да ручками пока что, хотя была бы толковая система создания иерархий... может и пользовал бы. А пока что и борландовский и мелкомягкий редакторы классов слишком сырые и неудобные, да и без мысленного ввода это мало времени экономит. Хоть бы сенсорный интерфейс был, уже бы можно было использовать. А от него до мысленного ввода пол шага.
Добавлено через 4 минуты Главный инструмент программиста - моск и аналитические способности. Добавлено через 1 час 36 минут А вы собираетесь квартал-другой потратить на написание кода, потом год-другой на рефакторинг, потом выбросить все и на месяц засесть за аналитику и проектирование?
0
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
22.06.2015, 01:15 | 19 |
Если программа будет работать, то лучше именно сначало сделать криво, чем засесть на месяц изучения аналитики, от которой толку не будет, т.к. сам язык не освоен. А речь именно об этом.
В общем ты мне порядком надоел, и твои телекинетические способности, которые кстати не работают, размером галстука меряются в другом месте, а выкабенивать из себя великого гуру, что ты и делаеш - у тебя всё равно не получится. На улице про таких сначала шёпотом говорят, потом в компаниях за спиной. Почему - потому что и так видно что за человек перед тобой, к чему эти все понты и паказуха в стиле "а я такое знаю, чего ты не знаеш".. Видимо не все закончив детский "сад вырастают из него мозгом". Больше я отвечать на твои комменты не буду, а то это попахивает провокацией.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
22.06.2015, 15:04 | 20 |
Так сначала тогда язык осваивайте а потом огромные системы проектируйте. проще будет. и быстрее
0
|
22.06.2015, 15:04 | |
22.06.2015, 15:04 | |
Помогаю со студенческими работами здесь
20
Определения по теме Погрешности и методы решения СЛАУ Литература по теме: "Многоуровненвая архитектура приложения" Нужна литература в которой описаны именно классы и методы работы с операционной системой Нужна литература по теме "Списки" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |