UtahJSConf 2013
Do you dread writing tests? Are you frustrated with un-testable code? Wish you had confidence in your application?
What about "no pain, no gain"? Come learn design principles that will give you confidence in your code—without the pain.
Designing for testability means adhering to sound design principles. A core benefit of solid design is insight into the internal state and activities of your program. "Testable" doesn't mean you can easily achieve 100% code coverage—it means you can easily verify you've created the right program and then validate your program's correctness.
Learn the What, Why, and How of:
Abstraction
Decomposition
Design by Contract
Law of Demeter
Orthogonality
Single Responsibility
DRY
Logging
Beginners welcome. A must for intermediates. A great refresher for all.
http://www.pseudobry.com/talks/2013/utahjsconf/designing-for-testability/