views:

155

answers:

3

Hallo everybody

Recently I've been reading the book:

"Agile software development, Principles, Patterns and Practices" by Bob Martin

The following (S.O.L.I.D) agile-design-principles are listed within the book:

  • Single Responsibility Principle
  • Open Closed Principle Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Because of the fact that this book quite old(2003), I have a question:

  1. Are there any other newly developed principles besides the SOLID methods?? If yes, is there any book/site covering these new emerging principles with practical code examples that you could recommend to me??

Of course I can google for some of these.

However, in stackoverflow read and write many profis, so I would like to hear their opinion too :D

+2  A: 

UncleBob's book is a SOLID start ;) I'd add his Clean Code to your reading list too. For actual code construction it is a great tome.

Kindness,

Dan

Daniel Elliott
Clean Code is the Best-Of version of Bob Martin's writings. Highly recommended if you want to get just one book that covers a lot.
Mike Reedell
+3  A: 

You may want to look at books such as Code Complete and Pragmatic Programmer as they also talk about some excellent development principles.

mezoid
+4  A: 

I like the Domain Driven Design approach from Eric Evans:

As the SOLID approach you describe, DDD is mostly sound and clean Object Orientation guidelines. DDD focus especially on creating a design which match as much as possible with the business to be implemented in the system, rather than having it guided by the technology and/or the frameworks you use. This lead to great testable design, easy to refactor.

In support to DDD, I like the Hexagonal Architecture of Alistair Cockburn. It gives you great ideas about general design of Object Oriented systems:

A more advanced and innovative approach I am currently exploring is the theory of centers, but this is not yet really documented. A presentation about it:

Bernard Notarianni