The best thing you can do as a software developer is not writing code, but removing it. Here's why.
This is a blogpost version of the content of my talk "Functional Core, Reactive Shell"
A look at how to write classes and structs that expose their dependencies as initialization arguments in Swift.
Sometimes the idea we get when reading a class interface is different from what is actually going on inside its implementation, for example there could be several hidden dependencies. Making a class dependency explicit in its interface is a useful technique to make the code simpler to understand, and easier to test.