Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Как правильно писать софт   Найти похожие ветки 

 
djaUser   (2008-04-04 00:11) [0]

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

И насчет функциоанала как лучше\проще: сразу продумать на листочке весь алгоритм, все связи и т.п. или сразу начинать кодить основу и по-ходу уже дописывать дополнительные модули?

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

Буду благодарен за любой ответ\мнение :)


 
Andy BitOff ©   (2008-04-04 00:25) [1]

На счет, что сначала - тут сейчас начнется холивар =) ИМХО, как удобнее.

На счет функцианала, так здесь и лучше и проще "сразу продумать на листочке весь алгоритм, все связи и т.п."


 
korneley ©   (2008-04-04 00:36) [2]


> тут сейчас начнется холивар =)

Всё и сразу. Но в первую очередь - архитектуру. Чтобы не было мучительно (потом) больно. И все равно, версии к, один с половиной, всё переписывать придётся :) Потому, что задумывали, не зная до конца предметной области. Кстати, с неё и надо начать. Чтоб не было:
-Бывает?
-Нет! Ну, разве,что, очень редко...


 
DrPass ©   (2008-04-04 00:43) [3]


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

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


 
djaUser   (2008-04-04 00:43) [4]

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

значит буду думать сразу, но тут, как всегда, наверное про треть функционала даже не подозреваю что она будет)

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


 
Loginov Dmitry ©   (2008-04-04 00:56) [5]

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


интерфейс "со всеми бебехами" никому не нужен. Красота - в последнюю очередь (если конечно речь идет не о Web-дизайне). Главное - это удобство, надежность, функциональность и производительность. Если этого нет, то на красоту никто не посмотрит. Всегда старайся минимизировать количество утраченных нервных клеток пользователя, работающего с твоей программой.


 
DrPass ©   (2008-04-04 01:04) [6]


> Красота - в последнюю очередь (если конечно речь идет не
> о Web-дизайне). Главное - это удобство, надежность, функциональность
> и производительность

Ну а тут можно спорить и спорить. Красивый - еще не значит, что удобный. Однако некрасивый - почти гарантированно неудобный. Убогая внешне программа, будь она триста раз надежна и функциональна, сожрет нервных клеток не меньше, чем красивые окошки с кривой реализацией.
Да и функциональность очень часто обратно пропорциональна надежности...


 
oldman ©   (2008-04-04 01:07) [7]


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


1. ТЗ
2. алгоритмизация, блок-схема и т.д.
3. мат-код
4. дизайн-код
5. собственно дизайн  в соответствии с ТЗ
6. хелп
7. пиво, подарки, зарплата, поцелуи (возможно плевки, пинки, проклятья)
8. ТЗ на доработку, корректировку, исправление багов
9. goto 2


 
Loginov Dmitry ©   (2008-04-04 01:12) [8]

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


Какое-то жуткое сочетание получается: убогая внешне, удобная, надежная, функциональная. Довольно трудно представить :)


> Да и функциональность очень часто обратно пропорциональна
> надежности...


нужно стремиться к надежности!


 
djaUser   (2008-04-04 01:19) [9]

Насчет красоты DrPass"а поддерживаю.
Тот же fooBar, сколько раз ставил, но из-за простоты интерфеса все равно использовал другие плеера.
Да и вот кстати писал бы свой плеер, начал с дизайна, когда уже все нарисовал и половину кода слепил тут же начали вырисовываться новые желаемые требования, например увеличить полосы эквалайзера и т.п. и пришлось перерисовывать все. Но с другой стороны и код начинать писать, когда все голо и для теста стандартные убогие визуальные компаненты берешь то же не удобно. Дилема прям..


 
Ega23 ©   (2008-04-04 01:20) [10]

с ТЗ надо начинать, с ТЗ.


 
djaUser   (2008-04-04 01:22) [11]

oldman, извиняюсь, забыл написать что сам пишу и сам себе так сказать ТЗ в голове даю... и конечно же и в данном случаи будет goto 2 ;)


 
Германн ©   (2008-04-04 02:06) [12]


> djaUser   (04.04.08 01:22) [11]
>
> oldman, извиняюсь, забыл написать что сам пишу и сам себе
> так сказать ТЗ в голове даю

В таком случае это не подходит к "разработке серъзных программ".
Серьёзные программы нынче редко пишутся одиночками.


 
Семеныч   (2008-04-04 05:22) [13]

> djaUser   (04.04.08 00:11)  

1. Кто реально занимается разработкой серъезных программ, начинают с написания документа под названием "ТЗ" или "Постановка задачи". В нем оговаривается функционал, а если надо - то и интерфейс тоже. И если этот документ еще и будет подписан заказчиком, то совсем хорошо.

2. Кому нужна красивая программа, если функционально она делает не то и/или не так, как должна?

Кому нужна НЕкрасивая программа, если функционально она делает именно то и именно так, как должна?

