Home » Software Development

Software Development

Alan Kay Was Wrong About Him Being Wrong

Time to time someone is asking me what I think about what Alan Kay, the father of OOP, the designer of Smalltalk, the first object-oriented language, said in 1998 about OOP. He literally said that the very term “object” was misleading and a more appropriate one would be “messaging.” Here is what I think.             ...

Read More »

Microservices with Akka

As mobile and data-driven applications increasingly dominate, users are demanding real-time access to everything everywhere. System resilience and responsiveness are no longer “nice to have”; they’re essential business requirements. Businesses increasingly need to trade up from static, centralized architectures in favor of flexible, distributed, and elastic systems. But where to start and which architecture approach to is still a little ...

Read More »

Invest in a Github Organization!

To start, let me say that Github is the subject here simply because they are the biggest in the open source industry. Github has become the Facebook of software development and that is why it makes sense to focus on it. In the future, a better platform might show up and then this article will apply to that one. A ...

Read More »

Introducing Interaction-Driven Design

Before reading this post, I strongly recommend you read the two previous blog posts that serve as a foundation to this blog: MVC, Delivery Mechanism and Domain Model and A Case for Outside-In Development. Most software projects become very difficult to maintain and evolve after a period of time. Business is constantly complaining that things take forever to be delivered. Developers complain the ...

Read More »

On Tail Call Optimisation

If you are interested in functional programming as many of our craftspeople are, you will have heard talk about tail recursion. Tail recursion refers to a recursive function call that has been made from tail position. When a function call is in tail position it means there are no more instructions between the return of control from the called function and ...

Read More »

How Continuous Integration Works, and The Big Benefit No One Talks About

Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! In DevOps, Continuous Integration (CI) is increasingly the integration method of choice, in large part because of the speed at which it enables the release of new features, bug fixes, and product update. In a digital world that moves ...

Read More »

Going Serverless? Compare Your FaaS Options

As is typical with new concepts and technologies, the absolute definition of “serverless” or FaaS (Functions as a Service) is broad and undefined. In essence, it is a concept that takes cloud computing and “convenience as a service” to the extreme, spinning up processing power when your application needs it and responding with data. Serverless is perfect for IoT devices, ...

Read More »

DAO is Yet Another OOP Shame

Someone asked me what I think about DAO and I realized that, even though I wrote about ORM, DTO, and getters, I haven’t had a chance yet to mention DAO. Here is my take on it: it’s as much of a shame as its friends—ORM, DTO, and getters. In a nutshell, a Data Access Object is an object that “provides ...

Read More »