SPA Conference session: Building on SOLID Foundations

One-line description:Compositionality in software, the missing principle
 
Session format: Talk 75 mins [read about the different session types]
 
Abstract:Why can’t we just add a feature to our system without tearing the code apart or, worse, patching around it? It ought to take just a few lines. We know the code is supposed to be modular and coherent, but too often it just doesn’t turn out that way.

We don’t believe it should be this hard to change object-oriented systems. We’ve seen examples where it really is that easy to add a new feature. The difference seems to be in the intermediate level structure. The design principles that most programmers rely on don’t address the middle ground where the complexity lies. We know about principles and patterns at the small scale, such as SOLID, and the large scale, such as REST. We’re less familiar with the structures in the middle.

This session is about design principles that we’ve learned help us develop mid-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 so that the system as a whole is amenable to change. We focus on how objects fit together and communicate, and on being clear about how capabilities and information flow between objects in the running system.
 
Audience background:Experienced developers
 
Benefits of participating:Clearer understanding of how "mid-level" code should be structured. Thinking about making code maintainable.
 
Materials provided:Slides
 
Process:75 mins. Talk (given previously)

We expect the talk to be interrupted a lot.
 
Detailed timetable:
 
Outputs:Notes from discussion.
 
History:Given as a talk at several conferences.
 
Presenters
1. Steve Freeman
HIgher Order Logic
2. Nat Pryce
Technemetis Ltd.
3.