Так что функционал важнее. А бантики можно привесить и позже.


 
Wood   (2008-04-04 06:48) [14]

Скажите, плз, а поддержка тем Win.XP (обязательное включение в проект ХPmanifest) это "бебеха"?


 
Loginov Dmitry ©   (2008-04-04 07:55) [15]

> Насчет красоты DrPass"а поддерживаю.
> Тот же fooBar, сколько раз ставил, но из-за простоты интерфеса
> все равно использовал другие плеера.


плеер это разве "серьезная программа"? Их как грязи! Только ленивый их не пишет! И отличаются они только красивым интерсейсом, а функциональность у всех сходная (и все поголовно требуют каких-то кодеков ;)


> [14] Wood   (04.04.08 06:48)
> Скажите, плз, а поддержка тем Win.XP (обязательное включение
> в проект ХPmanifest) это "бебеха"?

скорее нет, чем да.
К примеру в Delphi2007 ХPmanifest всегда встраивается в приложение, но поскольку все компоненты с ним ведут себя корректно, то отключать его нет смысла (в Delphi7 отображение многих компонентов при подключении ХPmanifest портилось).


 
Смирнов   (2008-04-04 08:06) [16]


> поддержка тем Win.XP (обязательное включение в проект ХPmanifest)
> это "бебеха"?

сами темы ХР - это "бебеха" от MS.


 
TUser ©   (2008-04-04 09:08) [17]

> Какое-то жуткое сочетание получается: убогая внешне, удобная, надежная, функциональная. Довольно трудно представить :)

консольные


 
tesseract ©   (2008-04-04 10:13) [18]


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


Нарисовать классовую структуру, расписать функционал. Интерфейс в последню очередь продумываеться.


 
Torry ©   (2008-04-04 10:35) [19]

Начинать надо с иконки и диалога "About", все остальное - от лукавого :-)


 
DVM ©   (2008-04-04 10:45) [20]


> интерфейс "со всеми бебехами" никому не нужен.

Неправда это. Интерфейс для конечного пользователя играет не меньшую роль, чем функционал. Не думаю. что пользователю сильно понравится суперфункциональная программа, где все действия требуется задавать, например, ключами в командной строке.


 
Kolan ©   (2008-04-04 10:48) [21]

Устройся на работу.


 
Alkid ©   (2008-04-04 11:09) [22]


> Устройся на работу.

Поправлю - устройся на работу в ХОРОШУЮ фирму, где тебя научат чему надо, а не загубят невинную душу. Рекомендую всяческие новые конторы, в т.ч. западные. Не рекомендую гос.конторы - там такое болото, как правило...

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


 
Илья Корстин   (2008-04-04 11:11) [23]


> Устройся на работу.

И пойми как не надо делать :)


 
Игорь Шевченко ©   (2008-04-04 11:11) [24]

Серьезные программы это миф. Их нету. Начинать надо с поиска в интернете - все программы давно уже написаны.

DVM ©   (04.04.08 10:45) [20]


> Неправда это. Интерфейс для конечного пользователя играет
> не меньшую роль, чем функционал. Не думаю. что пользователю
> сильно понравится суперфункциональная программа, где все
> действия требуется задавать, например, ключами в командной
> строке.


Если пользователь будет на нее любоваться, то не понравится. Если пользователь будет с ней работать, то понравится.

GUI мастдай.


 
VICTOR_   (2008-04-04 11:12) [25]

Как вариант - на основе реально реализованного проекта.
1. Проанализировать предметную область.
2. Проанализировать программы с аналогичной планируемой функциональностью.
3. Написать временной план разработки программы.
4. Составить плановый бюджет проекта.
5. Написать спецификацию.
6. Моделирование системы (основных функциональных блоков,  основных алгоритмов, базы данных)
7. Нарисовать прототип интерфейса.
8. Создание плана тестирования готового продукта
9. Ведение разработки, параллельное тестирование готовой функциональности.
10. Запуск продукта в пробную эксплуатацию у клиента
11. Доработка согласно замечаний, предложений и ошибок
12. Написание пользовательской документации
13. Запуск в эксплуатацию.
В принципе на любом этапе выполнялась и работа из предыдущих этапов, но в ограниченной степени согласно п.3, п.4., п.5

Еще можно почитать и использовать одну из методик разработки: MSF, RUP, XP, классическую и т.п.


 
morgoth ©   (2008-04-04 11:31) [26]

1. ТЗ


 
DVM ©   (2008-04-04 11:34) [27]


> Игорь Шевченко ©   (04.04.08 11:11) [24]


> GUI мастдай.

наверное эти строки написаны из текстового браузера Lynx?


> Если пользователь будет на нее любоваться, то не понравится.
>  Если пользователь будет с ней работать, то понравится.

Хороший интерфейс - это не только красивости, как вы понимаете, это еще и удобство работы. Содать действительно хороший интерфейс ничуть не проще, чем "движок". И времени занимает не меньше зачастую, даже в Delphi или MS C#, о MS VC я вообще молчу.


 
Alkid ©   (2008-04-04 11:40) [28]


