← Graph

Useful Objects

concept 6 connections

Object-oriented design doctrine associated with Scott Bellware and the Eventide project. Core rules: an instantiated object must never raise nil-reference errors from uninitialized dependencies (hence 'useful', not 'useless'); initializers are primitive, only accepting and recording primitives, with no logic, cherry-picking or dependency wiring; dependencies are separated from initialize and exposed as null-coalescing attributes defaulted to substitutable null implementations (via Mimic/Dependency), so tests don't need mocks, stubs or spies; convenience is provided through class-level factory/constructor methods (e.g. `build`) while the instance interface remains mechanically correct; no IoC container is required — a class configures its own operational dependencies. Ladd earlier credited the Test Bench V1 rewrite with making Useful Objects 'click': the economics of encapsulation change when you have to know a class is truly done before moving to the next. The full methodology is written up in a long-form article by Bellware.

category
methodology
about
Useful Objects concept
Explains how the V1 rewrite made Useful Objects 'click' for Ladd.
The talk teaches the Doctrine of Useful Objects.
person Nathan Ladd
recommends
Useful Objects concept
Credits Useful Objects for reshaping the economics of encapsulation during the V1 rewrite.
concept Useful Objects
related_to
Useful Objects separate the mechanical initializer from a class-level convenience constructor.
concept Useful Objects
related_to
Null-coalescing attributes are how Useful Objects default dependencies without nil-reference errors.
concept Useful Objects
related_to
Useful Objects rely on diagnostic substitutes instead of mocks/stubs/spies.

Provenance

Read by
3 extractions