Posts Tagged: software development

Home » software development

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

Tool Suggestion – NGD: Angular Dependencies Graph

When working on a larger codebase knowing about the dependencies between components is crucial, particularly so when you're trying to understand how an existing application works. NGD - Angular Dependencies Graph (part of the Compodoc documentation suite for Angular) is a tool that - as the name suggests - generates dependency graphs (i.e. boxes and arrows) for Angular applications. Dependency graphs give you a high-level overview of an application's architecture and hence are a great first step in understanding how an application ... Read more

Article Suggestion: “Provide Contextual Information in Log Messages”

Software developer Tom Hombergs recently wrote an article about making log statements more useful by providing context in order to make it easier for a developer who uses your libraries or builds upon your code to find out what the actual cause of an error is. The blog post contains many pertinent examples of both good and bad log output. Seemingly trivial improvements such as making your log output more helpful and explicit can make a huge difference and save a lot of ... Read more

On Writing Unmaintainable Code

Software developer Andrew Yurisich maintains an - ironically - maintainable version of the authoritative guide to unmaintainable code by Roedy Green of Canadian Mind Products. This expansive, tongue-in-cheek how-to teaches developers to make themselves indispensable through writing code only they can understand. Aside from the comical value learning by what not to do can be an extremely useful method. By making sure your code follows none of the guidelines put forward in this how-to you'll already have covered many aspects of writing readable, ... Read more

Bret Victor: The Future of Programming

Bret Victor - The Future of Programming from Bret Victor on Vimeo. 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

Use Boring Solutions

Often when working with both startups and project teams at larger, more seasoned companies I encounter a variation of the not invented here syndrome. This usually starts with the well-intentioned idea that in order to build the actual product you need ancillary services A, B and C in order for the product to work. However, more often than not instead of building the 'perfect' solution for your product yourself it might be a good idea to take a step back and think about ... Read more

One Cannot Not Design

One cannot not communicate. - Paul Watzlawick Philosopher and communication theorist Paul Watzlawick famously stated as one of his five axioms of group homoeostasis (the ability of a system to maintain its current state or equilibrium) that "one cannot not communicate", meaning that it's impossible to completely avoid communication. Even the act of intentionally not communicating - by staying silent for example - is an act of communication. In the case of silence depending on the communication situation this could be interpreted is ... 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
Next Page »