Сколько планирования вы делаете, прежде чем начать кодировать?

голоса
12

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

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

Стараетесь ли вы думать все классы заранее?

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

Задан 11/06/2009 в 22:40
источник пользователем
На других языках...                            


16 ответов

голоса
11

Alot меньше, чем я должен

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

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

Редактировать основном я получить в таком роде разбивают клавиатуры столовых при игре с большим / комплексом. Интересно посмотреть , насколько далеко получить , прежде чем вы поймете , что ваше «это в моей голове , так что это нормально» дизайн 100% испорчен.

Ответил 11/06/2009 в 22:44
источник пользователем

голоса
1

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

Ответил 11/06/2009 в 22:44
источник пользователем

голоса
1

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

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

Ответил 11/06/2009 в 22:44
источник пользователем

голоса
6

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

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

Кроме того, я буду писать заметки, детализирующие «основные черты» и «незначительные / пожелания функцию».

Ответил 11/06/2009 в 22:45
источник пользователем

голоса
0

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

Ответил 11/06/2009 в 22:45
источник пользователем

голоса
3

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

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

Однако, если это просто кодирование. Я обычно просто написать, что у меня на уме, и проверить его.

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

Это мое мнение.

Ответил 11/06/2009 в 22:46
источник пользователем

голоса
1

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

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

Ответил 11/06/2009 в 22:47
источник пользователем

голоса
1

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

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

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

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

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

Ответил 11/06/2009 в 22:47
источник пользователем

голоса
1

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

Ответил 11/06/2009 в 22:47
источник пользователем

голоса
1

Лично это зависит от объема и сложности проекта, сколько людей я работаю над этим, и общие ожидания по доставке.

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

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

Ответил 11/06/2009 в 22:48
источник пользователем

голоса
16

После того, как опыт МНОГО незавершенных проектов , я , как правило , реализовать упрощенную версию своих бизнес - процессов в мою личную методологию разработки.

Как правило, они следуют следующей структуре:

  1. Создать краткое поэтому у меня есть цель в виду.
  2. Реализовать диаграмму классов , чтобы понять данные я буду иметь дело.
  3. Реализовать все классы.
  4. Составление сценариев использования диаграммы очертить деятельности.
  5. Эшафот прецедентов disagram (в HTML для WebApps)
  6. Разводка эшафот, путем внедрения модульных тестов и здания, чтобы пройти их.
  7. Решает выпустить продукт для коммерческого успеха, то забудьте об этом.
Ответил 11/06/2009 в 22:58
источник пользователем

голоса
1

Я заварить кофе и ремесло пару бутербродов.

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

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

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

Ответил 11/06/2009 в 23:11
источник пользователем

голоса
3

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

  1. встретиться и приветствовать всех, участвующих в проекте
  2. принимать многочисленные записи в отношении предполагаемых требований
  3. создавать длинные маркированные списки требований высокого уровня
  4. начинает разрушаться требования высокого уровня в четко определенных детали
  5. начать заполнять Software шаблон требования Спецификация слова: SRS
  6. создать проволочные рамки в фотошопе, первенствует, или (мой любимый) Balsamiq
  7. перечислить данные, которые должны быть захвачены и начать строить из грубой схемы
  8. список из класса структур в UML
  9. определить сроки проекта
  10. бла бла бла
  11. написать код
  12. надеюсь, что то, что было предложено то, что все еще хочет, когда код завершения!

За последние несколько лет я следовал вместе с Agile (SCRUM) и принял совершенно иной подход.

  1. встретиться с владельцем продукта, чтобы услышать о задачах, которые будут построены
  2. разлагается история в задачи (основное планирование)
  3. назначить время для задач
  4. сделать некоторые более детальное планирование
  5. -> тест записи, написать код, чтобы пройти тест, рефакторинг -> проверить в танце
  6. продемонстрировать рабочий продукт / функции
  7. начать процесс снова

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

Имейте в виду, что есть время и место для обоих путей развития. Я не хотел бы создавать программное обеспечение Jet с использованием Agile!

Ответил 11/06/2009 в 23:41
источник пользователем

голоса
0

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

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

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

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

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

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

Ответил 12/06/2009 в 03:51
источник пользователем

голоса
1

IMO 5 минут планирования вперед = 1 час кодирования ....

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

Наиболее важная часть должна быть на схеме.

Остальные детали иногда могут позаботиться на лету.

Ответил 12/06/2009 в 04:35
источник пользователем

голоса
0

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

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

Ответил 06/07/2011 в 20:40
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more