Testing is an important part of software development. Although testing is still sometimes regarded as an afterthought, especially in time-critical projects, methodologies like Test-driven development (TDD) and improved tooling for testing have done a lot in recent years to rectify this.
There are great testing frameworks out there for writing unit tests, component tests, and end-to-end tests in web projects. For UI testing end-to-end testing frameworks like Cypress or Selenium are often used. As with all things, there are good and bad things about end-to-end tests:
Progressive Web Apps (PWA) are a hot topic on the web right now. No wonder, they promise a user experience that should not be inferior to native apps for Android and iOS. At the same time, it should no longer be necessary to develop a separate app for each platform (especially Android and iOS), which of course involves more costs and effort.
Google defines three main features of PWAs: they must be reliable (i.e. they must work even on a bad network), fast and appealing (from the UX perspective). …
Angular is a great JavaScript framework for creating applications which can run on many platforms.
However, the more your app grows, the longer your compilation times may become. This makes writing code more cumbersome and reduces your developer productivity. You shouldn’t have to wait two minutes for compilation to be finished just to see whether this one line of changed code did the trick.
Sure, if your app is the size of a to-do app, you might be satisfied with the compilation times. …
In recent years there have been various software-based products where you could easily follow their progress. This hasn’t always been the case. Many products were and are still being created behind closed curtains, only released to the public once they are somewhat ready. Surely, this is not always a bad idea: some projects and environments are highly sensitive (e.g. in intelligence agencies).
Nowadays, there’s been a noticeable shift when it comes to building products, especially among tech companies. Companies want to deliver as fast as possible. Thanks to CI/CD, code can be easily shipped multiple times a day. …
Writing tests can feel slow and mundane. Testing frameworks like Jest are often making our lives as developers easier through a great developer experience. I’ve been using Jest in both frontend applications (e.g. with Angular) and in Node.js based services (e.g. Express.js) for quite a while.
Recently, one Angular project was updated and required developers to use Node 14 from now on (previously, the project required Node 10). The update went through smoothly and we didn’t encounter any issues in this process. However, I increasingly noticed an issue that I found rather strange. If an uncaught exception occurred in a…
Testing is an important part of modern software development. In the last few years, tooling has improved a lot to help developers write good tests. After all, writing tests should not feel tedious. Instead, tests ensure that existing functionality works as intended.
There are great testing frameworks available for most common programming languages like Java, C#, Python, and JavaScript. In the JavaScript world, Jest and Jasmine are popular testing frameworks. Regardless of any specific programming language or framework, a test usually has more or less the same structure:
describe
and…
NgRx is a widely used reactive state management library for Angular applications. Inspired by Redux, NgRx uses RxJS under the hood to allow users to manage global state across an entire application in a fast and consistent manner. Not every application needs a state management solution, but centralizing your application’s state and logic enables powerful capabilities like undo/redo, state persistence, and much more.
There are a few key concepts to understand in order to use NgRx, and actions are one of them. In the NgRx context, actions describe unique events that can be dispatched from anywhere (e.g. from components and…
Visual Studio Code has become a popular choice for all kinds of developers in the last few years. There’s a lot to like about VS Code: It supports a variety of languages; there are many free extensions available; it is frequently updated, and the source code is available on GitHub.
After a short stint with Eclipse, I quickly embraced IntelliJ IDEA (Ultimate) as my most favorite IDE. In the last two years, I’ve become a fan of VS Code as well, though. As someone who uses both VS Code and IntelliJ IDEA regularly, I appreciate what each of them brings…
Java is a widely-used programming language. There are a lot of reasons for this: Java is quite stable, there’s a big Java ecosystem, and many developers learn Java as their first programming language (e.g. in university). I started with Java as well. First, the Java basics, then Java for Android applications, and finally server-side Java.
A common complaint about Java is that you need to write a lot of code to achieve things. If you have experience with languages like Python or JavaScript, then writing Java code can sometimes feel a little tedious. Boilerplate is a term used to describe…
The Angular framework does a lot under the hood to detect changes and update the UI accordingly. Similarly to other frameworks like React or Vue.js, Angular supports data binding to always show the latest data.
While Angular is already a fast framework, we can always improve things. One improvement idea is to reduce the amount of change detection work to keep the UI as smooth as possible. For Angular components, there are two change detection strategies available:
Default
uses the default CheckAlways
strategy in which change detection is automatic until explicitly deactivated. …Senior Software Engineer @LeanIX. Co-founder of Sedeo. Passion for software engineering and startups. Looking forward to build great things. 有難うございます。🚀