A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
Hi, can anybody recommend some good books to help improve design skills? I've mainly been into reading technical books since leaving Uni and it's certainly an area I've neglected!
I've heard good things about "Holub on Patterns", is this a good place to start? Any input is appreciated. :-)
The best book I've used is "Structured Analysis and System Design" by Tom DeMarco.
This lays out the "Data Flow Diagram" approach, which is an excellent way of separating what a system should do from the implementation of how that system does it. It's a 'system level' view, so it can be made independent of language and platform. At later phases you can roll in language and platform.
Another good book is "Agile Modeling", by Scott Ambler. This provides a minimalist use approach toward the UML model -- which is nice, because the full UML model is so huge as to be unwieldy. Even Rational's "RUP" requires customization, and Ambler tells you which customizations are most helpful.
Monday, July 02, 2007
It depends a lot on the kind of software you expect to be designing. What language do you use? What type of end users? How big are the systems.
The most important thing about design is understanding the users needs and the user interfaces. So books on requirements analyis and users interfaces are really a prerequisite to the more technical stuff like patterns. If you are interested more in the internal design of software application I'd say look at Eric Evans Domain Driven Design.
Holub's book is interesting but imho has some serious flaws. Holub is very strongly opinionated, almost to the point of being pugnacious -- 'my way or the highway'. He assumes you're working in Java; and since the book spends most of its time looking at code in depth, it's likely to be much less useful if you're working in another language. And his use of patterns is so thorough-going that you're likely to be so badly intimidated by the diagram he uses in the initial presentation of one of his main examples (a Game of Life implementation).
I've been able to make use of only small parts of the book. (I'm a C++ developer who perhaps has not yet been immersed deeply enough in the GOF-patterns way of being.
I say all of this as a big fan of much of Holub's work, particularly his pre-Java stuff (e.g., Compiler Design in C).
I am a big fan of Holub's books, he writes in an engaging and accessible style without sacrificing technical depth and detail. As for "Holub on Patterns", I read it about a year ago and thought it was very good, I would recommend it over any of the canonical books ("Design Patterns" by Gamma, Helm, et. al. is almost unreadable). I've also got the Headfirst Patterns book from O'Reilly and Assoc. and it is quite nice, but I haven't finished it so I can't give a complete recommendation at this time.
Monday, July 02, 2007
I'd have to disagree about "Domain Driven Design". It was 600 pages of nothing. A great concept, but mostly fluff without real content. If felt like he was trying to write the bible of software development, but without provided any new insights (or at least a condensed summary of it). I read every word, and while there were fleeting moments where it had potential, I was disappointed overall.
I've always been partial towards "Pattern Oriented Software Architecture", vol 1. Its as old as Design Patterns, but targets architectural patterns instead. Many of these are now quite popular, but most pattern books just rehash the GoF's work rather than adding new ideas. I also enjoyed "Refactoring to Patterns", since it recognized that you spend more time refactoring legacy code than writing new code.
I'd also recomend trolling Amazon's "customers also bought..." on books that you enjoyed. You'll discover new titles and new authors. After a while, Amazon will be smart enough to recomended good titles for you to explore as well.
Monday, July 02, 2007
Don't forget about the Pragmatic Programmer. Easy to read and has some great insights into software development and how to approach problems.
Tuesday, July 03, 2007
Robert Martin's Principals Patterns and Practices is outstanding. I emphasize this level of "principals" over any "pattern" books. You need to understand the principals that drove the pattern designers to make something good enough to care about.
Yes, I named the book by its subtitle rather than the main title. It's not an Agile method book, and Martin sometimes calls it the PPP book, so I do, too. :-)
Thursday, July 05, 2007
Well, if you have been programming for a few years then read code complete by Steve McConnell, it will help remove all the bad habits you will of picked up, and there is a lot of good advise besides that.
Sunday, July 08, 2007
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz