Complexity and Flexibility in programming that's the message I am getting from Chapter 2.
A system should be separated into two distinct parts Code Modules and Data entities
- Code Modules should be stateless and the relations between Code Modules should be of Usage alone. Meaning, there should be no inheritance hierarchy between Code Modules and no data encapsulation in code modules either.
Data should be manipulated using generic data structures like maps, sets, lists etc.\
- Seperate code from data.
- Represent data entities with generic data structures. (Maps, Sets etc)