Robert C. Martin has been a software professional since 1970. He is CEO, president, and founder of Object Mentor Inc., a firm of highly experienced software professionals that offers process improvement consulting, object-oriented software design consulting , training, and development services to major corporations around the world.
|
Presentation: "Keynote - Clean Code"Time: Tuesday 09:00 - 10:00 Location: Bayside 204
Abstract: What does it mean to be a professional software developer? What rules do we follow? What attitudes do we hold? And how can we maintain our professionalism in the face of schedule pressure? In this talk Robert C. Martin outlines the practices used by software craftsmen to maintain their professionalism. He resolves the dilemma of speed vs. quality, and mess vs schedule. He provides a set of principles and simple Dos and Don?ts for teams who want to be counted as professional craftsmen.
Presentation: "Clean Code: Functions"
Session:
Professional Practices
Time: Tuesday 13:00 - 13:45 Location: Bayside 204
Abstract: Get ready for a challenge as Robert Martin dives deep into the topic of clean Java code by examining what makes a good function. In this talk you will look at a lot of code; some good and some bad. You will experience how such code is analyzed, critiqued, and eventually refactored. You will understand the decisions made by an expert in the field as bad code is gradually transformed into good code. How big should a function be? How should it be named? How should it be documented. How many indent levels should it have? How should it deal with exceptions, arguments, and return values. This talk is all about code at the lowest level. And yet the principles and techniques presented have far reaching implications.
Workshop: "Advanced Principles of Agile Object Oriented Class and Component design"Time: Wednesday 13:00 - 16:00 Location: Bayside 201
Abstract:
What happens to software? Why does is rot over time? How can a development team prevent this rot, and prevent good designs from becoming legacy code? How can we be sure our designs are good in the first place? How do you manage the structure of large agile and object oriented systems? What is the best way to break that structure into components? What should the components contain, and how should they be interrelated? How can we effectively partition a system into independently deployable components?
This tutorial starts with five agile principles that guide the design of object oriented class structures. These principles govern the composition, structure and interdependencies between classes in large object oriented systems. The principles include: The Open Closed Principle, The Liskov Substitution Principle, and the Dependency Inversion Principle, among others. The tutorial goes on to present the 6 principles of object oriented component design. The first three are principles of component cohesion, which discuss the rules for how classes should be allocated to components. The second three are the principle of component coupling, which discuss how comonents should be related to one another. Principles include “The Common Closure Principle, the Stable Dependencies Principle, and the Acyclic Dependencies Principle, among others. |
|||