Posts Tagged: software architecture

Home » software architecture

References to Design Pattern Libraries

When designing and developing software it's always useful to have a reference to common software design patterns handy. Apart from cloud design pattern libraries there are collections of more low-level or more general design patterns, too. These include the classic GoF design patterns and Martin Fowler's Patterns of Enterprise Application Architecture. Read more

Nonsense We Put up With: Complexity, Agile Gone Wrong and Enterprise Decision Making

Recently, I've come across a few articles that - although about ostensibly different subjects - share a common theme: When trying to create business value through software and devising the structures required to do so we all too often put up with wasteful processes, politics and toxic behaviour patterns that not only do not contribute to our goal but are downright detrimental. First, there's this transcript of a talk Martin Fowler gave at Agile Australia this year: The State of Agile Software ... Read more

Things to Consider When Creating a New Business App: A Checklist for Setting up a Java-Based Software Architecture

Software developer Tom Hombergs - a former fellow student of mine - published this useful checklist for setting up Java applications on Reflectoring: A Checklist for setting up a Java-based Software Architecture It covers a wide array of both high and low level aspects of server-side and client-side development as well as architectural concerns. Furthermore, the checklist also has sections on operations, the development process and testing in particular. While some of the details may vary depending on the type of applications you create, ... Read more

Keep it simple, stupid

As something of a follow-up on my article on using boring solutions from two weeks ago I'd like to point you to a blog post by Justin Etheredge, cofounder of software development company Simple Thread: Software Complexity Is Killing Us In this post Justin outlines in which ways software development has become easier in the past few decades and also points out the ways in which it hasn't. Most of the complexity of software applications accumulates in the layer that deals with business processes. ... Read more

HTML is an API

HTML is an API or rather it could be if we used more in the way it was intended. In a comment on this Hacker News post about Toapi, a library that makes clever use of XPath expressions in order to provide an API from existing web pages, a user wrote Now I don't want to be a downer: but we collectively seem to have forgotten that HTML as a markup language with sufficient semantic elements, is a perfect API in itself. ... Read more

A Quick Reminder About the Relevance of Latency in Computer Systems

This Gist by Jonas Bonér gives a quick overview of the different latency values for accessing different kinds of data storage and memory systems and the order of magnitude by which they differ: Latency Numbers Every Programmer Should Know Putting this in perspective is particularly important in the context of service-based architectures like RESTful web services, Microservices and similar approaches. All-out service-based architectures might be the right the solution to some scalability and deployment problems in complex software systems but it's vital to keep ... Read more

12 Factors for Building Quality Web Applications

When considering the different aspects that potentially contribute to (or detract from, mark you ...) quality, reliability and maintainability of a web application I always like to come back to the Twelve-Factor App. Originally created by Adam Wiggins in 2011 the Twelve-Factor App is a highly useful design framework for both creating new web apps and measuring and improving the quality of existing applications. This framework allows you to create and maintain long-term viable applications that make use of declarative formats, clearly ... Read more

Microservices and Decoupling Front-end Components

Microservices have become a common design pattern for splitting up and modularising monolithic applications. The indiscriminate application of this particular design pattern is quite a bit worrying, though. A few months ago I gave this answer to the question what the biggest struggle with Microservices is: Convincing people that microservices are not a cure-all but just another design pattern. You have to start out with a monolith and only if you realise along the way that some components might work better as a ... Read more

JHipster: Generate And Bootstrap CRUD Apps With Spring Boot And Angular

The previous two posts in my series on helpful tools for developing CRUD applications were about tools that addressed very specific problem areas: API format specifications and code generation from those specifications in particular. This post will be both less about APIs and solving specific CRUD-related problems but about a tool that deals with CRUD app requirements in a comprehensive manner. This tool I'm talking about is called - not so slightly tongue-in-cheek - JHipster. Both inspired by tried-and-true frameworks like Ruby on ... Read more

Swagger: A Roundtrip Tool For Creating And Consuming REST APIs

In this second part of my series on useful tools for developing CRUD applications I'd like to introduce Swagger and Swagger Codegen in particular. Introduce perhaps isn't exactly the right word because first of all Swagger is quite well known in developer circles these days. Secondly, a few months ago I wrote a blog post about how to use Swagger to generate client SDKs for REST APIs. Swagger - originally having originated at Wordnik is a tool for documenting and publishing their ... Read more
Next Page »