> GUI мастдай.

Слишком однозначно.
GUI/CLI - всё от задачи зависит.


 
VAleksey   (2008-04-04 11:50) [29]

Делать так, или делать сяк...
Вопрос не имеет смысла, т.к. кодить приходится в разных условиях с разной степенью детализированности задачи, с разными знаниями предметной области, разными заказчиками и т.п.
По сути в литературе упоминаются два типа жизненных цикла разработки ПО. Это каскадный и циклический.
В реальных условиях, чаще всего работает циклический.
Каскадный применяется для систем с жестко заданным функционалом и/или повышенным требованиям к надёжности.


 
Eraser ©   (2008-04-04 11:59) [30]


> djaUser   (04.04.08 00:11) 

смотя что за программа.. если продукт "на заказ" - "под ключ", то это одно.. здесь нужно и четкое ТЗ, и аналитика, а если это шаровара/коробочный продукт, то подход совершенно иной.
главное опередились с архитектурой и функционалом. т.е. можно, грубо говоря, выписать на листок все ключевые функции и требования к программе, обязательно с учетом расширяемости.. и уже на основе этого работать дальше.

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


 
Игорь Шевченко ©   (2008-04-04 12:28) [31]

DVM ©   (04.04.08 11:34) [27]


> наверное эти строки написаны из текстового браузера Lynx?


Нет, строки написаны из IE - я не вижу причин ограничивать себя в выборе приложений. Кроме того, треп на форумах это не работа.


> Хороший интерфейс - это не только красивости, как вы понимаете,
>  это еще и удобство работы. Содать действительно хороший
> интерфейс ничуть не проще, чем "движок". И времени занимает
> не меньше зачастую, даже в Delphi или MS C#, о MS VC я вообще
> молчу.


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

Alkid ©   (04.04.08 11:40) [28]


> Слишком однозначно.
> GUI/CLI - всё от задачи зависит.


А кто ж спорит ?

Когда народ запускает Winzip для распаковки архива - это уже от избытка времени.

Кроме того, за семь лет работы с VAX/VMS, где, пардон, CLI довольно развитый, я как-то не ощутил особого неудобства по сравнению с GUI.
Единственное, что в GUI по-настоящему удобно, это двухпанельный интерфейс файловых менеджеров а-ля Norton Commander и FAR - набирать команду copy скучно.


 
Игорь Шевченко ©   (2008-04-04 12:29) [32]

VAleksey   (04.04.08 11:50) [29]


> В реальных условиях, чаще всего работает циклический.


Агаблин. Сделали - не работает. И цикл по новой.


 
Ega23 ©   (2008-04-04 12:30) [33]


> Единственное, что в GUI по-настоящему удобно, это двухпанельный
> интерфейс файловых менеджеров а-ля Norton Commander и FAR
> - набирать команду copy скучно.


Гиперссылки ещё.


 
clickmaker ©   (2008-04-04 12:40) [34]


> Как правильно писать софт

За столом, в удобном кресле, соблюдая правильность посадки. Иначе с годами будут проблемы с позвоночником и суставами


 
Kolan ©   (2008-04-04 12:41) [35]

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

+1. С другой стороны в армию не возьмут :)


 
Ega23 ©   (2008-04-04 12:49) [36]


> +1. С другой стороны в армию не возьмут :)


Поверь, уж лучше во второй раз в армию, на колёсах из-за проблем с позвоночником сидеть. :(


 
Циркуль   (2008-04-05 00:22) [37]

По поводу проектирования GUI - стоит почитать "Психбольница глазами пациента". В двух словах мораль книжки - детальное проектирование интерфейса должно быть выполнено до написания первой строки кода. И при том проектировать интерфейс (в идеале) ни в коем случае не дожен программист. :)

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


 
Andy BitOff ©   (2008-04-05 00:27) [38]

> Циркуль   (05.04.08 00:22) [37]

+500
Истина.
Книжку не читал, но после такой анатации обязательно прочту.


 
Циркуль   (2008-04-05 00:33) [39]

Пардон, название книги - "Психбольница в руках пациентов", автор Алан Купер :)


 
Andy BitOff ©   (2008-04-05 00:34) [40]

> Циркуль   (05.04.08 00:22) [37]

Что-то яндекс и гугл молчат по поводу такого названия. Может сцылочку?



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

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.02 c
15-1207718318
@!!ex
2008-04-09 09:18
2008.05.25
Утилита для синхронизации.


2-1209578537
pro
2008-04-30 22:02
2008.05.25
Разъясните решение!


2-1209473190
worldmen
2008-04-29 16:46
2008.05.25
Прикрутить hlp файл к проге.


2-1209113412
ZENsan
2008-04-25 12:50
2008.05.25
Куда девается памаять?


8-1180420857
Demek
2007-05-29 10:40
2008.05.25
Экспорт картинки в 3ds