Posts Tagged: software architecture

Home » software architecture

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

Annotate and validate data structures with JSON Schema

I'd like to begin my little series of useful tools for developing CRUD applications with JSON Schema: "JSON Schema is a vocabulary that allows you to annotate and validate JSON documents." JSON Schema gives you a straightforward way to provide type information and validation to existing data structures. Say, for example you have a product instance like this (converted from your language's native object or general data structure format using a tool like Jackson for Java): Then using a tool like this online JSON ... Read more

Why Do We Still Write CRUD Applications?

Probably every software developer - since the 1990s at least - has been there once, asking him- or herself: "Why do I have to write tedious, repetitive CRUD code time and time again?" Being good, virtuous programmers some of those developers did what software development in the end mostly is about: They tried to automate a cumbersome, repetitive process that like any repetitive process should be performed by machines rather than humans. Some have succeeded - to some degree at least - ... Read more

Using Netflix Zuul As a Reverse Proxy / API Gateway

Zuul, which like the service discovery tool Eureka and the fault tolerance library Hystrix is part of Netflix' cloud orchestration stack, is a reverse proxy / API gateway. A reverse proxy conceptually works like this: A reverse proxy allows you to route requests to a single domain to multiple backing services behind that proxy. This can be conducive in situations where you want to break up your application into several loosely-coupled components that externally, that is facing the user, nonetheless act as if ... Read more
Next Page »