This list of topics and sub-topics is a work in progress.
“If the easiest way is not the right one, you got it all wrong.”
Bernardo Heynemann
Section 1 – Organizing your Code
- Intro – The way you organize your code is going to affect the maintainability of it
Chapter 1 – Physical and Logical Structuring
- Introduction
- Creating a consistent physical structure
- It’s all about versioning
- The Solution is king
- Do not settle for VS defaults
- When to break an assembly into two
- Managing External Dependencies
- Everything is Source Controlled
- Why having self-contained structures help?
- Conclusion
Chapter 2 – Building your Code Reliably
- Introduction
- Choosing a build tool – Pre-Requisites
- Where’s my code? Getting paths right!
- Object-Oriented Build Scripts
- Abuse Templates for Config files
- Refactor aggressively
- Build failing is a no go
- Conclusion
Chapter 3 –Avoiding Continuous Disintegration
- Introduction
- Requirements of a CI Server
- Bad news – there’s no such a thing as a dream tool
- Good news – We can make it work the way we want
- Versioning your Code – No two builds are the same
- Artifacts – What should I publish?
- Diving into your code with Code Analysis
- Make sure your configuration is Source Controlled
- Conclusion
Section 2 – Unit Versus Functional versus Acceptance
Chapter 4 – Designing Fast Unit Tests
Work in progress…
Chapter 5 – Functional or Integration Testing
Work in progress…
Chapter 6 – Enabling Automated Acceptance Testing
Work in progress…
Section 3 – Avoiding Coding Friction
Chapter 7 – Persistence – When it pays to be ignorant
Work in progress…
Chapter 8 – Inversion of Control – Make the infrastructure work for you
Work in progress…
Section 4 – Automating where it hurts
Chapter 9 – Automating Deployment
Work in progress…
Chapter 10 – Automating Error Reports
Work in progress…
Feedback
If you have any suggestions or ideas about topics, just let me know. I’ll update with the next chapters’ topics soon.