Posts Tagged: best practices

Home » best practices

The Richardson Maturity Model for REST APIs

On his website about software design patterns Martin Fowler provides an in-depth explanation of the Richardson Maturity Model for HTTP-based REST APIs by Leonard Richardson. According to that model REST APIs come in 4 levels of sophistication: Level 0, aka the "Everything is a POST request" model for example propagated by SOAP. This is basically tantamount to remote procedure invocation. Level 1 - Resources: Every resource is accessed through its own canonical URL. Level 2 - HTTP Verbs: Verbs such as GET, PUT, PATCH and ... Read more

My Curated Collection of Angular Design Patterns, Best Practices, and Other Resources

This is my personal, non-exhaustive collection of Angular design patterns, best practices, and otherwise useful Angular resources: General Angular Coding Style Guide Angular Cheat Sheet Top 15 Angular INDEPTH articles of 2019 JSON Schema to TypeScript declarations: Keeping Client and Server Models in Sync with Spring Data REST and Typescript Angular ng-template, ng-container and ngTemplateOutlet - The Complete Guide To Angular Templates The Missing Introduction to Angular and Modern Design Patterns Custom Validators in Angular Testing Dependency Management for Angular Unit Tests Using TestModuleMetadata Using Page Objects with Protractor and Cucumber in ... Read more

API Security Best Practices by Expedited Security

For everyone dealing with web-based APIs, both as a provider and a consumer, web app security service supplier Expedited Security (known for Expedited SSL, among other products) has compiled a vast, extensive compendium on API security best practices. The importance of secure APIs and best practices that help has make APIs more secure and dependable can't be emphasised enough. Covering each possible attack vector and adopting every best practice out there can seem like a truly daunting task. Guides like this one help ... Read more


I'm not sure if he actually came up with the term 'blogumentation' but software quality engineer Jamie Tanna features quite prominently when searching for it so at the very least he appears to be one of its more avid and deliberate users. Anyway, while the term 'blogumentation' might be somewhat obscure the concept behind this particular portmanteau is a seminal one. Basically, it derives from the insight that often the best way to learn and internalise knowledge is to talk, write and ... Read more

The 5 Levels of Logging Explained by Orhan Kavrakoğlu

In this article Orhan Kavrakoğlu explains the logging levels commonly used in software alongside with some pertinent examples as well as recommendations and best practices such as in which case to use which particular log level and how to present them to the target audience (i.e. other developers, system administrators or DevOps people) so they get noticed in accordance with their respective importance and urgency. As mentioned here before seemingly trivial improvements such as providing better context in your log messages can ... Read more

Artur Śmiarowski’s Guidelines for Writing Readable Code

Code means communication has become a bit of a mantra for me. Source code isn't just the means by which you translate requirements into commands and structures a machine can understand. Source code also communicates your intent as a designer and engineer as to what a particular piece of software is supposed to do. If written in a clear and comprehensible manner code can serve as an authoritative design specification with no or little extra documentation needed. I would go as far as ... Read more

RxJS: Observables, Observers, Subjects …

When developing web applications - or in fact any kind of application that involves interaction via a user interface - we inevitably have to deal with asynchronous events, perhaps even streams of such events, e.g.: mouse clicks asynchronous HTTP calls and subsequent display of data push notifications Because events are such an essential part of both the feature set and the user experience of many, if not even most, user-facing applications frameworks such as Angular treat them as first-class citizens and provide developers with ... 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

Sharing and exploring data models and database patterns

Somewhat in the vein of last week's post, I'd like to share a new service called dbpatterns with you. dbpatterns allows you to create ER models in the browser and share them with other users. If a particular pattern or model suits your needs you can directly export its DDL for PostgreSQL, SQLite, MySQL or Oracle RDBMS. I really appreciate the idea of promoting and sharing best practices for database systems. While object-oriented software design patterns are rather common (though some particular ... Read more

About the Pitfalls Of Software Development Effort Estimation

Software development effort estimation probably is one of the most disliked, even feared tasks in software development and computer science in general. However crucial, even the most experienced engineers succumb to common pitfalls from time to time or their estimates are off, too every now and then. This is an especially striking phenomenon because software development effort estimation actually is a well-researched subject that a plethora has been written about. Starting in the 1950s IBM did a tremendous amount of research on ... Read more