Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

Как вы пишете ПО?   Найти похожие ветки 

 
Ega23 ©   (2006-02-07 13:53) [0]

Сначала реализуете функциональность, тестируете, и только потом "оборачиваете" красивым GUI? Или делаете сразу?


 
Sergey13 ©   (2006-02-07 13:57) [1]

А какой он - "красивый GUI"? 8-)
Я лично предпочитаю стандартный.


 
Crem   (2006-02-07 13:57) [2]

> Ega23 ©   (07.02.06 13:53)  

ООП оно придумано не для того чтобы книги писать. А чтобы оборачивание было оборачиванием. Функциональное - оно было функциональным без оборачивания. И тестирование где-то тут.
Если ООП поставлено на уровне неплохом, то все вопросы на уровне сабжа - просто отваливаются.
Да и то  вприведенной постановке - это уровень начинающих или слабых компаний.


 
Юрий Зотов ©   (2006-02-07 14:03) [3]

Сначала проектирование (по ходу уточняются требования к функциональности).

Потом ядро с его капитальнейшей отладкой (по ходу уточняются результаты проектирования).

Потом прикладная часть (по ходу уточняется GUI - где и какие вообще нужны контролы).

Потом дизайн.

PS
Такое разделение все же несколько условно, потому что этапы могут пересекаться, накладываться друг на друга, могут быть итерационными и т.д.


 
Ega23 ©   (2006-02-07 14:04) [4]


> ООП оно придумано не для того чтобы книги писать. А чтобы
> оборачивание было оборачиванием. Функциональное - оно было
> функциональным без оборачивания. И тестирование где-то тут.
>
> Если ООП поставлено на уровне неплохом, то все вопросы на
> уровне сабжа - просто отваливаются.
> Да и то  вприведенной постановке - это уровень начинающих
> или слабых компаний.
>


Ничего не понял.


 
Crem   (2006-02-07 14:07) [5]

> Ega23 ©   (07.02.06 14:04) [4]

Верю. Если все с первого раза понимать, то и рождаться не стоит.
Проектировать надо просто. И ООП в этом сильно помогает.
И если вы чего-то не поняли. кричать об этом не обязательно. потому что кто в конечном итоге невнятный - еще под вопросом.


 
Ega23 ©   (2006-02-07 14:08) [6]


> Юрий Зотов ©   (07.02.06 14:03) [3]


Ну, в общем, у нас то же самое.
Кстати, Юрий, а дизайном сами занимаетесь? Или сторонние люди?
Просто мы тут с коллегами вообще замахнулись на то, что пользователь сам может полностью поменять дизайн продукта. Т.е. мы предоставляем несколько стандартных шаблонов + "конструктор внешнего вида", а дальше заказчик сам уже думает - пользоваться готовым или самому что-нибудь "навертеть".


 
Crem   (2006-02-07 14:10) [7]

> Ega23 ©   (07.02.06 14:08) [6]

Вы с Аксаптой не работали? Многое потеряли.


 
Ega23 ©   (2006-02-07 14:12) [8]


> Верю. Если все с первого раза понимать, то и рождаться не
> стоит.
> Проектировать надо просто. И ООП в этом сильно помогает.
>
> И если вы чего-то не поняли. кричать об этом не обязательно.
>  потому что кто в конечном итоге невнятный - еще под вопросом.
>
>


Не откажет ли Многоуважаемый Господин Гуру в любезности пояснить ничтожному: каким образом понимание концепции объектно-ориентированого программирования помогает в создании удобного пользовательского интерфейса?


 
evvcom ©   (2006-02-07 14:12) [9]


> Просто мы тут с коллегами вообще замахнулись на то, что
> пользователь сам может полностью поменять дизайн продукта.

Скины? Видать у вас времени свободного навалом. Я функционал не успеваю делать.


 
Rouse_ ©   (2006-02-07 14:14) [10]

Сначала проектировка. Потом разработка отдельных компонентов системы, как визуальных так и не очень :). Потом начинается сборка.
ГУИ слегка накидываю вначале, чтобы было удобно тестировать внутренности, ну а когда ядрышко отточено - начинаю прикручивать всякие там финтифлюшки :)


 
Crem   (2006-02-07 14:14) [11]

> Ega23 ©   (07.02.06 14:12) [8]

Элементарно. Принцип простой. Мухи отдельно от котлет. Про что вам и прописал Юрий Зотов. Его вы вроде как поняли. А меня вроде как нет.

