3 ms·
A general principle in a complex system of components is for each component to accept the widest range of inputs is reasonably can (and generate the narrowest r
by jmull 7y ago
A general principle in a complex system of components is for each component to accept the widest range of inputs is reasonably can (and generate the narrowest range).
This improves reliability and minimizes the scope of changes needed for the system to continue to work when something changes. This is particularly important in distributed system, where you can’t generally update the system coherently and instead need/want to update it piece-meal or progressively.
Strong type systems tend to encourage you to specify strong constraints on the typed values. While you’re specifying your types you need to be careful to not over specify, making assertions you don’t need to make, ending up with a brittle system what will break unnecessarily.
There are nice advantages to strong expressive types, but the advantages are all within the local component and it takes some extra care to avoid imposing inflexibility on the system.