We know we’re supposed to break code up into coherent parts, but many codebases just don’t seem to get it right. To add some simple feature, we have to tear things apart or, worse, patch and work around the existing code. In a better system, it would just take a few lines of code to change our object graph. Why is it often so hard?
We don’t believe it has to be. We’ve seen other systems where the code is flexible enough to support the changes we need to make.This talk is about design principles that we’ve learned help us develop large-scale code structures that are easy to read and easy to change. At the lowest level, this means well-known patterns such as avoiding globals and following SOLID guidelines. At larger scales, this means assembling those SOLID objects to avoid hidden coupling that makes the system as a whole amenable to change. It means focusing on how objects fit together and communicate and being clear about how capabilities and information flow between objects in the running system.
Watch this video on http://vimeo.com/user22258446/review/79095045/9590c62ac2
Video producer: http://software-architect.co.uk/
Presentation slides: http://software-architect.co.uk/brands/sa/library/Nat_Pryce_Steve_Freeman_Building_on_SOLID_foundations.pdf