【问题标题】:Examples of great software design and implementation [closed]伟大的软件设计和实施的例子[关闭]
【发布时间】:2010-10-08 06:02:56
【问题描述】:

我希望这不是重复...

您遇到过的设计和实施最扎实的软件系统/框架/应用程序是什么?

似乎 TDD、SOLID 原则、OO 设计模式以及类似的东西可以很容易地在播客和博客上使用非常简单的示例进行理论化,但是很难想象开发完全符合这些标准的大型系统,而无需代码爆炸。在我的公司,由于时间限制,做完整的 TDD 似乎几乎不可能。

如果有人可以向我指出任何好的开源项目,我真的很想深入研究一下,看看有什么好的 TDD/SOLID/等。好像。谢谢。

【问题讨论】:

    标签: design-patterns oop open-source tdd solid-principles


    【解决方案1】:

    航天飞机软件?

    They Write the Right Stuff

    但是软件的工作量是多少 不是什么让它显着。什么 值得注意的是 软件工作。这个软件从来没有 崩溃。它永远不需要 重新启动。该软件没有错误。 它是完美的,像人类一样完美 众生已达。考虑这些 stats : 的最后三个版本 程序——每420,000行长期拥有 每个只有一个错误。最后11 该软件的版本共有 17 个错误。的商业节目 等效复杂度将有 5,000 错误。

    【讨论】:

    • 我似乎记得这段代码是用大量正式的证明方法开发的。有人可以确认或否认吗?
    【解决方案2】:

    .NET 框架。

    • 当我“点入”一个命名空间并且它的成员正是我所期望的时,这很棒。
    • 它“有效”。

    【讨论】:

      【解决方案3】:

      TeX?

      Knuth 仍在提供 reward for confirmed bugs


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

      【讨论】:

        【解决方案4】:

        Boost 库

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

          • Andy 要求两件事:健壮的软件示例,以及使用 TDD 开发的非常好的代码示例。一些更好的例子不使用 TDD 的事实并不能证明 TDD 不好,但确实证明它没有必要。 YMMV;最近以 TDD 的名义正式化;等等……
          【解决方案6】:

          谷歌浏览器

          【讨论】:

          • 我喜欢 chrome,但 linux 的爱在哪里?这是我对 chrome 唯一真正的问题。
          • 他们修复了测试版中的所有崩溃/冻结错误吗?
          【解决方案7】:

          Firefox 2.0

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

          【讨论】:

          • 等等,什么?机器人?稳定的?不可能,何塞!
          • 对我来说很好用...肯定比 Internet Explorer 6/7 更好
          • @Element,一切都比 Internet Explorer 6/7 好。
          【解决方案8】:

          Apache httpd。

          • 干净
          • 简单
          • 功能性

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

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

          顺便说一句可以简化的任何巨大的界面/api,都不是根据定义进行可靠设计的。而对于许多公司来说,丑陋的大界面只会变得更大uglier

          保罗。

          【讨论】:

            猜你喜欢
            • 2010-09-10
            • 1970-01-01
            • 2011-01-30
            • 2011-10-07
            • 2016-02-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-24
            相关资源
            最近更新 更多