Re: How to learn software design
In article <7p522uFsc5U5@mid.individual.net>, Ian Collins <ian-news@hotmail.com> wrote:
James Kanze wrote:
On Dec 19, 10:00 am, ta...@mongo.net (tanix) wrote:
In article <7p3lqhFfs...@mid.individual.net>,
e...@boese-wolf.eu (Eric =?utf-8?Q?B=C3=B6se-Wolf?=) wrote:
I know it is off topic, but maybe someone could give me a
hint for a good book or few tips on learning software design.
Ok, I am going to give you some tips.
You've raised an interesting point. And it is at least
partially true. However...
First of all, to learn software design, you'd better study
what is beauty. Yep, BEAUTY. Believe it or not.
Study beauty in what way?
Well, it is hard to put into words.
How can you POSSIBLY "study" beauty?
I'm not even sure you can study
beauty, per se, except from a philosophical point of view (what
is beauty?).
Good. Now you asked the "correct" question.
What is beauty?
Well, read the dialog of Socrates by Plato
on this exact point.
I bet you are going to get more help from reading it
than from anything you can read on this group.
Good software engineers do generally have a strong
sense of beauty, but it's not really something that you can
study, per se. Except maybe by reading beautiful code (and
there's not much of that published).
Well, one of the properties of beauty is simplicity.
A beautiful code is never convoluted.
It is never a spagetti pile, a concuction of disassociated ideas.
It, for some strange, magical reason, falls into place.
Each part is in harmony with each other part.
At every single method you look, it does not look like a huge
something. It seeems it is not doing much.
Because you are on a local scope level.
But when you look at this thing from at least one level up,
all of a sudden, you see it all singing like a song.
It is a harmony of components, and not that sick dissonance
of "i fuck you and the only thing i care about is burning down
your house". Believe it or not.
Because THAT is how most of code I saw reads.
In any well designed system, the subsystems and components
sing in harmony.
Beyond that, you are on your own.
The book "Beautiful Code" is well worth a read.
http://oreilly.com/catalog/9780596510046
--
Programmer's Goldmine collections:
http://preciseinfo.org
Tens of thousands of code examples and expert discussions on
C++, MFC, VC, ATL, STL, templates, Java, Python, Javascript,
organized by major topics of language, tools, methods, techniques.