Friday 3:15 p.m.–3:45 p.m.
Stop Sucking Me Into Your Drama: A Personal Appeal For Loose Coupling
- Audience level:
- Best Practices & Patterns
Great software is made out of cooperating independent modules; unusable, incorrect, and bad software happen when modules don’t (or can’t) work together. What makes modules friendly or hostile? How do abusive relationships between modules happen? How can we write code that creates and maintains healthy connections to other code?
Software engineering isn’t just about writing code that correctly executes some task; it’s also about writing code that is easy to use and maintain. A software module’s receptiveness to use by end users or by other software isn’t guaranteed and a particular danger to a module’s usability is inappropriate coupling of the module to its dependencies, clients, and design assumptions. Sometimes bad coupling happens when software is being written in a hurry and its design decisions are being driven by expediency. Sometimes bad coupling is a result of following bad advice. Sometimes bad coupling simply comes from mistakes. Loose coupling between software modules is good coupling. Loose coupling reserves freedom for you in the future as your software’s needs and implementation change. We will share our experiences of dealing with tightly coupled systems written by others and how we have learned to create loosely coupled systems of our own.