In response to my last post, I had a few insightful readers ask about various types of testing and if they went beyond the single purpose of confirming expected behaviors.
I also mentioned in the last post that human QA analysts are often able to effect quality in a way that automated tests currently do not, but that such an . . .
The first part of a fresh look at testing
For something that is thought to be precise and unambiguous, the whole subject of software testing tends to be comically unclear. I’ve had a deep interest in the subject of automated testing for iOS for years now, and find that if you ask 3 people what the point of testing is, you’ll probably get a dozen different answers.
For . . .
And CloudFlare made it really easy!
So, my blog has gone somewhat neglected for a couple years now and I’m sort of blown away by how fast that time went by... Being busy at work, busy with small kids and busy with side projects all meant that my little corner of the Internet dried up like an abandoned lawn in Arizona.
And part of that sad neglect included never adding . . .
It's the night before WWDC and so while this post is pretty late, its technically not too late to be appropriate. But not having much time to type this up means that I'm not able to go into as much detail as I normally do for these wishes and they are all going into a single post.
Some interesting context going into WWDC . . .
A Fun Experiment With Shared Mutable State and Lock-Free "Locking"
I was talking to a co-worker today about different ways to minimize the risks around having a single shared instance in any app that holds global values which can be read and written to from anywhere in the code.
The potential risks around global mutable state are discussed in lots of places, but some of the key problems are:. . .
Last year, I wrote a post about the problems with code coverage as a metric, and left the topic as “to be continued”, saying that I had some ideas for a better approach. Well, it's taken long enough, but here are the first pieces in that objective to evolve a better way to create and measure well-tested software.
What Makes Good . . .
Injecting unique, mutable and persistent property values
Update: The original approach and sample code in this post have been modified slightly — instead of every Injected instance defining its own storage for injected traits, the Injectable struct instead defines global storage for all Injected instances. This is to allow let / constant struct instances to be injected with a stored trait without . . .