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
Massive View Controller
Massive View Controller The Model-View-Controller (MVC) set of design patterns for GUI application development has devolved into what is derisively called “Massive
Abstraction Layers
Over time, the software we write continues to increase its sophistication. We are solving more and more advanced problems, expressing the solution