Join 📚 Josh Beckman's Highlights
A batch of the best highlights from what Josh's read, .
More often than not, when we use the language’s primitives, we give up an opportunity to express the domain model of our application. When we use a `String` to represent an `Email`, we haven’t encoded the fact that it needs to satisfy some constraints (ex: have an `@`, or satisfy a regular expression, or have a finite length). When we use `Hash` to represent structured data, we allow the possibility that some keys will be unset, or that some other keys will have values. We can fix all these problems by using classes specific for our use-cases.
Affordance for Errors, Part 2
Guillaume Malette
With developers spending less than a third of their time actually writing code, developer experience includes all the other stuff: maintaining code, testing, security issues, addressing incidents, and more.
The Case for 'Developer Experience' - Future
future.a16z.com
A distributed system can be described as a particular sequential state machine that is implemented with a network of processors. The ability to totally order the input requests leads immediately to an algorithm to implement an arbitrary state machine by a network of processors, and hence to implement any distributed system.
Time, Clocks and the Ordering of Events in a Distributed System
Leslie Lamport
...catch up on these, and many more highlights