优秀软件设计和实现的示例

发布于 2024-07-13 23:41:37 字数 1542 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

水染的天色ゝ 2024-07-20 23:41:37

航天飞机软件?

他们写了正确的东西

但是该软件做了多少工作
这并不是它引人注目的原因。 什么
令人瞩目的是
软件有效。 这个软件从来不
崩溃。 它永远不需要
重新启动。 该软件没有错误。
它是完美的,像人类一样完美
众生已成就。 考虑这些
stats :最近三个​​版本
程序——每42万行已长
每个只有一个错误。 最后 11
该软件的版本共有
共 17 个错误。 商业计划
等效复杂度为 5,000
错误。

The Space Shuttle software?

They Write the Right Stuff

But how much work the software does is
not what makes it remarkable. What
makes it remarkable is how well the
software works. This software never
crashes. It never needs to be
re-booted. This software is bug-free.
It is perfect, as perfect as human
beings have achieved. Consider these
stats : the last three versions of the
program -- each 420,000 lines long-had
just one error each. The last 11
versions of this software had a total
of 17 errors. Commercial programs of
equivalent complexity would have 5,000
errors.

岁月如刀 2024-07-20 23:41:37

.NET 框架。

  • 当我“点入”一个命名空间并且它的成员正是我所期望的时,这真是太棒了。
  • 它“正常工作”。

The .NET Framework.

  • It's great when I "dot into" a namespace and its members are exactly what I would expect.
  • It "Just Works".
无畏 2024-07-20 23:41:37

特克斯?

Knuth 仍然提供对已确认错误的奖励


顺便说一句:我不确定高德纳是否赞同任何流行语机制来进行真正稳健的开发。 不知道他是怎么做到的。 也许只是注重细节。

TeX?

Knuth is still offering the reward for confirmed bugs.


BTW: I'm not sure that Knuth subscribes to any buzzword-mechanism for doing really robust development. No idea how he does it. Maybe just attention to detail.

十六岁半 2024-07-20 23:41:37

升压库

Boost library

撩人痒 2024-07-20 23:41:37

许多其他帖子提到的程序尚未通过 TDD 实现,因此没有给出“我真的很想深入研究并看看好的 TDD/SOLID/等是什么样子”的答案。 例如,我非常肯定 Apache HTTPD Server 和 Firefox 的来源甚至从未见过 TDD。 我只是浏览了一下他们的源代码,测试文件夹中只有几个小文件,而且生产代码看起来也不像是用 TDD 或遵循 SOLID 编写的。

例如 Fitnesse 是由 SOLID 的发明者使用 TDD 编写的。 这应该是此类代码的一个很好的参考,尤其是代码的较新部分(在他的书中 干净的代码,Bob叔叔有一些来自Fitnesse的不良代码示例,然后他清理了这些示例,因此不一定Fitnesse中的所有代码都是干净的)。

我还会加入我自己的项目,Dimdwarf Application Server,它是 100% 使用 TDD 编写的/ BDD 并尝试编写尽可能干净的代码(遵循 SOLID 等)。 那里也有一些丑陋的部分(主要是任务调度和垃圾收集),但这些部分仍在工作中,当这些功能完成时它们将被清理。

Many of the other posts mention programs, which have not been implemented with TDD, and as such do not give an answer to "I'd really like to dig in and see what good TDD/SOLID/etc. looks like." For example, I'm quite positive that the sources of Apache HTTPD Server and Firefox have never even seen TDD. I just browsed a little their sources, and there were only a couple of small files in the test folders, and the production code didn't look like it was written with TDD or by following SOLID either.

For example Fitnesse has been written using TDD by the inventor of SOLID. That should be a good reference of what such code looks like, especially the newer parts of the code (in his book Clean Code, Uncle Bob has some examples of bad code from Fitnesse, which he then cleans up, so not necessarily all code in Fitnesse is clean).

I'll also throw in my own project, Dimdwarf Application Server, which has been written 100% with TDD/BDD and by trying to write as clean code as possible (following SOLID etc.). There are some ugly parts there as well (mostly in task scheduling and garbage collection), but those parts are still under work and they will be cleaned up by the time those features are complete.

顾忌 2024-07-20 23:41:37

谷歌浏览器

Google Chrome

灼痛 2024-07-20 23:41:37

Firefox 2.0

  • 简单的用户界面
  • 强大的功能
  • 非常稳定

Firefox 2.0

  • Simple UI
  • Robust functionality
  • Very stable
执笔绘流年 2024-07-20 23:41:37

阿帕奇httpd。

  • 干净
  • 、简单、
  • 功能

另外:Graphviz - 强大、一致性和简单性的绝佳示例。

我见过的最好的计件代码就是礼节; 它已被加工成真正优雅和美丽的东西。 但遗憾的是它必须保持匿名。

顺便说一句:任何可以简化的庞大接口/API,都不是按照定义设计的。 对于许多公司来说,又大又丑的界面只会变得更大更丑

保罗.

Apache httpd.

  • Clean
  • Simple
  • Functional

Also: Graphviz - an awesome example of power, consistency and simplicity.

The best piece code I ever saw was propriety; it had been worked into a thing of true elegance and beauty. But sadly it must remain anonymous.

BTW: Any huge interface/api that could be simplified, is not solidly designed by definition. And for many companies, big ugly interfaces only get bigger and uglier.

Paul.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文