Keystone Object-oriented and TDD concepts linking to other articles I wrote on each
Notes are heavily bases on Learning Object-Oriented Programming, Design and TDD with Pharo
Objectives
Before reading a programming book, I like to read the table of contents, introduction and preface to pull out the key concepts that will be covered in the book. That way, I can read in a more focused manner and revisit the list of concepts I captured to check that I understand them.
My plan is to use this entry as a keystone entry that links to other articles I have written about each of the concepts outlined below, supplemented with other research from sources outside of the book for cross-reference.
Object-oriented programming concepts
- Objects / Classes
- Messages / Methods
- self and its semantics
Object-oriented design concepts
- Class responsibility collaboration
- Delegation
- Message sends are choice
- Message sends are plans for reuse
- The "Don't ask, tell" principle
- Tests are your life ensurance
- Polymorphism
Additional Concepts
- Syntax
- Tests
- Software refactorings
Projects
- Simple Counter
- Isograms
- Pangrams
- Palindromes
- Converter
- An electronic wallet
- A simple embedded DSL
- Expression interpreter
- Printing
- A simple network simulator
- Snakes and ladders
- Tiny Chat