How to Name Business Components (BC): The Essence Method
📎
A business component is a package named after a single responsibility, and the structure of a system is the sum of these components. The hard part is finding the names. Here is the simplest approach I know, three steps.
- Say it. Describe what the system does in one sentence, in one breath.
- Name it. Underline the essential verbs and nouns. Those are your component candidates, and verbs become nouns.
- Test it. Drop every name that would fit another project. A name that transplants into any system says nothing about this one.
The method reverse-engineers reality. Take zb, a zero dependency builder:
"It discovers the Java sources, compiles them, packs an executable JAR, and runs the test hook after the build."
Verbs become nouns: discovers becomes discovery, compiles becomes compiler, packs becomes packer, and hook is already a noun. Open zb and you find exactly those packages: discovery, compiler, packer, hook. That sentence took about ten iterations. packer started as "jar creator", discovery started as "source", and hook did not exist yet.
An online shop: "customers browse the catalog, put products into a cart, place orders, and pay." That gives catalog, cart, orders, payments. Browse collapses into catalog, products are entities inside it. Customers is borderline: a component only when the system manages them, otherwise an entity inside orders.
Say it. Name it. Test it.
Part of the free Screaming Architecture with BCE course.