Loading...
Loading...
Found 6 Skills
Enforces a pure-Dart value-object core that stores every quantity canonically — money as integer minor units keyed to each currency's real ISO-4217 exponent (never *100), physical amounts as SI whole units, timestamps as UTC — and converts only at the presentation edge; forbids double/num money, cross-currency arithmetic, and defaulting an unknown currency to two decimals; routes every division of money through one largest-remainder allocate() primitive so parts always sum to the whole to the exact minor unit; derives totals instead of storing them, links entities by stable id, and injects a Clock instead of DateTime.now. Use when defining or changing Money, Currency, or a unit value object; parsing or formatting an amount; splitting, prorating, discounting, tax/tip, or distributing money; adding a currency or FX rate; converting quantities; or fixing float-money, hardcoded-100, cross-currency, off-by-a-cent, or stored-total-drift bugs.
How to test domain models effectively: value object testing (immutability, validation), entity testing (identity, business logic), domain exception testing, aggregate testing, high coverage patterns (95%+), and testing invariants and constraints. Use when: Testing domain layer code, validating value objects, testing entities with business logic, ensuring domain invariants, or achieving 95%+ coverage on domain models.
[Pragmatic DDD Architecture] Guide for creating DDD Entities and Aggregates. Use when defining new domain entities with business rules, private state, and getters. Covers entity instantiation via objects, integration with Value Objects, and the rule against using setters.
Domain-Driven Design tactical patterns for complex business domains. Use when modeling entities, value objects, domain services, repositories, or establishing bounded contexts.
CUI Java unit testing standards and patterns with JUnit 5, generators, and value object testing
Use when the user is modeling something whose identity matters beyond its attributes — phrases like "entity", "this thing has an ID", "two of these are the same if their IDs match", "tracked over time", "lifecycle". Distinguishes entities from value objects by identity continuity. Pairs with ddd-value-object (the opposite distinction).