# Architecture without acronym worship

Use SOLID and GRASP to reason about change, not to win acronym bingo.

ID: architecture
Language: en
Revision: 2
Translation source revision: 2
Canonical: https://jujin.dev/en/guides/architecture/

## Concept

Architecture defines boundaries and dependency direction. SOLID and GRASP help assign responsibilities; they are not folder templates.

## Example

UI → use case → domain rules. A database adapter implements a storage interface; domain rules do not import database drivers.

## When to choose it

Direct calls are simpler. Interfaces ease replacement and testing but add abstractions to maintain. Keep related rules together. Add boundaries where changes actually hurt, rather than maximizing layers. [Microsoft](https://learn.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles) · [Craig Larman](https://www.craiglarman.com/wiki/index.php?title=Books_by_Craig_Larman)
