Well Constrained Code
The Joy of Joining a Well Structured Project Late
I've been working on my first all Swift project at work. After about a month I've largely hit my stride where I don't feel like I'm fighting with Swift unless it's because I'm running up against some other API surface that isn't particularly Swift friendly. There's nothing like hitting a crasher because you didn't realize that everything in the SDK is force unwrapped because there's no nullability annotations anywhere.
It was easy enough to fix, but it was vexing to hit nonetheless.
The most interesting thing is that because I'm joining the project in the final third or so of the development process, the foundations were long ago poured and I don't have many chances to make large scale changes to the structure of the app. On top of that, the developers on the team before I joined developed a very opinionated style for pretty much everything.
The great thing is, the style decisions are solid and have practical reasons behind them and the foundations of the project are solid. This means that I can find a base example that's similar to whatever I'm working on, read through the classes and get a basic understanding of what's going on, then follow it as a template. I'm only making decisions about the functional bits of my code, and not thinking nearly as much about the structure of the code or how it relates to everything else because those decisions have largely already been made.
I also realize that if there were problematic decisions, or style that truly offended my sensibilities it would make the exact same situation maddening.