Would we be better off without test environments? I try not to recommend too many talks, but I loved this one from Nicky Wrightson of Skyscanner about living without pre-production environments. It provides an interesting solution to a lot of problems with performance environments I’ve been thinking through. Trying to accurately reproduce live environments seems… Continue reading Living Without Pre-Production Environments
One of the more interesting interview question I’ve been asked in the past few years was about the differences between cloud development and monoliths. I don’t think I gave the expected answer when I said that they’re not all that different Yes, cloud environments are complicated but good cloud development relies on the sort of… Continue reading What’s So Special About Cloud Software?
Back in the Noughties, when I first started web programming, data storage choices were straightforward. Your options were limited to RDBMS systems (Oracle if there was a budget, MySQL otherwise); if you to store binary data, then you could use file systems; and, in some cases, where the data was read-only maybe, you’d use a… Continue reading Why Use Couchbase?
InfoQ recently published a new talk by Adrian Cockroft, Managing Failure Modes in Microservice Architectures. It’s a good talk, but I think the title is a little restrictive. Many of the problems with microservices are problems with all computer systems – it’s just that microservices punish mistakes more brutally. In a recent job interview I… Continue reading Microservice Lessons For Monoliths
In my previous post, I looked at the minimal infrastructure for a hobbyist webapp in JHipster. Now I want to look at the process for putting a prototype into production. What do I mean here by a prototype? I mean a simple first cut of a production site. It needs to be simple, while achieving… Continue reading Deploying a prototype with JHipster
This is the first in a series of posts looking at JHipster deployment. This post considers the most basic deployment. Later posts will look at more maintainable set-ups, including continuous integration and deployment pipelines For me, one of the most exciting things about JHipster is that it makes it feasible to build hobby websites on… Continue reading Deploying a hobby site with JHipster
Recently, I was set an interesting challenge: set up an Internet radio station. I knew very little about this but was relieved to find out it was easier than expected. Having reviewed the different option, the best one seemed to be icecast2, which is actually the backing for a lot of commercial services. Getting the… Continue reading Setting up an online radiostation
Coverage testing is considered to be an essential part of development nowadays, but I don’t think many people reflect deeply enough about what it involves, and why they are doing it. Coverage tools measure how much of the code is exercise by the tests that are run and, broadly, a higher number is better. But it doesn’t… Continue reading Java Infrastructure Part 7 – Adding coverage checking
I’ve been using JUnit for about fifteen years. In that time it has become a central part of Java development. While that’s great, unit testing is still problematic. Most people agree that automated testing is necessary, but its exact form is more controversial. There are two main candidates for a unit testing framework, JUnit and TestNG. These packages have… Continue reading Java Infrastructure Part 6 – Unit testing
An interesting effect of writing a series of posts like this is how it clarifies your thinking. I originally planned to introduce a continuous integration server after Javadoc, JUnit and so on. But, as I’ve researched and thought about this, I’ve decided that a continuous integration server is a fundamental tool for development. It should be at the heart of any project. Good… Continue reading Java Infrastructure Part 5 – Introducing Jenkins