OOAD book recommendation: from theory to practice [closed]

懵懂的女人 提交于 2019-12-02 14:45:17

The best book I ever read about OO is Bertrand Meyer Object Oriented Software Construction.

Its huge but it was very useful for me. It covers every single aspect of OO design IMVHO.

Sergey Teplyakov
  1. "Object-oriented software construction" by Bertrand Meyer

Most fundamental work about object-orientation ever published. This is absolutely must have book for every "object-oriented" programmmer.

2. "Object-Oriented Analysis and Design with Applications" by Grady Booch et al

Not so formal as Meyer's book, but this book can open your eyes on many questions in object-oriented world and in software development in general

3. "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma et al.

This is famous "Gang of Four" book about design patterns

4. "Refactoring: Improving the Design of Existing Code" by Martin Fowler et al.

This is another classical book. First part perfectly describe many problem that modern software developer may faced during his work: code smells, readability vs performance, premature optimization drawbacks and many other topics.

5. "Thinking in Java" by Bruce Eckel

This book may help many beginners not only in Java language but in object-oriented way of thinking too.

6. "Touch of Class: Learning to Program Well with Objects and Contracts" by Bertrand Meyer

Excellent textbook by famous author.

I fully understand your situation. Also own three of those books ;) I'd suggest the Head First edition. Object-Oriented Analysis and Design. This will get you on the right tracks. The GoF book is great but of no use until you get the basics through your head and the Head First book will take care of that. Cheers :)

Actually doing programming is a bigger help than reading about doing programming.

"paralysed by some very basic decisions" is a symptom of a deeper problem -- over-engineering. Until you build a lot of stuff, you don't really know which decisions matter and which don't matter.

The best way to get the necessary experience is to build a lot of stuff.

Code Kata is very, very important. http://slott-softwarearchitect.blogspot.com/search/label/code-kata

Also, I collected a bunch of code kata that I have used into a single, large project. http://homepage.mac.com/s_lott/books/oodesign.html

Robert C. Martin "Agile Software Development: Principles, Patterns and Practices" that explains you the principles of OO

Eric Evans: "Domain Driven Design" deals with how to make a good design that corresponds to your business problem

Martin Fowler: "Patterns of Enterprise Application Architecture" for basic principles on enterprise architecture

The only way to find out if a design is robust is to implement it. There is no single book that will teach you how to produce implementable designs, it comes down to experience and talent. However, I do second the vote for Bertrand Meyer's book - just be aware it won't turn you into an OO design god.

Craig Larman's Applying UML and Patterns summarized a lot about what I had learned from experience. What I like about it is that it addresses all the aspects of software design -- which includes things like iterative design and development. Don't stare too hard at the use of UML: design descriptions are a means towards an end, and I found Larman's approach fairly pragmatic. You can't just code: you have to communicate your intentions (and understand what is needed). UML and cleanly designed, well commented code are some of the means towards that end.

And, of course, as others mention: no book will make you a good developer or designer. But it might help accelerate the process.

For a starter, I suggest Head First Object Oriented Analysis and Design. It guides you to build an OO application in a simple intuitive step by step method.

Although leaning towards Rational UP I've found these two to offer a lot of insight into OO design.

  • Applying UML and Patterns - Craig Larman
  • UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design - Jim Arllow & Ila Neustadt
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!