Rock SOLID Software
Object-oriented programming was formally introduced in the 1970's with the advent of Smalltalk. C++ took it mainstream in the 1980's, and Java carried it to the next level in the 1990's. Unfortunately, if you examine the vast majority of Java codebases, what you'll find is a bunch of C-style structs (a.k.a. JavaBeans) and functions. As these codebases grow, a number of design smells can potentially crop up, which in turn cripple our ability to respond to change. We need SOLID principles that we can apply to keep our software clean and malleable.
Robert C. "Uncle Bob" Martin identified several design smells in his book Agile Software Development: Principles, Patterns, and Practices:
- Rigidity
- Fragility
- Immobility
- Viscosity
- Needless Complexity
- Needless Repetition
- Opacity
We can reverse and in fact avoid these techniques by following the principles of SOLID software design:
- Single Responsibility
- Open-Closed
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
You'll leave this session equipped to ferret out design smells and apply these principles on your next project.
About Matt Stine
Matt Stine is an Enterprise Java/Cloud consultant based in Memphis, TN. He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, and retail store domains.
Matt has spoken at conferences ranging from JavaOne to CodeMash and has published several articles for Agile Zone, GroovyMag and NFJS the Magazine, as well as the Selenium 2.0 DZone Refcard. Matt is also the founder of the Memphis/Mid-South Java User Group.
His current areas of interest include lean/agile software development, software architecture, mobile application development and functional languages.
More About Matt »

