Two architecture options

May 2025. Designing DSL. Two approaches, both look reasonable. Can't choose.

Option A: models as classes, inheritance, decorators. Option B: models as objects, composition, functions.

What I did

Created two folders: plans/DSL-A/ and plans/DSL-B/. Each with full description.

For each option:

  • What the code looks like
  • How generation works
  • What limitations
  • Usage examples

Result

While writing option A - found 3 problems. While writing option B - realized it's simpler.

Didn't have to write code to understand. Describing was enough.

Choice

Option B. Less magic, easier to test, AI generates better.

Didn't delete folder A. Might need to understand why I didn't do it that way.

When to use

When the decision is not obvious and consequences are big. Not for every function, but for architectural decisions.

An hour on two descriptions saves days on rewriting.

← Back to blog