A few notes while working through this book (excellent stuff so far):

– work in progress –

  • The very same model should be used during all project phases (analysis, design, implementation) (Ch.3)
  • Use a layered architecture with a thin service layer (Ch.4)
  • Subsystem break-up: First, use horizontal segmentation (layers), then divide the domain layer in vertical segments
  • Avoid getters and Setters on domain objects (see A. Holub)
  • Use as few associations as possible (p82ff)
  • Group similar entity attributes as value objects (p97ff)
  • Aggregates (p125ff): Entities insied the aggregate have only a local identity. Foreign entities must only reference the aggregate root.