![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Здравствуйте уважаемые форумчане. C++ воистину сильный язык разработки приложений. Он гибкий и устойчивый. Он максимизирует границы возможного. И трудность в разработке приложения чаще заключается не в его написании, а к проектированию. Боюсь, для меня это проблема. Каждый раз как я беру листок бумаги, у меня возникает сложность в структурировании данных, в путающихся листочках, в методах записи. В итоге моя структура превращается не что-то структурированное, а в настоящую паутину, в которой я запутываюсь. Так что же говорить о самом написании программы!!! Какие есть система, метод, способ проектирование приложения? Я продолжаю делать самостоятельный поиск этой информации в интернете, однако параллельно буду ждать ответов и здесь, от Вас уважаемые Гуру. Спасибо за понимание.
|
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Такая же проблема. Пытаюсь прописать все возможные методы для класса, но предугадать и правильно разграничить не получается с первого раза. В тоге - итерационная разработка. Проблему решил, работаешь дальше - бац - появилась новая проблема, которая не стыкуется с предыдущим решением - приходится перепроектировать.
зы. мне кажется, дело не в незнании UML. Это сообщение отредактировал(а) Gunslinger - 30.10.2008, 11:57 |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
это написано во всех книжках по проектированию - точно угадать, как нужно будет поменять прогу, не получится. потому нужно стараться проектировать не только текущую задачу, а и оставлять немного на будущее.
с опытом приходит "интуиция", следуя которой можно уменьшить потребность в перепроектировании в общем для начала я бы просто советовал не писать больших функций, монолитных классов, общирных интерфейсов и т.п., чтобы перепроектирование было как можно более безболезненным Это сообщение отредактировал(а) Alek86 - 30.10.2008, 12:16 |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Где можно почитать, насчет того как правильно составить архитектуру программы?
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Макконелл "Совершенный код"
и что значит "правильно"? единого решения не существует Это сообщение отредактировал(а) Alek86 - 30.10.2008, 12:27 |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. (GOF) Приемы обьектно - ориентированного проектирования Паттерны Проектирования.
обзор паттернов проектирования |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
||||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Посоветуй пожалуйста неплохое приложение для создание архитектуры приложения. Сейчас я использую Microsoft Visio.
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
текстовый редактор.
я серьезно |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
лично мне удобнее бумажка и ручка
а уже ПОТОМ, когда научишься боле-мене архитектурить (я вот еще не научился), можно использовать Rational Rose или Enterprice Architecht ну, или если надо с удаленными коллегами обмениваться Это сообщение отредактировал(а) Alek86 - 30.10.2008, 14:41 |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Да, но у этого способ есть существенные недостатки. Бумага ограничена в объеме. Между блоками, невозможно вставить третий, без перечертежки, или усердной работы ластиком. И вообще порой происходит невозможность модифицирования, без полного перерисования. У меня нет четкого план-схемы по созданию Архитектуры. Я не придумал способы разграничения, участков кода и форм, базу данных и что-нибудь еще, когда нужно написать просто список свойств, а когда нужно каждое свойство заносить в отдельный блок. Я еще не придумал полноценной собственной системы проектирования. (Ведь нужно же на что-то опираться: методы, условные обозначения, порядок действий, на каком этапе проектировать GUI). Поэтому, скорее всего, на компьютере оно экономичнее. Друзья, может быть вы поделитесь вашими методами проектирования? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
проектирование, так же как и программирование, и вообще любая инженерная деятельность (а может и вообще любая) имеет общие принципы.
среди них один из важнейших - разделяй и влавствуй. он означает разделение задачи на подзадачи, что уменьшает число сущностей, рассматриваемых одновременно. на этом пути широко используется абстракция - выделение главного, обобщение, отбрасывание несущественного. как методологию удобно использовать объектно-ориентированный подход, как хорошо зарекомендовавший себя для проектирования крупных задач. к тому же результаты объектго-ориентированного анализа и проектирования легко отображаются на объектно-ориентированный язык, например С++ Я бы рекомендовал г.буч сотоварищи "объектно-ориентированный анализ и проектирование" как достаточно свежий фундаментальный труд на эту тему. отмечу, что такие вещи, как специализированный софт, языки типа uml, бумажка с ручкой - всего лишь инструменты. идеи, они в голове |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
проектированию научится нельзя
это как талант, либо он есть, либо его нет иначе все были бы архитекторами и некому было бы писАть код все имхо -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
И раскладывать все листочки на полу, оградить комнату ленточками, на двери повесить табличку идет проектирование, и лишь когда будешь заложен последний листик с надписью exit(0) все сфотографировать и снять опечатку комнаты) Тем неменее ваша мысль ясно правильно. Однако, когда приходится на этом самом листочке снова делить блок, то... нехватает места, и.... нужно брать новый листик) Просто порой сразу не угадаешь, уместишь или нет.))) |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Хорошие способности, талант - прекрасно. Но анализ, архитектура, проектирование - не шаманство. Есть подходы, принципы, методологии. Обучившись и следуя им человек со средними способностями будет выдавать приличный результат. Конечно, есть и элемент искусства, но это любой инженерной деятельности касается. Не могу не привести слова моего препода по матану на 1м курсе: "Дифференцировать можно уметь или не уметь. Дифференцировать можно научить и обезьяну. А интегррировать можно не уметь, можно уметь, а можно уметь здорово интегрировать. Вот я - здорово интегрирую" |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Судя по первой цитате понята не до конца. Зачем постоянно одновременно держать разложенными все листочки? Обычно во взаимодействие участвуют два-три объекта, вот их и выкладывайте. Остальные пусть себе себе спокойно лежат в коробочке |
|||
|
||||
| Lycifer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
Не время приводят к опыту,а события...
Только практика проектирования научит разрабатывать архитектуру программ |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Не время приводят к опыту,а события...
Только практика пилотирования научит управлять самолетом |
|||
|
||||
| Torsten |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 10.6.2008 Где: Pskov Репутация: 3 Всего: 7 |
хе, это называется попса.
Один сказал - другие подвхатили и стали развивать, как будто единственный метод проектирования заключается в рисовании. Думать шаблонами - вредно (я имею в виду не программерские шаблоны, а шаблонные мысли - кто-то сказал, посоветовал, сделать так - я сделаю так), каждая ситуация различна и применять одинаковый метод к решению похожих задач нельзя, т.к. условия всегда будут разными и результаты соотвественно тоже. Искать нужно, не сходства, а отличия. Можно все делать и без рисования, если ясно и четко представлять что есть и что нужно.
Пьешь кофе, смотришь в потолок, напрягаешь мозги - отбираешь мысли, сортируешь их. Нету методов, нету. Все зависит от конретной ситуации здесь и сейчас. Только если ничего не делать - результата тоже не будет. Это сообщение отредактировал(а) Torsten - 5.11.2008, 12:43 --------------------
We have no begining, we have no end. We are infinite. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Rational Rose -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| aleks88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
Товарищи Господа! Во первых всех приветствую, а во вторых думаю, что данная тема наиболее подходит для нижеописанного вопроса
Ситуация следующая: база данных FireBird + клиентское приложение, что я выполнил и уже работает, работает корректно, однако, чует мое сердце, что за такую реализацию в приличных кругах дают по морде Я бы хотел описать, как я сделал и получить ваши комментарии по этому поводу. База данных, содержит n полей. Каждая группа пользователей видит несколько полей и может их редактировать, но есть и такие, которые редактировать не может, а только просматривать, редактирует их другая группа. Первая группа видит все записи, остальные только после того, как некоторое поле будет не пусто. Я сделал одну общую таблицу и представления по условию where _fieldname_ is not null. Клиентские программы написаны на C++ Builder + FIBPlus + EgLib (только DBGridEh). Соответственно, для каждой группы своя программка. Подключения каждой из программ идет по стандартному имени и паролю для firebird (админские права), но на уровне самой программы, доступ ограничен как бы визуальными компонентами Соответственно, если в структуру таблицы, вносятся изменения, то нужно дорабатывать клиентские приложения. В общем пока все, хочется критики и советом, как делают умные люди. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
aleks88, нельзя постить не в свои темы! это первое.
второе - тема скончалась три года назад! нельзя беспокоить покойников! |
|||
|
||||
| Result |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 2 Всего: 5 |
Только из своего маленького опыта:
Вначале читал и "Совершенный код" и паттерны банды 4-х, и Бэка ТДД, статьи и тд., но какой-то реальный качественный скачок получил после труда Роберта Мартина "Чистый Код". |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
еще один некрофил.
|
|||
|
||||
| Result |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 2 Всего: 5 |
В пятничный вечер не посмотрел на даты
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |