Architecture

“Nothing is more dangerous than an idea if it’s the only one you have.”

~ Emil-Auguste Chartier

  • The high level structures of a software system.
  • The discipline of creating such structures.
  • The documentation of these structures.

Software architecture is about making fundamental structural choices which are costly to change once implemented.

Documenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows reuse of design components between projects.

For my notes, I'm primarily focused on the first element: designing the high level structures.

Questions to Ask

  • Is this a “Good Idea”? Feature creep — kill it.
  • DRY? Do I repeat this anywhere?
  • Orthogonal? How independent is this?
  • Testable? How will I test this?
  • Is there another way? Having only one idea is dangerous
  • Costs of changing this later
  • What would the architecture look like if I didn't have this problem?
  • What are the facts and assumptions?
  • Document rationale

Architectures

References

results matching ""

    No results matching ""