Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разработка программ, Интерфейс и функциональность 
:(
    Опции темы
papochka
Дата 3.12.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 28.10.2009

Репутация: нет
Всего: нет



Привет. Много думал. Как начинающий спрошу..
Вот приступая к разработке программы, вы ведь обдумываете её функционал, структуру, в конце концов интерфейс. Так вот, в голове постоянно это сложно держать. Ну как бы не сложно..Даже не знаю как сказать.. Вот кто-либо из Вас использует граф.редакторы, тексовые файлы чтоб изложить суть проги, функционал: там хедеров своих и тд. Рисует интерфейс сначала где-то на макете?
Либо просто держит в мыслях?
Кто как вообще приступает к разработке программ?
Поделитесь мнением, поможете и мне, просто как-бы сказать незнаю как это все делают. Мне так, для общего представления..

Спасибо за помощь и понимание. 

Это сообщение отредактировал(а) papochka - 3.12.2009, 20:07
PM MAIL   Вверх
SVN74
Дата 4.12.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: 1
Всего: 18



Лучше всего начинать с самого низу, - там где еще не нужно создавать ничего визуального и желательно все вкидывать в классы, затем завязывать их друг за друга поднимаясь вверх, тем самым создавая себе возможность быстрых поправок без переделывания всего кода.
Затем только все завязывать с визуальными компонентами...
В принципе основные принципы будущей программы легко обдумывать прямо в голове, затем при программировании обязательно будут возникать не предвиденные трудности, которые затем возможно даже придется рисовать на бумаге, что бы правильно осмыслить все тонкости определенной задачи...

PM MAIL WWW   Вверх
kemiisto
Дата 4.12.2009, 01:56 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



Цитата(papochka @  3.12.2009,  20:40 Найти цитируемый пост)
Кто как вообще приступает к разработке программ?

Проектирование ПО - штука объёмная. В 2-х словах и не раскажешь...

Сам себя часто ловлю, что надо развиваться в этом направлении. Но дефицит времени... 

Итак, если говорить об объектно-ориентированном программировании и одноимённом проектировании, то никакими спец. средствами (как они там "по-умному" называются? CASE?) я лично не пользуюсь. Ибо нафиг надо. smile Монструозно-избыточный, тем не менее допускающий неточности и разночтения, UML, простите, "фтопку". Да и вообще, «The code is the design.» smile Так на листочке примерно "поднакидать" диаграмки. Прикунуть, что называется "*** к носу". smile Понятно для себя чтоб было. 

Полезным может оказаться знание шаблонов (паттернов) проектирования. И антипаттернов тоже. smile И опыт нужен. Так как тут область эмпирическая. Чётких законов нет, но есть некий свод удачных и (им в противоположенность) порочных практик. Но всего не опишешь...

Насчёт интерефейса. Можно, конечно, и на бумаге рисовать. А что, "бумага терпит" (с) smile Но если есть редактор графического интерфейса для соотв. каркаса (Qt Designer для Qt, например) - лучше сразу там начинать. Преимущества компьютерной обработки данных (undo/redo против ластика smile и т.п.) никто не отменял. smile 

Цитата(SVN74 @  4.12.2009,  02:02 Найти цитируемый пост)
затем при программировании обязательно будут возникать не предвиденные трудности

А это уже, уважаемый, от языка зависит. smile По крайней мере количество трудностей и их масштаб... Даёшь холивар!


--------------------
PM MAIL WWW GTalk Jabber   Вверх
unicuum
Дата 4.12.2009, 05:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: 1
Всего: 8



Это надо обсуждать, я уже показывал как всё это выглядит в диаграммах UML, псеводокодах, XML, графических схемах и т.п. Только что-то мои темы по проектированию ПО не сыскали заслуженной славы. smile 
Цитата(kemiisto @  4.12.2009,  01:56 Найти цитируемый пост)
Полезным может оказаться знание шаблонов (паттернов) проектирования. И антипаттернов тоже. user posted image И опыт нужен.

Шаблоны проектирования это хорошо, но не совсем. Важны ещё сами задумки необходимые для реализации в программе и способы их упорядочивания.


--------------------
user posted image
обычный день на винграде
PM   Вверх
GremlinProg
Дата 4.12.2009, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 3
Всего: 106



Цитата(kemiisto @  4.12.2009,  03:56 Найти цитируемый пост)
А это уже, уважаемый, от языка зависит.  По крайней мере количество трудностей и их масштаб... Даёшь холивар!

непредвиденные трудности могут и "на спичках" возникнуть, врят ли тут стоит винить какой-то конкретный язык,
т.к. все эти трудности мы себе либо придумываем сами, либо наследуем придумки от предков


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
unicuum
  Дата 4.12.2009, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: 1
Всего: 8



Цитата(GremlinProg @  4.12.2009,  05:55 Найти цитируемый пост)
т.к. все эти трудности мы себе либо придумываем сами, либо наследуем придумки от предков 

Может мы их и придумываем, но они от этого становятся реальными. Вопрос как наиболее оптимальным способом их преодолеть.


--------------------
user posted image
обычный день на винграде
PM   Вверх
Earnest
Дата 4.12.2009, 09:19 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Начинать разработку программы (или модуля большого проекта) нужно с написания функциональных требований. Именно написания, в любом виде. Что должна делать, что не должна. Потом прописать взаимодействие с пользователем. Нарисовать интерфейс, ясно представляя, как оно должно работать с точки зрения полозователя. Потом можно немножко попредставлять дизайн, примерно накидать кто чем рулит. Тоже письменно, т.к. это заставляет оттачивать формулировки, и многое становиться ясным, многие проблемы вылезают. Это все вполне банально и в зубах навязло, но реально помогает. Другое дело, что обычно это делать влом.  Лично я это делаю только для сложных модулей, когда сразц в голове нет ясной картины. Или как спецификацию для других программистов. Спец.средствами (UML и прочая) никогда не пользовалась, хотя изучала и пробовала, но посчитала излишними (для своих задач). 
Т.е. проектирование нужно обязательно, но необязательно формальное.


--------------------
...
PM   Вверх
Lazin
Дата 4.12.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(papochka @  3.12.2009,  19:40 Найти цитируемый пост)
Вот приступая к разработке программы, вы ведь обдумываете её функционал, структуру, в конце концов интерфейс.
нет $%#@, сразу сажусь и пишу код smile 

Цитата(unicuum @  4.12.2009,  05:37 Найти цитируемый пост)
Это надо обсуждать, я уже показывал как всё это выглядит в диаграммах UML, псеводокодах, XML, графических схемах и т.п. Только что-то мои темы по проектированию ПО не сыскали заслуженной славы
так то были темы по проектированию ПО? smile 


Цитата(Earnest @  4.12.2009,  09:19 Найти цитируемый пост)
Начинать разработку программы (или модуля большого проекта) нужно с написания функциональных требований. Именно написания, в любом виде. Что должна делать, что не должна. Потом прописать взаимодействие с пользователем. Нарисовать интерфейс, ясно представляя, как оно должно работать с точки зрения полозователя. Потом можно немножко попредставлять дизайн, примерно накидать кто чем рулит. Тоже письменно, т.к. это заставляет оттачивать формулировки, и многое становиться ясным, многие проблемы вылезают. Это все вполне банально и в зубах навязло, но реально помогает. Другое дело, что обычно это делать влом.  Лично я это делаю только для сложных модулей, когда сразц в голове нет ясной картины. Или как спецификацию для других программистов. Спец.средствами (UML и прочая) никогда не пользовалась, хотя изучала и пробовала, но посчитала излишними (для своих задач). 
Т.е. проектирование нужно обязательно, но необязательно формальное. 

единственный вменяемый комментарий на всю тему smile ППКС
без сформулированных, хотя-бы частично требований, нечего даже думать об архитектуре
тут нужно уметь идти на компромиссы, иногда стоит отказаться от какой либо функции, как сложность проекта падает очень значительно, и наоборот, какая нибудь мелкая функциональность может "не ложиться" на архитектуру приложения и портить жизнь разработчику, да и попросту похоронить проект smile 

Это сообщение отредактировал(а) Lazin - 4.12.2009, 10:06
PM MAIL Skype GTalk   Вверх
unicuum
Дата 4.12.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: 1
Всего: 8



Цитата(Lazin @  4.12.2009,  10:05 Найти цитируемый пост)
так то были темы по проектированию ПО? user posted image

Конечно, иначе с чего бы мне их было создавать, овнокодить я и так умею. smile 
Цитата(Lazin @  4.12.2009,  10:05 Найти цитируемый пост)
нет $%#@, сразу сажусь и пишу код user posted image

Тоже интересный подход. Сколь много у программиста играет уверенность и положительный настрой. Даже если нет знаний это может сильно помочь. При содействии же последних производительность будет очень неплохой. Вот представьте, что за годы программирования вы изучили большое количество разнообразных техник проектирования ПО.

Вроде всё ясно, что и как делать, однако при этом они не применяются. Повторение же снова и снова, как же это хорошо использовать вот ту технику проектирования не приводит к результату по понятным причинам. А если пытаться объяснить другим, как проектировать, то вероятно многое останется за кадром. Программист часто имеет в виду больше, чем говорит.
Цитата(Lazin @  4.12.2009,  10:05 Найти цитируемый пост)
без сформулированных, хотя-бы частично требований, нечего даже думать об архитектуре

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


--------------------
user posted image
обычный день на винграде
PM   Вверх
Lazin
Дата 4.12.2009, 11:07 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(unicuum @  4.12.2009,  10:27 Найти цитируемый пост)
Конечно, иначе с чего бы мне их было создавать, овнокодить я и так умею

а я думал ты это не серьезно... так ты это серьезно? шаблоныоттенки создателей и все такое!?!

Цитата(unicuum @  4.12.2009,  10:27 Найти цитируемый пост)
Тоже интересный подход.

тебе знакомо слово ирония?

Цитата(unicuum @  4.12.2009,  10:27 Найти цитируемый пост)
Это уже давно известно, что продвинутым прогерам важно то, что хочешь получить, а не то как хочешь это получить, так как второе не вызывает осложнений. Стоит ли говорить о таких банальностях? Стоит, конечно, вот только как я уже сказал, надо не думать, надо прыгать. И опять же, хоть я это и сказал, я понимаю, что меня в полной мере не поймут, те кто не последуют совету. Но если они следуют совету, то и совет им вовсе не нужен, ведь они и так делают, то что нужно. 
это основное отличие между профи и любителями, первым важен результат, вторым - процесс
просто там где один разработчик на ваяет сложную архитектуру, с шаблонными методами, синглтонами и абстрактными фабриками, напишет несколько десятков тыс. строк кода в десятках файлов, другой подумает(!!!) до того как писать что-либо и поймет, что здесь по сути должно происходить чтение из файла в такую структуру данных с последующей обработкой и экспортом в определенный формат(к примеру) и сделает минимальную по сложности реализацию из всех возможных, которая на 2х экранах будет помещаться smile
вот это, на мой([irony]единственно верный, хочу заметить[/irony]) взгляд и есть правильный подход, так как сделать проще, на самом деле сложнее, и что-бы сделать более простую(а значит, содержащую меньшее количество ошибок и более простую для последующего развития) реализацию, нужно предварительно подумать, куда прыгаешь, прежде чем прыгать smile


Это сообщение отредактировал(а) Lazin - 4.12.2009, 11:07
PM MAIL Skype GTalk   Вверх
unicuum
  Дата 4.12.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: 1
Всего: 8



Цитата(Lazin @  4.12.2009,  11:07 Найти цитируемый пост)
вот это, на мой([irony]единственно верный, хочу заметить[/irony]) взгляд и есть правильный подход, так как сделать проще, на самом деле сложнее, и что-бы сделать более простую(а значит, содержащую меньшее количество ошибок и более простую для последующего развития) реализацию, нужно предварительно подумать, куда прыгаешь, прежде чем прыгать user posted image

Тега irony на винграде нет. Представь, что ты новичок в программировании. Можешь ли ты сразу написать код хорошо? Да, даже если не новичок. Что важнее, краткость кода или его понятность программистам? Когда уровни абстракций вместо уменьшения количественной и увеличения качественной составляющей начинают действовать наоборот?

Я вот встречал примерно такие ответы, - "Ничто не заменит хороший вкус и что-то там ещё". В общем, всё не так однозначно, и совет подумай так же ценен ("ценен"), как и совет делай.

Добавлено через 2 минуты и 17 секунд
P.S. если бы мы сами ещё следовали своим советам, цены бы нам не было smile

Это сообщение отредактировал(а) unicuum - 4.12.2009, 11:18


--------------------
user posted image
обычный день на винграде
PM   Вверх
Lazin
Дата 4.12.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(unicuum @  4.12.2009,  11:17 Найти цитируемый пост)
Тега irony на винграде нет.

спасибо Кэп.

Цитата(unicuum @  4.12.2009,  11:17 Найти цитируемый пост)
Представь, что ты новичок в программировании. Можешь ли ты сразу написать код хорошо?
когда я был новичком в программировании, я такими вопросами, как ТС, не задавался smile 

Цитата(unicuum @  4.12.2009,  11:17 Найти цитируемый пост)
Да, даже если не новичок. Что важнее, краткость кода или его понятность программистам?
одно с другим связано, разве нет?

Цитата(unicuum @  4.12.2009,  11:17 Найти цитируемый пост)
Когда уровни абстракций вместо уменьшения количественной и увеличения качественной составляющей начинают действовать наоборот?
уровни абстракции должны выполнять одну простую функцию - уменьшения связности и как следствие сложности, поэтому, прежде чем вводить новый уровень абстракции, нужно подумать, нужен-ли он на самом деле, или без него можно обойтись
вроде-бы простая вещь, но многие не понимают, часто программист не может объяснить, зачем он ввел ту или иную сущность, увеличив тем самым сложность, зачастую это происходит из-за того, что программист не понимает как в дальнейшем будет использоваться его код, поэтому делает максимально обобщенно/абстрактно, хотя на самом деле все можно было сделать просто
поэтому очень важно правильное проектирование, не имея big picture, невозможно судить о том, как будет использоваться тот или иной класс, должен-ли он быть абстрактным так как в будущем появятся новые реализации, либо будет всегда использоваться одна и та-же реализация (это был пример) smile

Добавлено через 2 минуты и 17 секунд
одним словом, преждевременная пессимизация - зло smile 
PM MAIL Skype GTalk   Вверх
kemiisto
Дата 4.12.2009, 12:20 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



Цитата(GremlinProg @  4.12.2009,  06:55 Найти цитируемый пост)
врят ли тут стоит винить какой-то конкретный язык

Соблазн уж больно велик. smile 

Цитата(Earnest @  4.12.2009,  10:19 Найти цитируемый пост)
или модуля большого проекта

Да, когда С/С++ разработчики начинают рассуждать о модулях, давиться от смеха становиться трудно. smile 

Цитата(Lazin @  4.12.2009,  11:05 Найти цитируемый пост)
единственный вменяемый комментарий на всю тему

Отнюдь. Просто речь идёт о первом этапа разработки ПО - сбор и анализ требований. А мы тут больше как-то  о втором...

Цитата(Lazin @  4.12.2009,  11:05 Найти цитируемый пост)
так то были темы по проектированию ПО? smile 

 smile Я в ауте...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Alek86
Дата 4.12.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



kemiisto, вроде Комодератор, а ведешь себя как типичный тролль smile

По поводу проектирования интерфейсов есть неплохая книжка Алана Купера "Психбольница в руках пациентов"
Уже одно название доставляет smile


--------------------
user posted image    user posted image
PM MAIL   Вверх
Леопольд
Дата 4.12.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(Lazin @  4.12.2009,  10:05 Найти цитируемый пост)
без сформулированных, хотя-бы частично требований, нечего даже думать об архитектуре

Как правило, всё продумать нельзя и на этапе реализации могут появиться новые требования. Некоторые могут быть не совместимы с текущей системой. Как быть, перепроектировать почти с ноля или делать как попало?


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.