Как много вы планируете, прежде чем начать писать код? - PullRequest
12 голосов
/ 12 июня 2009

Когда вы начинаете новый проект, как вы планируете его или сколько времени это займет?

псевдокод? Блок-схема?

Вы пытаетесь продумать все классы заранее?

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

Ответы [ 16 ]

1 голос
/ 12 июня 2009

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

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

1 голос
/ 12 июня 2009

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

Во всяком случае, это зависит от сроков проекта для меня, сроки, конечно, самое важное.

1 голос
/ 12 июня 2009

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

0 голосов
/ 06 июля 2011

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

По мере накопления опыта необходимость рисовать обширные блок-схемы и выписывать псевдокод из целой функции станет более избыточной, однако, прежде чем вы достигнете этой точки, я НАСТОЯТЕЛЬНО предлагаю вам спланировать план перед тем, как писать код.

0 голосов
/ 12 июня 2009

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

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

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

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

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

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

0 голосов
/ 12 июня 2009

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

...