Books (Sort of OT)

M

Michael

Guys,
I've just finished reading Design Patterns and have been over whelmed by how
clever some people are :)
Are there any other books on a similar vein worth reading, Managing large
scale projects, readable data structures and extensibility.
Also when you start a progrm project from scratch, how do you lay it out?
I've been drawing object interactions on a a0 piece of paper, is this the
way others do it, or is there any good software for doing this??

Regards

Michael
 
V

Victor Bazarov

Michael said:
Are there any other books on a similar vein worth reading, Managing large
scale projects, readable data structures and extensibility.

"Advanced C++" by Coplien (old but good) -- OOP and OOA as applied to C++
"Modern C++ Design" by Alexandrescu -- templates
"Large Scale C++ Software Design" by Lakos -- a very "how-to" book, not all
agree with all recommendations

And just go to www.accu.org, see their book review section and choose the
ones you think you might want to tackle next.

For me, reading about techniques people use is often less rewarding than
doing it. To you it can be different, of course. You can always beging
with the bibliography section of the last book you just finished...
Also when you start a progrm project from scratch, how do you lay it out?

There is no single approach to this, besides, it's better asked in
comp.software-eng than here.
I've been drawing object interactions on a a0 piece of paper, is this the
way others do it, or is there any good software for doing this??

Yes. Read about UML. The main advantage is that it's understood by many
and that often the software can generate some initial C++ code for you.

More on this -- ask in comp.object.

Victor
 
C

Claudio Puviani

Michael said:
Guys,
I've just finished reading Design Patterns and have been over
whelmed by how clever some people are :)

Keep in mind that -- as they are very honest about -- the GoF only catalogued
those patterns; they didn't invent them. Also, those patterns typically evolved
over time -- and often independently in more than one place -- and with many
people contributing improvements. It may look like genius when it's all presented
in a lump, but it's really the result of a lot of collective sweat. :)
Are there any other books on a similar vein worth reading,

The two volumes of "Pattern-Oriented Software Architecture" are, in some ways,
better than the GoF book and definitely cover a lot more ground. Martin Fowler's
"Analysis Patterns" also shouldn't be discounted, though, as the title suggests,
it doesn't deal with programming per se.
Managing large scale projects,

As Victor mentionned, John Lakos' "Large Scale C++ Software Design" is one of the
canons, but it deals with implementation details (which is very important). If
it's _management_ of projects that interests you, Neal Whitten's "Managing
Software Development Projects" is about as good as it gets. In between, you have
a few really good books by Steve McConnell. One of the best books is Martin
Fowler's "Refactoring: Improving the Design of Existing Code". Speaking of
refactoring, some people will recomment the mound of books on eXtreme
Programming, but personally, I find that they read like indoctrination pamphlets
in a new age cult.
readable data structures

You won't find much on this topic since it's really a minor subset of an already
minuscule subject.
and extensibility.

Here you have plenty of choices, but they're not all explicitly about
extensibility. Lakos' book is again a good source. Carrol and Ellis have a book
called "Designing and Coding Reusable C++". Andrei Alexandrescu's "Modern C++
Design" and Vandervoorde and Josuttis' "C++ Templates" are masterful references,
but it takes even seasoned experts multiple readings to grasp the subtleties
(it's very rewarding, though). Just studying any Standard Library reference would
be enough to give you a heap of good concepts about extensibility.
Also when you start a progrm project from scratch, how
do you lay it out?

There are too many ways to count, but basically, most people simply clone the
skeleton of an existing project, improve the things that were found lacking in
the last iteration and go from there. It's a catch 22 for beginners because they
don't have existing projects to clone and the projects they can find are usually
too complex to fit what they're doing. The only good advice I can give you, until
you get to work with a team that has an established methodology, is: do many
projects and evolve your framework as you do so. You'll learn a lot by it.
I've been drawing object interactions on a a0 piece of paper, is this the
way others do it, or is there any good software for doing this??

If paper works for you, there's nothing wrong with it. I use Visio because it's
flexible and doesn't constrain me to someone else's methodology. Some people like
tools that enforce certain constraints or that generate code for them. Rational
Rose is often prefered by those people. I'm sure that if you take an inventory,
you could come up with dozens of programs that purport to aid in software design.

Claudio Puviani
 
L

Luther Baker

Michael said:
Guys,
I've just finished reading Design Patterns and have been over whelmed by how
clever some people are :)
Are there any other books on a similar vein worth reading,

I don't hear it mentioned quite as often, but one of my favorite books
growing up to :) is/was "Ruminations on C++" by Andrew Koenig and
Barbara Moo. But unfortunately, its more about idiomatic C++ than it is
about genreal software development - which sounds like what you're
looking for.

Craig Larman's "Applying UML and Patterns" as well as Robert Martin's
"Agile Software Development" books may appeal to you.

-Luther
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,052
Latest member
LucyCarper

Latest Threads

Top