ООП и позволяет вам отделить этапы функциональные в этапы разработки. И ГУИ даже супернавороченый появля\ется в последний момент - и это уж дело всяко не тех программситов, что ядро писали.

Будь проще. Не хами.


 
ANB ©   (2006-02-07 14:15) [12]


> Скины?

Думаю, это не скины. А именно конструктор. Видел такие системы (та же 1С). Как правило, пользователи все равно пользуются только готовым, а все доделки заказывают.


 
Ega23 ©   (2006-02-07 14:15) [13]


> Скины? Видать у вас времени свободного навалом. Я функционал
> не успеваю делать.


Нет, не скины. Скажем, нечто вроде IDE у Delphi - хочешь - вот тебе Object Inspector, хочешь - вот тут же и Class Browser, "придоканый" к Object Inspector и т.п.


 
Ega23 ©   (2006-02-07 14:17) [14]


> Будь проще. Не хами.


"Не говорите мне, что делать, и я не буду говорить Вам, куда идти" (с)


 
Crem   (2006-02-07 14:19) [15]

> Ega23 ©   (07.02.06 14:17) [14]

Конструктивно. Но вы бы все таки прочитали мой первый пост и попробовали понять. С надеждой....


 
Ega23 ©   (2006-02-07 14:22) [16]


> Rouse_ ©   (07.02.06 14:14) [10]
>
> Сначала проектировка. Потом разработка отдельных компонентов
> системы, как визуальных так и не очень :). Потом начинается
> сборка.
> ГУИ слегка накидываю вначале, чтобы было удобно тестировать
> внутренности, ну а когда ядрышко отточено - начинаю прикручивать
> всякие там финтифлюшки :)


Ну вот в большей степени именно этот вопрос интересует. Допустим, знаю, что тут будет DBGrid лежать. На этапе написания функциональности это просто грид, смотрящий на какой-то там НД. А уже при докручивании GUI - всякие Column"ы с названиями, отцентровкой и т.п.

Просто схватились тут с коллегой. У него стиль такой - пишет какой-нибудь диалог настройки справочной таблицы - так это у него всегда полностью законченный диалог. Со всеми выравниваниями, иконками, картинками, подсказками и прочим. А я наоборот предпочитаю. Вот и поспорили.
И стало интересно, что коллеги по цеху об этом думают.


 
Sandman29 ©   (2006-02-07 14:30) [17]

Ega23 ©   (07.02.06 14:22) [16]

А я наоборот предпочитаю. Вот и поспорили.

Оба правы :)
Делай так, как удобно в конкретном случае. Иногда отлаживать "ядро" легче, если есть удобный интерфейс, позволяющий выбирать параметры из комбобоксов, а не писать идентификаторы (параметры в методе сервера приложений) ручками.


 
Eraser ©   (2006-02-07 14:32) [18]

Вообще Action"ы спасают..., т.к. необязательно для какой-то операции присутствие конкретного элемента интерфейса.

Вцелом получается как говорит Rouse_ ©   (07.02.06 14:14) [10].


 
Ega23 ©   (2006-02-07 14:33) [19]


> Делай так, как удобно в конкретном случае. Иногда отлаживать
> "ядро" легче, если есть удобный интерфейс, позволяющий выбирать
> параметры из комбобоксов, а не писать идентификаторы (параметры
> в методе сервера приложений) ручками.
>


Безусловно легче. Но одно дело накидать комбиков, выставить им TabOrder и отлаживать функционал, а другое дело подбирать при этом полдня иконки, подбирать цвет и т.п.


 
Ega23 ©   (2006-02-07 14:33) [20]


> Вообще Action"ы спасают..., т.к. необязательно для какой-
> то операции присутствие конкретного элемента интерфейса.
>


Угу. ActionList - убойная вестч.


 
Юрий Зотов ©   (2006-02-07 14:35) [21]

> Ega23 ©   (07.02.06 14:08) [6]

> а дизайном сами занимаетесь?

Сами. Советую наработать некие внутрикорпоративные стандарты - сильно облегчают жизнь и обеспечивают единый стиль всех форм.

> мы тут с коллегами вообще замахнулись на то, что пользователь сам
> может полностью поменять дизайн продукта.

Реализовано в мае 2000-го года (та самая "маленькая Delphi", о которой как-то уже рассказывал). Поддерживает как изменение пользователем внешнего вида форм (включая даже и главную форму), так и изменение им же прикладной функциональности - юзер пишет код обработчиков событий (на том же самом Object Pascal) и этот код исполняется.


 
Sandman29 ©   (2006-02-07 14:37) [22]

