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”

Advertisements

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”

Articles worth reading #2

Time goes on and I have a bunch of articles to read. As in the first post here is the list of five articles:

  1. A Complete Guide to Grid – CSS Grid is amazing. Seriously. And the good news is that you can already use it (with some limitations if you still need to support Internet Explorer). But anyway, this article is really good introduction with a lot of visual samples, I use it as a cheat sheet, because data is well-structured and contain a lot of visualization;
  2. The introduction to Reactive Programming you’ve been missing – this one is quite “old” but not outdated. I’d say the opposite. After the release of Angular which is heavily relies on RxJS this article is mandatory for reading. If you haven’t used streams before probably you’ll have issues at the beginning of your way. This article should be a guiding light for you;
  3. Debugging React performance with React 16 and Chrome Devtools. – this one is very basic but still can be useful if you’ve never monitored performance of your applications;
  4. Get Started With Analyzing Runtime Performance – one more good article describing available tools for performance analysis;
  5. Orinoco: young generation garbage collection – this one is more theoretical but still quite important. Because understanding how garbage collection is working is crucial for every developer;

That’s all for now. Thanks!

Articles worth reading #1

Nowadays the amount of articles, blog posts and other sources of information is so huge. It makes it impossible to read all of the posted text. So here is the list of 5 articles I’ve read recently which I found quite useful:

  1. The Shocking Secret About Static Types – this one I think quite interesting because it provides some thoughts regarding benefits of static types. If you are thinking regarding using TypeScript in your next project – consider reading this one;
  2. You Might Not Need TypeScript (or Static Types) – this one is like an continuation of the previous one. More thoughts, ideas and alternatives;
  3. JavaScript Start-up Performance – more in-depth article regarding start-up performance. It’s really important for developers who work with heavy Single-Page Applications;
  4. Choosing a frontend framework in 2017 – actually this one is not about choosing a framework. It’s more about evolution of front-end architectures and patterns. Anyway I found this one very interesting;
  5. All JavaScript frameworks are terrible – don’t be fooled by the name of the article. Seriously, just read it;

That’s all for now. Thanks!

Visual regression testing

Automated regression testing on the big projects is one of the important approaches. A lot of projects are using this approach to reduce costs on manual regression testing, speed up the delivery, reduce costs of bug fixing. Automated UI testing is not an easy task because it’s tightly coupled with data, it’s highly dependent on HTML mark up, it’s slow (because communicating with browser via web driver, grabbing data from different HTML elements is slow), it’s really hard to verify visual issues with this approach (for example positioning of dialog on the viewport).
Continue reading “Visual regression testing”

Why people hate JavaScript

Disclaimer

This is my personal opinion. I’ll not try to convince you that your language is good or bad. Programming language is a matter of preference. But of course your programming language is the best.

Introduction

A lot of people dislike JavaScript. From my perspective there are a couple of reasons for this:

  1. It’s really hard to avoid it;
  2. It’s not strictly typed;
  3. Browsers behavior may vary;
  4. Dozens of frameworks and libraries with different API and sometimes even syntax (e.g. Angular);

Let’s go through these items and I’ll explain what I mean.
Continue reading “Why people hate JavaScript”

Pure functions, JavaScript and Unit Testing

I’ve started to write a small game on GitHub to try Node.js, because I’ve never touched Node.js during work hours. On my current project I’ve back-end written with Microsoft .NET. I’ve decided to not use any UI framework, I just added Browserify to share some code between front-end source code and back-end source code. I’ve written a small amount of code and tried to cover this code with Unit Tests. And at this point I found that I have nothing to cover…
Continue reading “Pure functions, JavaScript and Unit Testing”