Book Review

Book Review: 99 Bottles of OOP

Posted on
Book cover 99 bottles of OOP

This time around, I decided to give you my comments on a book I recently read – or at least partially read since it is not finished yet. 99 Bottles of OOP is an amazing work from well-known Sandi Metz in cooperation with Katrina Owens (creator of exercism.io). Currently, the book consists of 5 of […]

Programming

Property Test-Driven Development

Posted on

It’s been some time since my last post. A lot happened in my life, but I’ll try my best to get back to writing more posts again. Let’s start off by looking at a variation of test-driven development: property test-driven development. Basically, it’s TDD with property tests. If you don’t know about property tests (QuickCheck […]

Programming

Further Deprecating the Decorator Pattern

Posted on
Design Patterns Book

In the last post, we saw ways to replace the decorator pattern for static use cases. If you want to decorate functional interfaces though, there is another whole class of use cases, in which the decorator pattern may not be the most suitable solution. Scenarios Let us consider a few typical scenarios, where dynamic decorations […]

Programming

Making implicit semantics explicit

Posted on

New students in computer science often have a hard time distinguishing syntax and semantics of a programming language. On top of that though, many also fail to recognize the numerous levels of semantics. In this post, I’ll try to highlight how making your program’s semantics more explicit helps us in achieving better overall software. Different […]

Programming

Switch your switch statements for something better

Posted on
fish in bowl

In the spirit of Dijkstra’s seminal work, let me dissect the bold statement given in the title, i.e. the switch statement. More often than not, I found switch statements in the code bases I work with to be a sub-optimal solution, and as usual, this is nothing new. Robert Martin already wrote about the detriments […]

Programming

Applied Mathematics: DRY up your code

Posted on

Recently, I had a few¬†discussions about the usage of mathematics in programming. Unfortunately, a lot of computer science students believe that the mathematics they learned for their degree is not applicable to their every day work as software developers. Let me give you a glimpse into “applied” mathematics in every day programming with this post. […]

Programming

On the harm of simple types

Posted on

Recently, I encountered a lot of occurrences, where I found problematic code that was essentially caused by the usage of primitive types where they simply were the wrong tool for the job. The following article will hopefully make you stop and rethink what you’re doing when you’re using one of these types the next time. […]