the most important software design principles

·

Here are the most important software design principles discussed in this book:

  • Complexity is incremental: you have to sweat the small stuff (see p. 11).
  • Working code isn’t enough (see p. 14).
  • Make continual small investments to improve system design (see p. 15).
  • Modules should be deep (see p. 22)
  • Interfaces should be designed to make the most common usage as simple as possible (see p. 27).
  • It’s more important for a module to have a simple interface than a simple implementation (see pp. 55, 71).
  • General-purpose modules are deeper (see p. 39).
  • Separate general-purpose and special-purpose code (see p. 62).
  • Different layers should have different abstractions (see p. 45).
  • Pull complexity downward (see p. 55).
  • Define errors (and special cases) out of existence (see p. 79).
  • Design it twice (see p. 91).
  • Comments should describe things that are not obvious from the code (see p. 101).
  • Software should be designed for ease of reading, not ease of writing (see p. 149).
  • The increments of software development should be abstractions, not features (see p. 154).

Link:: A Philosophy of Software Design

Обратные ссылки