3 ms·
I am not sure if a book can teach you how to design large complex programs. I certainly haven't run into one that does it effectively. Perhaps a good "Design Pa
by timtadh 16y ago
I am not sure if a book can teach you how to design large complex programs. I certainly haven't run into one that does it effectively. Perhaps a good "Design Patterns" type book would be useful on the micro-scale, but on the macro scale I can't really think of a good book.
That said it doesn't mean you can't learn this skill! I think the best place to start is finishing a decently sized program. The first time I did this I was extremely unhappy with my design. However, each time it got easier and my designs started getting better.
Second, start reading some large code bases. These are often difficult to read, but they can teach some tricks and some methodology. This summer I read Tomcats source code with the aid of "How Tomcat Works: A Guide to Developing Your Own Java Servlet Container."[1] While not enjoyable (it was for my job), the experience was worth doing.
In the end, all programmers constantly struggle to make scalable, reusable, and maintainable systems. Few programmers achieve a soundly designed system but we can certainly strive to achieve perfection in our designs.
[1] by Budi Kurniawan; Paul Deck, ISBN: 978-0-9752128-0-6