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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Методы разработки программ 
:(
    Опции темы
Mastodont
Дата 4.4.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




На Вики нашел такой метод:
Цитата

Разработка программы ведётся пошагово, методом «сверху вниз».

Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «затычки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.


Что скажете насчет этого? Кто какими методами программы разрабатывает?
PM MAIL   Вверх
DarkProg
Дата 4.4.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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




Ну я так не пишу - хотя надо попробовать ради эксперимента и потом усовершенствовать собственный метод.
Я обычно  начинаю писать сначала, т.е. вход в систему или что-то подобное, а потом разрабатываю все формы(детальный дизайн каждой, обычно как я их разработал так они и остаются, за исключением случаев когда выясняется что что-то впоследствии оказалось дублем или вообще бессмысленным), потом каждый модуль по очереди в порядке нужности, а если есть 2 и более взаимосвязанных модуля, т.е. одни дёргают данные от других и возможность частичной проверки в принципе бессмысленна, то пишу всё скопом, потом трасиировка и получаю рабочий полностью код, а потом ещё сколько-то дней на доработку сообщений типа "эй, пользователь так нельзя, сюда не лезь и т.п.". А потом прогу можно дать какому-нить user'u тупо сказав "потыкай и попробуй разобраться" с небольшим пояснением что прога должна делать, потом опять отладка и всё  - обычно после этого прогу можно считать готовой.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
NightmareZ
Дата 4.4.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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




Цитата(Mastodont @  4.4.2010,  13:04 Найти цитируемый пост)
Что скажете насчет этого?


Плохо. Потому что крайность.

Цитата(Mastodont @  4.4.2010,  13:04 Найти цитируемый пост)
Кто какими методами программы разрабатывает?


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


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
Mastodont
Дата 5.4.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата
Плохо. Потому что крайность.

Почему крайность? 
PM MAIL   Вверх
NightmareZ
Дата 5.4.2010, 20:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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




Цитата(Mastodont @  5.4.2010,  17:16 Найти цитируемый пост)
Почему крайность? 


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


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
k0rvin
Дата 5.4.2010, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(NightmareZ @ 5.4.2010,  20:28)
Цитата(Mastodont @  5.4.2010,  17:16 Найти цитируемый пост)
Почему крайность? 


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

просто ты нихрена не понял из приведенной цитаты.
повтор важной части:
Цитата

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



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


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
DarkProg
Дата 5.4.2010, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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




Цитата(NightmareZ @  5.4.2010,  20:28 Найти цитируемый пост)
Потому что очень-очень редко бывает так, что структура программы изначально досконально известна. Я, например, за свою жизнь такого ни разу не встречал. 

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


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
NLspieler
Дата 5.4.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




На самом деле это очень хорошая методика.

Но я обычно делаю все наоборот.
Мне кажется так удобнее.

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

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

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

И только потом собираю из этого готовую программу/скрипт.
 


PM MAIL   Вверх
JackYF
Дата 5.4.2010, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р




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


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
NightmareZ
Дата 5.4.2010, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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




Цитата(k0rvin @  5.4.2010,  20:46 Найти цитируемый пост)
просто ты нихрена не понял из приведенной цитаты.


Просто ты нихрена никогда не писал. Потому веришь в розовых слоников.


Цитата(DarkProg @  5.4.2010,  20:48 Найти цитируемый пост)
Я думаю на это нужно потратить два месяца, чтобы всё досконально расписать, а потом садится писать.


Ты неправильно думаешь.


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
kemiisto
Дата 5.4.2010, 23:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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




Цитата(NightmareZ @  4.4.2010,  15:20 Найти цитируемый пост)
Плохо. Потому что крайность.

Где ты там крайность увидел?

"Top-down" design (проектирование "сверху-вниз") - характерная черта структурного программирования. Когда Дейкстра (+Вирт, ...) предложили эту методологию, ООП не существовало. И речь, конечно же, шла о процедурном программировании. Тем не менее, методы - это теже процедуры. Так что их следует писать "сверху-вниз".

Это раз. Два - деление программы на модули. Это тоже проектирование "сверху-вниз".
Цитата(NightmareZ @  4.4.2010,  15:20 Найти цитируемый пост)
Пишу ядро.

Вот то-то и оно. Ядро ты как-то выделяешь. Опять-таки "сверху-вниз". smile 

Если включить в рассмотрение "мейнстримное" ООП, картина несколько меняется. Появляется место для "bottom-up" design (проектирование "снизу-вверх").

Обычно поступаем так:
  • Определяемся с требуемой функциональностью. Это по-определению top level.
  • "Top-down" design -> делим на объекты.
  • Определяемся с классами. Вот тут да, "bottom-up" design.
  • Но когда пишем каждый отдельный метод - "top-down" design.
  • Юнит-тестирование - "bottom-up" design. Тестируется минимально возможный для тестирования компонент.
Ещё структурная обработка исключений упрощает "bottom-up" design. "Кидаем" "внизу" исключение, а там потом его отловим где-то повыше.

Короче, смешано оно обычно получается. smile 

Это сообщение отредактировал(а) kemiisto - 5.4.2010, 23:55


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


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008




Я вот пишу справа на лево.
У меня "Right Left" дизайн.
Разработка всего сразу идёт паралельно и первым делом пишется то, что собственно пишется. Где оно находится по вертикали меня абсолютно не заботит, так как каждый раз стараюсь держать в голове не столь хитрую схему что где куда. Есть TODO лист, он делится на мажорный и минорный на которые каждый раз смотрю и черкаю. Если какая-то штука на экваторе требует переписания северного и южных полюсов переписываю всё. Переписываю всё постоянно. У меня ещё ни разу не было идеальных структур, поэтому я каждый раз всё меняю. Перехожу на другие системы шаблоны, бывает даже языки. Оптимизация идёт в процессе разработки. Тесты я не люблю, поэтому их вообще не делаю. Разве что когда мне кажется что оно более менее работает TODO лист бесконечно заполняется снова и снова...
PM   Вверх
NightmareZ
Дата 6.4.2010, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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




Цитата(kemiisto @  5.4.2010,  23:53 Найти цитируемый пост)
Короче, смешано оно обычно получается.


Ну я какбэ об этом и говорил.


Цитата(kemiisto @  5.4.2010,  23:53 Найти цитируемый пост)
Когда Дейкстра (+Вирт, ...) предложили эту методологию, ООП не существовало. И речь, конечно же, шла о процедурном программировании. Тем не менее, методы - это теже процедуры. Так что их следует писать "сверху-вниз".


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


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
RockClimber
Дата 6.4.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(A5uKa @  6.4.2010,  01:01 Найти цитируемый пост)
Я вот пишу справа на лево.
У меня "Right Left" дизайн.

Во-во, у меня то же самое. Только в итоге почему-то получается как у той секретарши, которая печатала со скоростью 1200 знаков в минуту  smile 


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
kemiisto
Дата 7.4.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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




Цитата(NightmareZ @  6.4.2010,  02:08 Найти цитируемый пост)
Ну я какбэ об этом и говорил.

Согласен. Я просто развил мысль.

Цитата(NightmareZ @  6.4.2010,  02:08 Найти цитируемый пост)
Я, конечно, их всех уважаю, но подходы теоретиков и практиков далеко не всегда совпадают.

Тут у меня только один вопрос: "классиков" читали? Или как обычно, "Пастернака не читал, но презираю"? smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


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

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


 




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


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

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