A value object was a property declaration, a constructor parameter and an assignment for every field — three lines each, all of them saying the same thing. The…
Enums are 8.1, so a set of allowed values in 2020 is class constants with a validating constructor — and the gaps are worth naming rather than discovering.…
A child class overriding a method had to declare exactly the parent’s return type, so an abstract repository could not promise that each implementation returns its own entity.…
Checking whether a key exists and then inserting it is two statements, and two requests can both pass the check before either inserts. The unique index is what…
Reading configuration by key from a dictionary means every consumer knows the key names and nothing validates them; binding to a class means the shape is declared once.…
Every framework had an event dispatcher and none of them shared an interface, so a library wanting to emit events either picked one or invented its own. The…
A mixin merges properties into a component with no indication of where anything came from, and two mixins defining the same name silently collide. The call site names…
Eleven custom blocks that exist to produce one layout. 5.5 added patterns, which is the feature the blocks were being used for — and it needs no build…