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 it
with Jest) or special annotations (e.g. …
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 services). The following code shows what a simple action can look like. A component that displays a login screen could dispatch this action to tell whoever is listening (e.g. an effect) that an HTTP request to the login endpoint of our backend should be sent. …
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 to the table. …
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 code that is repeated in many parts of an application with little alteration. It is not uncommon for a typical Java project to devote hundreds of lines of code to the boilerplate required for defining simple data classes. …
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:
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. …Most web pages offer a contact form for visitors to reach out to them. Often, web pages also include the contact email and a contact phone number in plain text so you can directly call them or write them an email in your favorite email client.
This is not bad per se as you can provide people multiple ways to contact you. However, if you need to make your phone or email available as plain text on your web page, then you should guard it to avoid crawlers used by shady people to add you to their spam list.
Here are two basic ways I can think of to solve this…
One disadvantage the web has compared to mobile platforms like Apple iOS and Android: without third-party libraries, developers only have rather basic UI controls to start with. While HTML5 provides a lot of semantic elements to express even complex layouts and respecting accessibility, the default UI controls haven’t kept up with time that well. Either it’s the style that looks outdated (though the Google Chrome and Microsoft Edge teams have started an initiative to improve the default UI controls) or the functionality is too limited by today’s standards.
Let’s take the<table>
element as an example. Even if the default style is rather basic, a pure HTML5 table gets the job of displaying data in a tabular view done. However, it lacks functionality and usability that one might expect in a modern…
There are constantly new products by fresh startups as well as big corporations coming to the market. Some of them took years to build while others have been built in a couple of weeks.
In an environment where the only constant is change (e.g. in the tech industry), you may not be able to afford to take too long to enter the market. But great products can take years to build and can cost a lot of money and resources. Some companies can afford this but many can’t.
This brings us to the idea of prototyping and creating an MVP.
In this post, I’m going to briefly explain the idea behind prototyping and MVPs. The, we’ll look at why a Lean Stack helps with creating a good prototype and converting it to a real product. …
There are constantly new products by fresh startups as well as big corporations coming to the market. Some of them took years to build while others have been built in a couple of weeks. In an environment where the only constant is change (e.g. in the tech industry) you may not be able to afford to take too long to enter the market. But great products can take years to build and can cost a lot of money and resources. Some companies can afford this but many can’t. This brings us to the idea of prototyping and creating a MVP.
According to Wikipedia, a minimum viable product (MVP) is a version of a product with just enough features to satisfy early customers and provide feedback for future product development. Unlike a MVP, prototypes usually do not make it to the market, but they still get to be in the customer’s hands. Building a prototype helps you get a sneak-peek at how real people will interact with your product. The development team can gather the customers’ feedback and make changes to the prototype or just create a new one. …
About