Is there a "Large Scale Python Software Design" ?
aleaxit at yahoo.com
Fri Oct 22 09:46:29 CEST 2004
Jonathan Ellis <jbellis at gmail.com> wrote:
> What is the biggest system you have built with python personally? I'm
> happy to be proven wrong, but honestly, the most enthusiastic "testing
> solves all my problem" people I have seen haven't worked on anything
> "large" -- and my definition of large agrees with Alex's; over 100
> kloc, more than a handful of developers.
I have the experience, both with Python and with C++, and I can confirm
that test-driven development (with more code for tests, particularly
unit- but also system-/integration-/acceptance-, than code to implement
actual functionality) scales up.
The C++ system had about five times the number of developers and ten
times the code size for about the same amount of functionality (as
roughly measured in function points) as the Python system.
Type safety and const-correctness in the C++ system were of very minor
help; not 100% negligible, but clearly they were not pulling their
weight, by a long shot.
In both systems, the trouble spots came invariably where testing had
been skimped on, due to time pressures and insufficient acculturation of
developers to testing; the temptation to shirk is a bit bigger in C++,
where one can work under the delusion that the compiler's typechecks
compensate (they don't).
_Retrofitting_ tests to code developed any old how is not as effective
as growing the tests and code together. It appears to me that the
experience you relate is about code which didn't have a good battery of
unit tests to go with it.
Lastly, I'm still looking for systematic ways to test system integration
that are as effective as unit tests are for each single component or
subsystem; but that's an area where type and const checking are of just
about negligible help.
More information about the Python-list