Skip to main content

OOD Mistake Clinic

Module-Specific Mistake Radar​

MistakeDiscriminating evidenceRepair
Private field means stable historyMutate a retained nested elementSpecify ownership and element immutability
Same signatures prove substitutionRejected withdrawal changes stateShared state-machine contract and public trace
Every large function needs splittingA coherent pure kernel and its invariantCompare comprehension and boundary cost
An interface needs two production providersOne real clock plus deterministic testingName present benefit and carrying cost
Fewer comments is betterMissing units or failure contract after deletionPreserve useful API documentation
Renaming cannot break behaviorReflective client or persisted keyCompatibility inventory and migration
Cleaner extraction preserves behaviorIterator exhaustion or late failureTrace effects before and after
Repeated field access proves Feature EnvyAn intentional serializerIdentify policy ownership before moving code
Wrapping a primitive guarantees validityNaN, Boolean amount or mismatched currencyExplicit construction and operation validation

Practice Mistake Checks​

Use P02 for aliases, P04 for actual parent contracts, P08 for output order, P10 for published compatibility, P14 for one-provider seams and P19 for failure boundaries. Record a real failure or uncertainty, the hidden assumption, repair and changed-case check. Do not invent a mistake quota. The practice feedback follows an independent attempt.