Programming Design Books

Started by
4 comments, last by Qw3r7yU10p! 19 years, 7 months ago
Ive come to realise my weakest aspect of my programming comes from poor design (surprise :P). Although I can visualise and write down overall designs I do tend to skimp way too much on the finer details and such. I blame this on too many little projects to learn new techniques and not enough proper large programs. So I was wondering what programming (not game prorgamming) design books would people reccommend as helpful?
Advertisement
Some really helpful books:

Modern C++ Design Generic Programming and Design Patterns Applied

Applied C++ - Practical Techniques For Building Better Software

Design Patterns Elements of Reusable Object-Oriented Software

Also 'Enterprise Architect' is a really helpful programm to structure your way of designing programs. You can download a 30 days trial for free :)
You can also take a look at GameDev's own book-section. It contains reviews on quite a number of books in many different categories - one of which is "Software Engineering". You might be able to find some useful programming design books there.
Link to section: http://www.gamedev.net/columns/books/books.asp?CategoryID=17
--------------------------Visit my blog at AndersNissen.com
I'd recommend:

Design Patterns by Gamma et al and Refactoring: Improving the Design of Existing Code as a pair that work well together. Martin Fowler describes Patterns as a target for Refactoring. There is now a book called Refactoring To Patterns but I haven't read it.

Up front design is overrated and difficult (impossible?). Refactoring gives you a second chance.
Quote:Original post by petewood
Up front design is overrated and difficult (impossible?).
Very good point. It is important, however, to note that the difficulty of up-front design is not an excuse for not having a design specificationat all!
Quote:Original post by Oluseyi
the difficulty of up-front design is not an excuse for not having a design specificationat all!


Of course, you will have an overall idea of what it is you are creating, who is working on what, how things will generally be divided up. Keeping the design fluid and having tests to back up any changes you make helps you account for unforeseen problems including changing requirements.

There are some good articles on incremental development and a 'parody' of the Waterfall method here. See in particular Iterative and Incremental Development I, II and III. Also Continuous Care vs Initial Design.

This topic is closed to new replies.

Advertisement