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
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
Analysing an existing application if you join a project.
Assessing the quality and maintainability of an application.
Identifying soft spots in an application which could benefit the most from refactoring. There are numerous reasons for wanting to size up the complexity of an application. In addition to general and language-specific tools provided by IDEs and applications such as SonarLint / SonarQube it can be useful to not only take framework specifics into account but to actually make use of them to get a better ...Read more
Recently, together with Jan Massenberg of Setlog I gave a talk on test-driven development (TDD) with Angular at the 2nd Angular Ruhr meetup. Currently, I help Setlog with improving their software quality and in particular with developing a SaaS tool that simplifies quality assurance processes (QA) in supply chain management. The talk was about hands-on experience with using TDD for implementing this SaaS tool. This article (sorry, German-only) summarises the key aspects of the talk and goes into some more detail regarding the various ...Read more
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
Recently, through various discussions about the nature of the web and web applications I came up with an intriguing (to me at least ...) idea: Web apps should behave like UNIX command-line tools. Please hear me out and let me elaborate. Probably the most widespread pattern in modern web app development is that of single-page applications (SPAs). Though that particular term isn't used as abundantly anymore as it used to be a few years ago the design pattern it promoted still persists: Web apps ...Read more