Recommended Books

Architecture

  • Clean Architecture
  • Fundamentals of Software Architecture
  • Modern Software Engineering
  • Patterns of Enterprise Application Architecture

Domain-Driven Design

  • Domain-Driven Design
  • Patterns, Principles and Practices of Domain-Driven Design
  • Implementing Domain-Driven Design

Object-Oriented Programming

  • Object Thinking
  • Object Design
  • Practical Object-Oriented Design
  • 99 bottles of OOP

Refactoring

  • Refactoring
  • Working Effectively with Legacy Code
  • Refactoring to Patterns
  • Tidy First?

Software Design

  • The Pragmatic Programmer
  • Design Patterns
  • Head First Design Patterns
  • Implementation Patterns
  • Understanding the Four Rules of Simple Design
  • A Philosophy of Software Design

Test-Driven Development

  • TDD by Example
  • Growing Object-Oriented Software Guided by Tests

Testing

  • XUnit Test Patterns
  • Working Effectively with Unit Tests
  • Writing Maintainable Unit Tests
  • Unit Testing: Principles, Practices and Patterns