Meeting Changing Requirements

A Software is as good as it’s ability to change to meet changing requirements. In order to ensure that the Software can meet changing requirements, teams, sometimes, spend a lot of time trying to anticipate what those changes might be and putting up a structure (or architecture) that will ensure that the Software will be […]


Extended Goals for Developing

When we (developers) are developing Software, our goal is often to deliver a set of features that different users of our Software need. This is what the business focuses on – whether the features have been delivered – and as such other necessary things such as ensuring that code quality is good gets low priority. This […]

Practising REST Part 3 – Some Tools

Spring MVC provides a lot of useful features for building a RESTful API. Using Json With @RequestBody and @ResponseBody @ResponseBody can automatically convert a domain object into JSON. @RequestBody can automatically convert a JSON into a domain object. @RequestParam(required=false) means that the String parameter will not be required. This will allow both: “/users?” and “/users?mobileNumber=77777777” […]

Practising REST Part 2

Practising Rest Part 1, discusses why “/getUserByEmail?email=” or “/makeUserAdmin?email=” are not RESTful and, therefore, do not yield the benefits of REST. It further discusses what a RESTful API looks like for a users domain and shows the benefits it brings: easy discoverability of your application’s functionalities, ‘API affordance’ (ease of use), simplification of architecture and […]

Practising REST 1

That, an API is not SOAP does not mean that it is RESTful. Usually, we talk of whether an API is going to be REST or SOAP and, as such, once we are not using xml and Stubs, we say we are using REST. When we talk of REST in that limited sense, it’s value […]

Towards Scalability – Financial Transactions App Part 1

A Financial transaction essentially moves funds from one account to another account. The transaction, therefore, affects the balances of the accounts involved. Let’s say Dennis and Stephen have accounts with ABZ Bank. Dennis has 50 in his account and Stephen has 20 in his account. Dennis transfers 10 from his account to Stephen’s account. This transfer is a Financial transaction that alters […]

Using Spock Framework In a Spring Maven Java Project

“Spock is a testing and specification framework for Java and Groovy applications. What makes it stand out from the crowd is its beautiful and highly expressive specification language.” (From the framework’s documentation – To use it in Spring Maven Java Project, do the following: 1. Add Necessary Dependencies/Plugins to Your Pom SpockFramework Dependency Groovy […]

Handling Connection Pool Issues In Spring Boot

Problem: I created a Spring Boot App that connects to a Mysql Database. This App works fine when it is started. After some time of inactivity, the App fails to connect to Mysql database until it is restarted. I narrowed the issue down to improper connection pool configurations. Essentially, Spring Boot’s autoconfiguration was not working […]