2009-05-12 2 views
3

Я не хочу приглашать аргумент о том, полезен ли Псевдокод или нет здесь ... есть много вопросов, связанных с этим. Я считаю, что иногда писать псевдокод полезен, но одна вещь, которая появляется во все времена, - это то, как лучше всего это выразить?Написание псевдокода - лучшие практики?

Иногда я получаю нумерованный подход, в других случаях я буду использовать синтаксис стиля C, но большую часть времени это сочетание того, что я думаю лучше всего в то время. Это нормально, но через 6 месяцев, когда я снова посмотрю на это, не всегда так ясно, что это за намерение! Чтобы бороться с тем, что я недавно начал разделять страницу на две части и вниз, я напишу pidgin [Insert Language Here] и влево я напишу на действительно очевидном и подробном английском.

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

Заранее благодарен.

О, я знаю, что этот вопрос субъективен, и я сожалею, если это не намеченная цель SO, но это все еще правильный вопрос. На самом деле, действительно ли так много вопросов в вычислениях, которые имеют один правильный ответ? Я отвечу на самый полезный ответ как правильный.

ответ

5

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

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

+0

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

+0

Из любопытства, что вы предпочитаете на Python? –

+1

Мне нравится эта мантра «хороший псевдокод - это Python». –

1

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

3

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

+0

Никогда не удосужилось читать его, так что это на заказе, наряду с Прагматическим программистом. Пришло время читать их! – Stimul8d

+0

Да, вы действительно должны, вы будете рады, что у вас есть! :) Так я все-таки узнал о псевдокоде, и я действительно не нашел в нем какого-то другого учебника, подробно описывающего его. – Razzie

+0

Вы можете получить книгу от амазонки [http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670]. –

1

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

+0

Я поехал по этому маршруту несколько раз, но проблема в том, что когда вы на языке OO не получаете последовательного потока всего процесса, если ВСЕ, что вам нужно, доступно для объекта, который вы пишете, .. если это имеет смысл ?! – Stimul8d

1

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

+0

Хммм, никогда не сталкивался с этим раньше. Стоит посмотреть, хотя наверняка. Благодарю. – Stimul8d

1

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

Я думал, что я был слишком ленив, или просто против него по какой-то причине, но потом я нашел others think the same

+0

Я могу понять ваш вопрос, но я не пишу псевдокод, чтобы быть «чистым», я пишу его, чтобы убедиться, что у меня есть концепция/алгоритм прямо у меня в голове, прежде чем я начну. Кроме того, независимо от того, сколько времени вы планируете рефакторинг, если у вас нет какого-либо дизайна, вы не знаете, сколько рефакторинга вам может понадобиться. Вы МОЖЕТЕ получить 90% проекта, только чтобы понять, что вы «Раньше вы пропустили что-то, и вы, возможно, вернетесь на круги своя! Лошади для курсов, хотя. Я написал много программного обеспечения без псевдокода. Это зависит от того, насколько сложны вещи. – Stimul8d