我一直在阅读完整的代码,但它谈到的其中一件事是 PDL - 一种更高级别的设计语言,您可以在使用所选语言进行编码之前编写每个例程。
我想知道是否有人在现实生活中真的这样做过?它说的另一件事是将代码中的每一行 PDL 作为注释。这肯定是过于冗长的评论吗?
我从来没有在现实生活中使用过 PDL,除了可能在大学课程中使用类似 ISWIM 的东西,但我在编写自己的代码时从未使用过它。
当然,如果您首先用伪代码编写每个例程/方法/任何内容,您最终会浪费很多时间吗?
我一直在阅读完整的代码,但它谈到的其中一件事是 PDL - 一种更高级别的设计语言,您可以在使用所选语言进行编码之前编写每个例程。
我想知道是否有人在现实生活中真的这样做过?它说的另一件事是将代码中的每一行 PDL 作为注释。这肯定是过于冗长的评论吗?
我从来没有在现实生活中使用过 PDL,除了可能在大学课程中使用类似 ISWIM 的东西,但我在编写自己的代码时从未使用过它。
当然,如果您首先用伪代码编写每个例程/方法/任何内容,您最终会浪费很多时间吗?
当然,如果您首先用伪代码编写每个例程/方法/任何内容,您最终会浪费很多时间吗?
一点也不——事先计划好你要做什么可以节省时间。它迫使您在最简单的阶段(即在您真正做任何事情之前)仔细思考和重构。
您不必完全编写每个例程 - 只需关键步骤,即可为您提供足够的心理地图,了解每个部分将做什么,以及您是否已计划好所需的一切。
不过,我从来没有听说过 PDL(程序设计语言?),而且 - 看过之后 - 它确实看起来很冗长、丑陋且费时费力,我不建议使用它 - 坚持简洁但易读伪代码。
I used it in the 1980s when I worked in defense. PDL is overkill for a solo programmer's weekend project of 1-1000 lines of code. But if you are developing a 10k-100k line of code system with a team of a dozen software engineers, it is excellent for defining preliminary software designs in a waterfall methodology. Also, it was designed for compliance with MIL-STD software development requirements.
我记得我在大学一年级软件工程学位期间遇到的一位讲师拒绝帮助学生,如果他们至少没有尝试过某种伪代码。
很多人曾经抱怨过它,但这是我从他那里学到的一项技能,我发现自己在设计软件时大部分时间都在使用它。编码时,我旁边总是有一个垫子和笔!:)
是的,我愿意。不过,直到我读了这本书,我才意识到它被称为 PDL。我称之为伪代码。伪代码和 PDL 之间的区别并不大 - PDL 避免使用目标语言结构,这在实践中并不是什么大问题。
如果例程不那么简单,我会从 PDL 开始。
顺便说一句,McConnell 在 Code Complete 的第二版中使用 word 伪代码而不是 PDL。
用伪代码编写东西非常有用,您最终会得到已经编写好的文档;-)。它将您的意图与您的实现脱钩,这很多时候是针对您的语言或环境的优化黑客。当您将伪代码保留在文档中时,将来的维护者或重构您的代码或翻译成其他语言的人会非常感谢您。我从来没有调用过 PDL,也是因为 Perl 中的 PDL 意味着 Perl 数据语言,这是一个非常有用的包,可以像在 R 中一样将大型数据集作为向量或矩阵处理。