Refresher/TDD

This is a refresher course for those who need to review basic knowledge of test-driven development (TDD).

Basic Concepts

 * TDD: tiny cycle repetition of red, green and refector -- failing test script, code to pass, refactor to standards
 * XP key principles: rapid feedback, incremental change and assuming simplicity

Code Review

 * Code review: systematic examination of source code through peer review
 * Review forms: pair programming, informal walkthroughs or formal inspections

Beyond

 * safe and fast: basic security, time complexity, then micro improvement

Polymorphism

 * Late binding: method looked up by name at run-time and exact behavior determined at run-time
 * Early binding: method name and signature stored in the virtual method table (v-table) at compile time
 * Polymorphism: objects from different types responding to calls by the same name, e.g. operator overloading for addition