Re: Timeless Classics of Software Engineering

From: <eric.nospam.hamilton_at_hp.com>
Date: Fri, 24 Sep 2004 16:39:33 GMT
Message-ID: <95Y4d.11639$9e.5698_at_news.cpqcorp.net>


>> > The other essential on my book case is Lakos' "Large Scale C++
>> > Software Design".  It's applicable to any language and has enough
>> > rationale that's grounded in real development practices and the
>> > problems of large scale projects that I think it's relevant to the
>> > original topic.

That quote was mine, so I'll reply.

> I am suprised you say it's applicable to any language. The advice
> about cyclic dependencies certainly is but I find much of the advice
> is specific to C++, such as #includes, use of fwd class decls etc. But
> that's ok coz it is supposed to be for C++ developers.

A better way to express what I meant might be to say that the key concepts in the book are applicable to large scale software projects independent of language.

I mention applicability to other languages in the belief that people doing projects in languages other than C++ can benefit. My personal experience is with applying those principles, particularly the principles of physical design, to the rearchitecture of a large body of ANSI-C code (the HP-UX kernel).

> IMO it is a classic but the evolution of C++ has caused it to become
> somewhat dated. That is why I give it a qualified recommendation.

Fair enough. Because I'm more interested in the concepts and less in the C++ implementation details, I didn't particularly notice. If someone reads the book for C++ specifics it probably is dated. Thanks for pointing that out.

> The main ideas are certainly important and AFAIK are not covered by
> any other text.

Not AFAIK either. If one wanted to make a timeless and more general version you could factor out the following pieces:

  • All of Part II Physical Design Concepts (Chaps 3-7)
  • Chapter 8: Architecting a Component
  • Section 10.2: Function Definitions

Levelizing the contents is left as an exercise for the reader :).

Thanks for the interest in the book, the discussion, and pointing out the issues for anyone who reads it from the viewpoint of modern C++. I hope that this richer understanding may entice more people to read the book and avoid disappointments for those who do.

Eric Received on Fri Sep 24 2004 - 18:39:33 CEST

Original text of this message