Introduction The programming community goes through fads regularly, and they start repeating after a while. It’s very similar to the fashion industry,
On Protocol Witnesses
Introduction So, it’s just a normal day at work, you’re writing some Swift code, and the need arises to model an abstract
Testing Async Code
Introduction By now, pretty much every major modern OOP language has gained async/await. Java is the odd man out (they have a
On Code Readability
Introduction I have many times encountered the statement from developers that “90% of time is spent reading code”, and therefore readability is
What Should Your Entities Be?
Introduction So, you’re writing an application in an object-oriented programming language, and you need to work with data in a relational database.
On ReactiveX – Part IV
In the previous parts, first we tried to write a simple app with pure Rx concepts and were consumed by demons, then
On ReactiveX – Part III
Introduction In the last part, we took a knife to Rx’s one-size-fits-all “Observable” abstraction, and carved out four distinct abstractions, each with
On ReactiveX – Part II
In the last part, we explored the bizarre world of extreme observer-dependence that gets created in an ReactiveX (Rx)-driven app, and how
On ReactiveX – Part I
If a tree falls in the forest and no one hears it, does it make a sound? The ReactiveX libraries have finally
REST SchmEST
On almost every project I’ve worked on, everyone has been telling themselves the web services are RESTful services. Most of them don’t
The C++ Resource Management Model (a.k.a. Why I Don’t Want Your Garbage Collector)
My Language of Choice “What’s your favorite programming language, Dan?” “Oh, definitely C++” … Am I a masochist? Well, if I am,
Do You Really Need Dynamic Dispatch?
Introduction Polymorphism through dynamic dispatch (a base class, plus multiple subclasses that each override a base class method) is the standard way
What Type Systems Are and Are Not
Introduction Programmers are typically taught to think of the type system in languages (particularly object-oriented languages) as being a way to express
Examples Aren’t Specifications
“Specification by Example” is a particular implementation strategy of Behavior-Driven Development. The central justification, as far as I can tell, is expressed
What Is “Agile” Anyway?
Introduction What is “agile” software development? Well, more than anything, it’s definitely not waterfall. At least in the case in this age
Tests vs. Test Specifications
When you first get introduced to the idea of test driven development, it may seem strange that tests become such a central