In this presentation recorded at QCon SF 2008, Jeremy D. Miller shares lessons learned while developing a project over 5 years. He talks about his mistakes, what to avoid and how to design, code and test better.
Watch: The Joys and Pains of a Long Lived Codebase (1h)
Miller gives actual code examples from StructureMap, an Inversion of Control / Dependency Injection tool for .Net that he created. The coding lessons include:
- Avoid the string representation of a type instead of the type itself.
- Breaking encapsulation is really bad.
- Avoid bloated code.
- Noun-based design is naïve. Rather use design abstractions by responsibilities and roles.
- Create a test fixture per behavior.
- Advices for creating usable frameworks and good API.