|
5 / 5 / 0
Регистрация: 26.03.2014
Сообщений: 28
|
|
В чем рисуете СХЕМУ программы?30.01.2018, 09:48. Показов 659. Ответов 10
Метки нет (Все метки)
Добрый день! При создании большой программы, а также спустя некоторое время в голове начинает не хватать места, забываешь где чего делал, теряется общая логика программы, приходится по новой изучать свой ранее написанный код, чтобы встроить бизнесс-процесс. Подскажите пожалуйста, в какой программе можно было бы рисовать СХЕМУ программы, чтобы потом с легкостью вспоминать какой блок за что отвечает?
0
|
|
| 30.01.2018, 09:48 | |
|
Ответы с готовыми решениями:
10
Как и в чем правильно составить схему навигации между окнами программы Составить блок схему для программы упорядочивания чисел в массиве(код программы прилагается)
|
|
3 / 3 / 2
Регистрация: 20.12.2017
Сообщений: 9
|
|
| 30.01.2018, 11:02 | |
|
Привет. Использую UML в Umbrello.
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||
| 30.01.2018, 14:32 | ||
|
Если хорошо разбить на файлы, хорошо их назвать и хорошо сгруппировать по папкам, то потом легко вспомнить, какой блок за что отвечает.
0
|
||
|
3 / 3 / 2
Регистрация: 20.12.2017
Сообщений: 9
|
|
| 30.01.2018, 15:57 | |
|
Shamil1, когда еще нет файлов, директорий и т. п., полезно архитектуру/взаимодействие будущих компонентов продумать заранее, если это не приложение уровня hello world. И нарисовать диаграмы. И просто необходимо уметь это делать, если разработка идет командная.
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|
| 30.01.2018, 16:43 | |
|
0
|
|
|
3 / 3 / 2
Регистрация: 20.12.2017
Сообщений: 9
|
|
| 30.01.2018, 17:14 | |
|
Shamil1, чтобы найти потенциальные ошибки, возможные проблемы еще на стадии проектирования. Или изменить сам подход. Это сложно сделать на словах, а на схеме - это прозрачно и просто.
Если взять самое банальное, при работе в команде, когда владелец компонента А может не знать точно, как работает компонент Б. Когда для добавления нового функционала, готовы все UML-диаграммы, собрана команда, в диаграме владелец компонента Б, может это легко увидеть: нет, чувак, его так не получится использовать, как здесь нарисовано. Тогда меняем подход. Когда архитектура принята, все взаимодействие, интерфейсы описаны, разработка становится проще и предсказуемее. Формализованный язык схем позволяет избежать многих проблем недопонимания между людьми, чем когда обсуждение ведется текстом, или устно. Намного реже возникают ситуации "а я совсем не это имел в виду" и "мы договаривались не так..." потому что то, что все имели в виду, закреплено UML'ем. Это как, если один математик будет другому объяснять свою мысль общиким словами. Возможно, в принципе. Но эффективнее и понятнее будет другому математику - формулы рассчетов. Одна формула - стоит тысячи слов. Одна UML-диаграмма - стоит тысячи слов и названий еще не созданных файлов и директорий.
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||||
| 30.01.2018, 17:43 | ||||
|
0
|
||||
|
3 / 3 / 2
Регистрация: 20.12.2017
Сообщений: 9
|
||||
| 30.01.2018, 19:11 | ||||
|
Добавлено через 10 минут Написание предварительного наброска может занять месяцы. Ошибка в его архитектуре обойдется дороже, чем лишний день проектирования. Проектирование ошибок не исключает, но снижает их риск. Проектирование на листочке слишком неформально, чтобы быть одинаково понято парой десятков человек разной культуры, опыта, местонахождения, и так далее.
0
|
||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||
| 30.01.2018, 19:27 | |||
|
0
|
|||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|
| 31.01.2018, 12:20 | |
|
Нарисовать детализированную диаграмму занимает много времени. Если проект действительно большой и сложный, то всё учесть практически невозможно. В процессе реализации найдутся места, которые лучше делать не так, как собирались сначала. (Где-то код дублируется, где-то нельзя составить запрос к БД, который получает требуемую информацию за приемлемое время и т.д., и т.п.) Значит, придётся переделывать диаграмму. ИМХО единственный способ убедиться, что диаграмма составлена правильно - это написать соответствующий код.
Даже если в команде есть гениальные архитекторы, которые могут сразу нарисовать окончательный вариант диаграммы (зачем им диаграмма, если они и без неё знают, как делать?), то всё равно её придётся переделывать из-за того, что изменятся требования/пожелания заказчика. Ни один клиент не может сразу описать, что ему нужно. Это не потому, что клиенты глупые, а потому, что нечто, что кажется удобным в теории, может оказаться неудобным на практике. Даже если у клиента есть гениальный дизайнер интерфейсов, который сразу выбрал самый удобный вариант, то всё равно придётся переделывать из-за того, что со временем требования/пожелания изменятся. Конечно, можно попытаться предусмотреть все будущие изменения и спроектировать архитектору программы так, чтобы их можно было реализовать без изменения ядра системы. В результате получится супер-универсальный монстр с кучей ненужных фич "на всякий случай". Создавать и поддерживать такого монстра обойдётся дороже, чем держать архитектору максимально простой и изменять, когда требуется новая фича. Диаграммы хороши в теории, а на практике, начиная новый проект, нужно ожидать, что архитектура системы изменится. Обязательно. Хотя, пока, не известно, в каком месте, как и по какой причине. С использованием современных средств рефакторинга проще изменить код, чем внести соответствующие изменения в диаграмму (ну или, по крайней мере, не намного сложнее). С точки зрения планирования составление и поддерживание диаграммы в актуальном состоянии несёт мало пользы. Если так уж необходимо, можно во время обсуждения нарисовать фломастером на доске диаграмму для части системы, которая вызывает разногласия или непонимание. А поддерживать диаграмму в актуальном состоянии - это дополнительная, причём довольно муторная работа. С точки зрения понимания, что делает код, диаграмма тоже не нужна. Если система построена хорошо, то уже по названию проекта/класса/метода понятно, что делает код внутри. Благодаря современным средствам разработки, глядя на метод я сразу вижу, в скольки местах он вызывается, сколько раз менялся за последний год, сколько багов было исправлено и т.д. При необходимости, я могу сформировать аналогичную информацию отдельно для каждой строчки кода. Это гораздо быстрее и удобнее, чем рыться в диаграмме, занимающей 20 листов А4. Лично я даже диаграммы таблиц в БД перестал использовать (когда в БД 100+ таблиц, замучаешься скролить в нужное место - проще посмотреть список ключей для нужной таблицы).
1
|
|
| 31.01.2018, 12:20 | |
|
Помогаю со студенческими работами здесь
11
В чем составить схему связей БД Чем запитать схему усилителя Чем можно нарисовать схему IT сети В чем нарисовать схему с учетом ЕСКД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|