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
One of the quintessential laws of human-computer interaction (HCI) and by extension software user experience is Fitt's Law, which states that the time required to rapidly move to a target area is a function of the ratio between the distance to the target and the width of the target. The most common application of this law these days can be paraphrased as "The wider an object is on the screen and the closer it is to the mouse pointer the easier it is ...Read more
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
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
At RuhrJS 2017 Stefan Judis gave an interesting talk on DOM APIs in the context of reactive programming and Observables:Read more