We all are familiar with SOLID and other software design principles and have explored many design patterns. There is no better way to get a deeper understanding than to practice the concepts. Furthermore, some of the principles and patterns minifest themselves in what appear to be rather unconventional ways when applied under a set of constraints and requirements. In this hands-on intensive workshop we will take some problems and device elegant lightweight design, in code, and discuss the tradeoffs. Come experience the evolution of ideas into code and take shape by way of incremental development.
This workshop has been created to help you get a deeper understanding of when and why to use certain design principles and how to reap their benefits. Instead of discussing the ideas in theory, you can see practical applications of the principles emerge from real code as we develop and refactor it. This workshop is hands-on and includes several coding exercises. Attendees are encouraged to pair and work on the labs. The workshop involves live-coding and is highly interactive. The topics covered include:
Creating Good Lightweight Design:
Characteristics of good design
Fundamental design principles
Refactoring to apply the design principles
Rules for simple design
Hands-on Exercises
Designing for extensibility:
Extensibility: The Power and the Perils
Consequences of aiming for extensibility
Design considerations for extensibility
Influence of principles on extensibility
Hands-on Exercises
Choosing between Inheritance vs. Delegation:
How do we choose and the consequences
Practical examples to decide
Influence of principles on the decision
Learning from examples in popular libraries
Hands-on Exercises
Software developers, programmers, leads, hands-on architects
About the Instructor:
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc. and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects. Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at [email protected] or on twitter at @venkat_s.