Ega23 ©   (07.02.06 14:33) [19]

Иконки и цвета подбираются в самом конце. Точнее, перед созданием скриншотов для вставки в инструкцию по эксплуатации :)


 
Crem   (2006-02-07 14:40) [23]

Ну вот. Все к той же Аксапте и пришло. Принципиально нового - ничего.


 
КиТаЯц ©   (2006-02-07 14:44) [24]


> Ega23 ©   (07.02.06 14:22) [16]
>
> ...
> Просто схватились тут с коллегой. У него стиль такой - пишет
> какой-нибудь диалог настройки справочной таблицы - так это
> у него всегда полностью законченный диалог. Со всеми выравниваниями,
>  иконками, картинками, подсказками и прочим. А я наоборот
> предпочитаю. Вот и поспорили.
> И стало интересно, что коллеги по цеху об этом думают.


Ага... Понял в чем вопрос.
Из личного опыта (не знаю, понятно ли объясню): бюьсь над проблеммой (при наличии примитивного интерфейса) - не получается... надоело... начинаю рисовать "какой-нибудь диалог настройки справочной таблицы" - сидиш себе - кнопочки туда-сюда - то прикрутил, это... Хач! мысль по основной проблемме появилась - пробуем - нихт... черт! рисуем дальше... Со стороны выглядит как "сначала GUI", а реально: "что пишется".
Чем проще задача - тем быстрее собирается ядро. Задача сложная - интерфейс симпатичней...


 
iZEN ©   (2006-02-07 14:44) [25]

Если начинать разработку с модели и заканчивать UI, то получается уродливо.
Если начинать разработку с UI и заканчивать моделью, то получается узко, монолитно и нерасширяемо.

Поэтому принимается два потока, идущие навстречу друг другу: одновременно пишется модель и уточняется UI. Оба потока разработки постоянно взаимодействуют друг с другом, приходят к взаимной "утряске", взаимодополняют друг друга. Резонируют - вот подходящая метафора.


 
Ega23 ©   (2006-02-07 14:49) [26]


> Ну вот. Все к той же Аксапте и пришло. Принципиально нового
> - ничего.


Да задолбало то, что один заказчик хочет видеть справа - дерево, слева - графику, а внизу - протокол событий. А другой хочет справа - графику, слева - дерево, а вот протокол событий - отдельной модальной формой.
И что, для каждого из заказчиков (а их не два и не десять) отдельный exe компилить?
Вот и сделали такой конструктор. В первую очередь для себя. Ну а уж потом идея появилась - а не выдать ли этот конструктор заказчику как отдельную фичу ПО? Хочет - пусть сам пользуется. Не хочет разбираться - мы за отдельную денюшку ему соберём так, как ему хочется.


 
Курдль ©   (2006-02-07 14:49) [27]


> Просто мы тут с коллегами вообще замахнулись на то, что
> пользователь сам может полностью поменять дизайн продукта


