Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Системный анализ, проектирование и UML > Разбор большой задачи на простые, по которым


Автор: КунгФуЧайник 28.11.2012, 13:03
Надесь, запостил в правильную ветку. 

В основном всегда так: нужно написать программу (даже небольшую), пишу кучу процедур-функций, проверки разные (от дурака, в основном), чтобы кнопка выбора файла была доступна, только если программно не найден файл и т.п. Так трачу день, два - и все равно никак не получу результат. Чувствую, что нет движения, что затянуло, как в болото. В результате через неделю бросаю.
Недавно было так: нужно написать внешнюю обработку (начинающий 1сник), после раздумий определил, какие процедуры ключевые, т.е. которые не просто дадут видимый результат, а приблизят работу к завершению (а все остальное - как бы надстройка, обвес, смысла от которого без этого "ядра" никакого, пустая трата времени). Далее, после того, как добавил в код такие процедуры, осторожно выбираю, какую процедуру написать следующей, чтобы меня опять не засосало в болото (до этого бывало даже так, что, не дописав одну процуедуру, брался за другую - потому что оказывалось, что для того, чтобы ее дописать, нужна другая процедура, либо результат, полученный от другой процуедуры, а та другая процедура еще и близко не написана). И так потихоньку продвигаюсь. Побочный эффект офигенный - чувствую, что не зря трачу время, выше самооценка, готов писать в режиме нон-стоп. 
Но опыта в построении списка задач таким образом у меня нет, поэтому все время скатываюсь к болотоу, стоит только перестать контролировать себя. Скорость в итоге очень низкая. Есть ли какие-нибудь правила, рекомендации, методики, чтобы научиться: 
определять, из каких задач состоит будущая программа, в какой последовательности их выполнять и какие выполнять в первую очередь, чтобы видеть, что разработка каждый день продвигается?

з.ы. Интересует "серьезная" разработка: крупные программные проекты на с, с++ и т.п. языках.

Автор: Cтpaнник 7.5.2013, 13:26
Ключевое для тебя понятие: декомпозиция.

А вообще, разработка идет обычно таким путем: Сбор требований -> Анализ -> Разработка архитектуры (подсистемы, отдельные функциональные модули...) -> Проектирование (классы, функции...) -> Кодирование -> Тестирование и отладка -> Сборка. И вот при таком порядке разбить даже большую работу на этапы с ясно обозначенными целями и критериями их достижения уже нетрудно. У тебя же, судя по всему, разработка начинается сразу с кодирования.....

Автор: ida 23.5.2013, 12:08
Цитата(КунгФуЧайник @ 28.11.2012,  14:03)
Интересует "серьезная" разработка: крупные программные проекты на с, с++ и т.п. языках.

Устройтесь на работу.
Там даже обезьяна за полгода научится )

Автор: КунгФуЧайник 23.5.2013, 17:16
Цитата(Cтpaнник @  7.5.2013,  13:26 Найти цитируемый пост)
декомпозиция

Про декомпозицию знаю. Но не достает практики, чтобы навык сформировать.

Цитата(ida @  23.5.2013,  12:08 Найти цитируемый пост)
Устройтесь на работу.

Не в моем провинциальном городе. И не с моим скудным навыком программирования.

Автор: ida 30.5.2013, 23:15
Цитата(КунгФуЧайник @ 23.5.2013,  18:16)
Не в моем провинциальном городе. И не с моим скудным навыком программирования.

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

Автор: КунгФуЧайник 31.5.2013, 12:21
Цитата(ida @  30.5.2013,  23:15 Найти цитируемый пост)
тогда вас не интересует серьезная разработка, не обманывайте ) 

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)