views:

973

answers:

8

I hope this isn't a duplicate...

What is the most solidly designed and implemented software system/framework/application that you've come across?

It seems like TDD, SOLID principles, OO design patterns, and things like that can be easily theorized on podcasts and blogs using really simple examples, but it's hard to imagine developing large systems that fully live up to these standards, without an explosion of code. At my company, doing full TDD seems almost out of the question with our time constraints.

If anyone can point me to any good open-source projects, I'd really like to dig in and see what good TDD/SOLID/etc. looks like. Thanks.

+2  A: 

Boost library

Vinay
A: 

Google Chrome

Vinay
I am enjoying chrome but where is the linux love at? That is my only real problem with chrome.
Berek Bryan
and have they fixed all the crashing/freezing bugs from the beta?
Steven A. Lowe
+4  A: 

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.

dmckee
+4  A: 

The .NET Framework.

  • It's great when I "dot into" a namespace and its members are exactly what I would expect.
  • It "Just Works".
tsilb
A: 

Firefox 2.0

  • Simple UI
  • Robust functionality
  • Very stable
Element
Wait, what? Robost? Stable? No way, José!
Konrad Rudolph
Works fine for me... certainly better than internet explorer 6/7
Element
A: 

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.

Paul W Homer
+5  A: 

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.

Evgeny
I seem to recall that this code was developed with a lot of formal proof methodology. Can any one confirm or deny that?
dmckee
+2  A: 

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.

Esko Luontola
Andy asks for two things: examples of robust software, and examples of really good code developed using TDD. The fact that some of the better examples don't use TDD doesn't prove that TDD isn't good, but does prove that it isn't necessary. YMMV; recent formalization under the name TDD; etc...
dmckee