The Principled Developer: Walk the Talk

Presenters: fmizzell

Object Oriented Programming (OOP) paradigms are not enough to guide us in developing maintainable software systems. Objects are not a silver bullet, and we still need to carefully think the architecture of our software to keep it robust and maintainable. To help us make better decisions, many useful software design principles have come about: SOLID, KISS, YAGNI, etc.

If we attempt to follow all of these principles, we soon find out that in many instances these principles work against one another! For example, encapsulation, one of the greatest features of OOP, allows us to hide the details of our code making our systems easier to use. But, the dependency inversion principle from SOLID, used to an extreme, forces us  to show all the inner workings of our code in the outer layers of our system. So, when do we follow one over the other?

In this session, I will propose a development process that unifies many of these apparently contradictory principles by adding some context to why and when these principles should be used during our development cycles.

At the end of the session, we should all have a pragmatic framework to help us apply these design principles. This should support robust systems that evolve as we learn and as we continue our journey to become more principled developers.

Audience
Experience Level
Intermediate
Schedule Info
Conference Year
2017
Date / Time
Room
Auditorium
Status
Accepted
Session Track
Coding and Development
Supporting Documents