Getting Started with Fable. Routing

Photo by Diego Jimenez on Unsplash

Welcome back! This article is the part of “Getting started with Fable” series, so if you missed the previous articles please visit:

The idea of these series is to create a template which can be used as a starting point for enterprise application of any complexity. So as I’d love to see a functional application with routing, state management, unit tests, end-to-end tests, all possible linting tools, code style checkers, environment dependant configuration, build scripts (I hope I didn’t forget anything important).

Continue reading “Getting Started with Fable. Routing”

Enable MSAL logging

Photo by Tadas Sar on Unsplash

Today I wanted to share how to enable logging in MSAL JS library. It’s very easy to miss this because it’s not part a basic documentation and it’s hidden in the advanced topics with configurations for .NET and iOS.

Continue reading “Enable MSAL logging”

Service Workers and PWA

Photo by Carlos Muza on Unsplash

Service workers and Progressive Web Application (PWA) are very hot topics right now. And as far as on my latest project I’ve integrated the service worker and PWA I want to share my experience from the perspective of real production usage, benefits and drawbacks. I hope that this information helps.

Currently on my project I’ve faced a need to implement additional client side caching in the Angular application. This decision was influenced by several important conditions in which our application exists. So let me try to give a bit of context here.

Continue reading “Service Workers and PWA”

Getting started with Fable. Scaffolding

Photo by Ricardo Gomez Angel on Unsplash

This article is the continuation of the “Getting started with Fable” series, so if you missed the previous one please visit https://antongorbikov.wordpress.com/2019/08/29/getting-started-with-fable/ .

So to briefly recall in the first article we’ve set up the development environment to start the Fable/React project. Now it’s time to prepare a minimal compilable project, which often called a scaffold. The reason I’m writing this is the fact that https://fable.io/ in my personal opinion doesn’t provide enough details and explanations. It has enough samples but lacks explanations. So I’ll try to fill this gap. This guide is written by the front-end developer, so take in mind that I can assume some things (which are common in front-end development) and give them without detailed explanation. I’ll try to avoid such things, because the idea is to prepare a guide for any developer without any specific background. But if you find something unclear feel free to leave a comment I’ll update the articles with required explanations.

Continue reading “Getting started with Fable. Scaffolding”

Getting started with Fable

Photo by Ilija Boshkov on Unsplash

As a developer I’m always eager to learn new technologies, practices and languages. Currently very interested in expanding my expertise in the functional programming. So at some point I’ve decided to learn functional language, not just functional patterns which can be used in the JavaScript. I’ve a .NET background and taking into account this background I’ve decided to learn F#.

Continue reading “Getting started with Fable”

Migrating from ADAL to MSAL

Photo by Tadas Sar on Unsplash

UPD: Oct, 13th. Version 1.1.3 fixed a lot of issues, most important one is that now tokens’ cache is working properly and requesting token from MSAL is no longer leads to redundant calls.

Recently on my project we’ve started migration from ADAL JS to MSAL JS. If you are not aware, MSAL JS team released a first stable version in May, so it was a good time to try migration.

Continue reading “Migrating from ADAL to MSAL”

Angular tips: async pipe

Today I want to share one important thing about usage of RxJS streams and async pipe in Angular applications. I still face some misunderstanding here or even the facts that people don’t suspect any potential issues with the code.

It’ll be very boring and probably not very useful if I just show code sample with unexpected behavior and code sample with expected behavior, because it might look like “Why are you doing it at all? Isn’t the code looks weird?”. So yeah, I’ll start from the preconditions and use case to explain what I wanted to achieve and how I wanted to achieve it.

Continue reading “Angular tips: async pipe”

Stop writing Unit Tests

The problem I want to discuss is quite strange to me. Several times I was working on the projects where code coverage was one of the key metrics. Unfortunately a lot of managers without technical background know that “High coverage guarantees stable project without regression bugs”. As a result instead of analyzing the project, code base and opportunities project comes to decision that “Unit Tests will save us all (and money, of course)”.

Continue reading “Stop writing Unit Tests”

Angular – one year usage summary

When you are starting the new project you probably facing an issue of picking up proper technical stack. There are dozens of frameworks (Angular, Vue.js), libraries (React, RxJS, lodash), tools (webpack, gulp) and even languages (JavaScript, TypeScript, Reason) available for front-end developers. At this point of time most of the developers are starting to search information, comparison articles in the Internet. I’ve been working with the Angular (a.k.a. Angular2+) for last year and I want to share my thoughts about my personal experience.

Continue reading “Angular – one year usage summary”

NPM dependency hell

Today I want to share some thoughts on the current state of NPM packages infrastructure. I’m pretty sure that NPM is very good thing:

  • It’s easy to use. Seriously, I love the way it’s working. Recent changes, like adding package.lock.json are making NPM better and better every day;
  • It has a good community and it’s very popular. You can literally find everything that you need here;

However I’m a bit disappointed in the current state of dependency graphs for most of the popular packages.
Continue reading “NPM dependency hell”