exercise programming style

Exercises in Programming Style: spreadsheets

This is the 15th post in the Exercises in Programming Style focus series. Last week, we solved the top 25 word frequencies problem with the help of the database. This week, we will get back to solve it with code alone. The design is to model the problem as a spreadsheet. The spreadsheet holds a number of cells, each cell having a value and a formula. Just like in regular spreadsheet, the formula is a function that might reference another cell's value, and computes the current cell's value.

exercise programming style RDBMS

Exercises in Relational Database Style

This is the 14th post in the Exercises in Programming Style focus series. So far, we solved the word frequencies problem with code alone. This week, we will solve it with the help of infrastructure. And with this specific problem at hand, what better fit than the database? We can approach the problem by loading the data read from the files in the database, and retrieving the top 25 words with the relevant query.

exercise programming style aop

Exercises in Aspect-Oriented Programming Style

This is the 12th post in the Exercises in Programming Style focus series. This week, we will focus on Aspect-Oriented Programming, a powerful programming technique: In computing, Aspect-Oriented Programming is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding additional behavior to existing code without modifying the code itself, instead separately specifying which code is modified via a 'pointcut' specification, suc

exercise programming style

Exercises in Programming Style and the Event Bus

This is the 10th post in the Exercises in Programming Style focus series. In last week's post, we solved the now familiar top-25-word-frequencies-in-a-text-file problem by using Event-Driven Programming. When the number of observer-subject pairs grows, an alternative is to migrate to the Event Bus. The Observer pattern is a messaging pattern: an Observer subscribes to a Subject. When the later emits an event, the former is notified. This is End-to-Point messaging: if multiple observers are intere

exercise programming style

Exercises in Programming Style: Event-Driven Programming

This is the 9th post in the Exercises in Programming Style focus series. In the post from two weeks ago, we solved the problem using Object-Oriented Programming: we modeled the problem space using objects. For an object to communicate with another one, a dispatch() method was made available. Remember before the web was ubiquitous? Graphical user interfaces were already a thing. One great and widespread way to handle user interactions is Event-Driven Programming: this has been popularized as the

exercise programming style

Exercises in Programming Style: maps are objects too

This is the 8th post in the Exercises in Programming Style focus series. Last week's post was dedicated to OOP. Despite popular belief, the exercise was solved using neither accessors i.e. getters and setters, nor shared mutable state. The solution's implementation was based on traditional OOP constructs offered by the Kotlin language: classes, inheritance and overriding. Other languages may offer different ways to do OOP.

exercise programming style

Exercises in Programming Style, back to Object-Oriented Programming

This is the 7th post in the Exercises in Programming Style focus series. The post of this week is special, as it's about Object-Oriented Programming. It's quite popular nowadays to dismiss OOP. There's a lot of confusion around it. Some people conflate OOP with accessors (i.e. getters and setters), or shared mutable state (or even both). This is not true, as we will see in this post.

exercise programming style

Composing Exercises in Programming Style

This is the 6th post in the Exercises in Programming Style focus series. Last week saw us using higher-order functions by passing them as the parameter to another function, and dynamically calling them. The parameter passing is quite nice, but it's not easy to follow the flow of the program. This week we are going to keep those functions, but make use of them in a different way, with function composition.