Нам бы ваши проблемы :(


 
Ega23 ©   (2006-02-07 14:52) [28]


> Нам бы ваши проблемы :(
>


См. [26]  Причина там.


 
Игорь Шевченко ©   (2006-02-07 15:01) [29]


> Да задолбало то, что один заказчик хочет видеть справа -
>  дерево, слева - графику, а внизу - протокол событий. А
> другой хочет справа - графику, слева - дерево, а вот протокол
> событий - отдельной модальной формой


Нам бы ваши проблемы


 
Ega23 ©   (2006-02-07 15:14) [30]


> Нам бы ваши проблемы
>


Ну, кому - как. Для нас это серьёзная проблема.


 
seg   (2006-02-07 15:15) [31]

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

Это говорит о том, что заказчик сам не знает какой функционал ему нужен,
но очень озабочен мелочами.
Поэтому делая универсальную весчь и отдавая ее заказчику, вы реально теряете сначала деньги, а потом и заказчика.
Умный менеджер разведет такого заказчика по полной и будет доить до тех пор, пока заказчик сам не поймет, что занимается ерундой за свои деньги.


 
Gero ©   (2006-02-07 15:16) [32]

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


 
seg   (2006-02-07 15:17) [33]

Расширяться тоже должен вместе с функционалом, ибо они друг без друга жить не могут.

Здравая мысль. Поддерживаю.


 
Gero ©   (2006-02-07 15:21) [34]

> Нам бы ваши проблемы

Почему же, если заказчик готов платить за свои прихоти, то все замечательно.


 
Fay ©   (2006-02-07 15:24) [35]

Заказчик, который платить не готов - это просто посторонний человек


 
TStas ©   (2006-02-07 15:25) [36]

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


 
ZeroDivide ©   (2006-02-07 15:27) [37]


> Как вы пишете ПО?
>
> Ega23 ©   (07.02.06 13:53)
>
> Сначала реализуете функциональность, тестируете, и только
> потом "оборачиваете" красивым GUI? Или делаете сразу?


GUI уже написан давно, этому весьма способствовала возможность визуального наследования форм :)

Сначала этап первоначальной проектировки, в котором определяются процессы "окучиваемые" задачей. Потом идет предварительная декомпозиция задачи. Потом рисуются всякие схемы, обсуждаются... и все... на этом все приятные моменты заканчиваются, далее рутина:

...repeat проектируем, пишем и тестируем until в экстремальном стиле... до 10 версий за день... Т.к. в этом случае заказчик получает все именно так как он хочет (правда очень часто, ему приходится объяснять, что ему будет удобнее "так", а не как в старой программе было... в последствии он ВСЕГДА доволен оказывается) и готовый продукт появляется гораздо быстрее.
Потом продукт отдается в отдел сопровождения... и совсем усё...


 
seg   (2006-02-07 15:31) [38]

Я бы по-другому ставил вопрос - Как  получить от заказчика максимальную выгоду?


 
Ega23 ©   (2006-02-07 15:42) [39]


>
> Это говорит о том, что заказчик сам не знает какой функционал
> ему нужен,
> но очень озабочен мелочами.


Отнюдь. Функционал описан соответствующим ГОСТ-ом. А вот интерфейс - нет. Есть некие стандарты на цвет (красный - "тревога", синий - "неисправность" и т.п.). Даже, скорее, не стандарты, а рекомендации.
И есть общие требования, типа
1. Оператор должен иметь возможность просмотра протокола тревожных событий
2. Администратор должен иметь возможность просмотра действий оператора

и т.п.

А вот где этот протокол событий должен находиться - не указано. И тут начинается полёт фантазии: одни хотят видеть его так, другие - сяк, третьи - вообще по-другому. И начинается...


 
ZeroDivide ©   (2006-02-07 15:42) [40]


> Да задолбало то, что один заказчик хочет видеть справа -
>  дерево, слева - графику, а внизу - протокол событий. А
> другой хочет справа - графику, слева - дерево, а вот протокол
> событий - отдельной модальной формой.
> И что, для каждого из заказчиков (а их не два и не десять)
> отдельный exe компилить?
> Вот и сделали такой конструктор. В первую очередь для себя.
>  Ну а уж потом идея появилась - а не выдать ли этот конструктор
> заказчику как отдельную фичу ПО? Хочет - пусть сам пользуется.
>  Не хочет разбираться - мы за отдельную денюшку ему соберём
> так, как ему хочется.


Если ваш интерфейс, который вы РАЗРАБАТЫВАЛИ, действительно удобен, то сумейте это УБЕДИТЕЛЬНО ОБЪЯСНИТЬ и все... ни каких проблем.
Если заказчику не нравится зеленая кнопочка и он хочет ее видеть красной и это действительно не принципиально, то упирайтесь... имейте гордость в конце концов.
У нас один пользователь приципился, что обычные кнопки со стрелками навигации по набору данных, ему напоминают, как он выразился: "Это... че...? че... за магнитофон тут... вперед-назад-перемотка???". Ему ВНЯТНО объяснили, что так обычно выглядят кнопки навигации и мы придерживаемся такого стандарта... и во всех наших программах... и вообще в большинстве, они выглядят точно так же. Он уперся, мы уперлись... в итоге он программой пользуется и теперь, спустя значительное количество времени, он стал с нами согласен.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.044 c
1-1138215770
SErgeus
2006-01-25 22:02
2006.02.26
Интересный вопрос


15-1139056312
ZbarKiy
2006-02-04 15:31
2006.02.26
Исходники архиваторов?


3-1135838346
mss
2005-12-29 09:39
2006.02.26
Ошибка в Interbase


1-1138349420
MMM_corp
2006-01-27 11:10
2006.02.26
как приобщить мне FreeReport к BDS 2006


15-1139253380
Gero
2006-02-06 22:16
2006.02.26
Проверка соответстивия пароля запароленному zip-файлу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский