12 Useful NPM Tips and Tricks for More Productive JavaScript Coding

NPM, Node Package Manager, is the package manager for the JavaScript programming language. Any developer who is working with Javascript has used this wonderful CLI tool to install the dependencies for their project.

In this article, I will be sharing NPM tips and tricks that can boost your productivity and let you use NPM in a smarter and more efficient way.

  1. Initialize your package
  2. Install a package from other sources
  3. Clean install your package dependencies
  4. Use shortcuts to install packages
  5. NPM scripts
  6. Quickly navigate to package docs
  7. Removes duplicate packages
  8. Scan your application for vulnerabilities
  9. Check our environment
  10. Test your packages locally
  11. Check outdated packages
  12. List all the installed packages

#npm #node #javascript #web-development #developer

What is GEEK

Buddha Community

12 Useful NPM Tips and Tricks for More Productive JavaScript Coding
Tyrique  Littel

Tyrique Littel

1604008800

Static Code Analysis: What It Is? How to Use It?

Static code analysis refers to the technique of approximating the runtime behavior of a program. In other words, it is the process of predicting the output of a program without actually executing it.

Lately, however, the term “Static Code Analysis” is more commonly used to refer to one of the applications of this technique rather than the technique itself — program comprehension — understanding the program and detecting issues in it (anything from syntax errors to type mismatches, performance hogs likely bugs, security loopholes, etc.). This is the usage we’d be referring to throughout this post.

“The refinement of techniques for the prompt discovery of error serves as well as any other as a hallmark of what we mean by science.”

  • J. Robert Oppenheimer

Outline

We cover a lot of ground in this post. The aim is to build an understanding of static code analysis and to equip you with the basic theory, and the right tools so that you can write analyzers on your own.

We start our journey with laying down the essential parts of the pipeline which a compiler follows to understand what a piece of code does. We learn where to tap points in this pipeline to plug in our analyzers and extract meaningful information. In the latter half, we get our feet wet, and write four such static analyzers, completely from scratch, in Python.

Note that although the ideas here are discussed in light of Python, static code analyzers across all programming languages are carved out along similar lines. We chose Python because of the availability of an easy to use ast module, and wide adoption of the language itself.

How does it all work?

Before a computer can finally “understand” and execute a piece of code, it goes through a series of complicated transformations:

static analysis workflow

As you can see in the diagram (go ahead, zoom it!), the static analyzers feed on the output of these stages. To be able to better understand the static analysis techniques, let’s look at each of these steps in some more detail:

Scanning

The first thing that a compiler does when trying to understand a piece of code is to break it down into smaller chunks, also known as tokens. Tokens are akin to what words are in a language.

A token might consist of either a single character, like (, or literals (like integers, strings, e.g., 7Bob, etc.), or reserved keywords of that language (e.g, def in Python). Characters which do not contribute towards the semantics of a program, like trailing whitespace, comments, etc. are often discarded by the scanner.

Python provides the tokenize module in its standard library to let you play around with tokens:

Python

1

import io

2

import tokenize

3

4

code = b"color = input('Enter your favourite color: ')"

5

6

for token in tokenize.tokenize(io.BytesIO(code).readline):

7

    print(token)

Python

1

TokenInfo(type=62 (ENCODING),  string='utf-8')

2

TokenInfo(type=1  (NAME),      string='color')

3

TokenInfo(type=54 (OP),        string='=')

4

TokenInfo(type=1  (NAME),      string='input')

5

TokenInfo(type=54 (OP),        string='(')

6

TokenInfo(type=3  (STRING),    string="'Enter your favourite color: '")

7

TokenInfo(type=54 (OP),        string=')')

8

TokenInfo(type=4  (NEWLINE),   string='')

9

TokenInfo(type=0  (ENDMARKER), string='')

(Note that for the sake of readability, I’ve omitted a few columns from the result above — metadata like starting index, ending index, a copy of the line on which a token occurs, etc.)

#code quality #code review #static analysis #static code analysis #code analysis #static analysis tools #code review tips #static code analyzer #static code analysis tool #static analyzer

12 Useful NPM Tips and Tricks for More Productive JavaScript Coding

NPM, Node Package Manager, is the package manager for the JavaScript programming language. Any developer who is working with Javascript has used this wonderful CLI tool to install the dependencies for their project.

In this article, I will be sharing NPM tips and tricks that can boost your productivity and let you use NPM in a smarter and more efficient way.

  1. Initialize your package
  2. Install a package from other sources
  3. Clean install your package dependencies
  4. Use shortcuts to install packages
  5. NPM scripts
  6. Quickly navigate to package docs
  7. Removes duplicate packages
  8. Scan your application for vulnerabilities
  9. Check our environment
  10. Test your packages locally
  11. Check outdated packages
  12. List all the installed packages

#npm #node #javascript #web-development #developer

Giles  Goodwin

Giles Goodwin

1603857900

4 Ways You Can Get Rid of Dirty Side Effects for Cleaner Code in JavaScript

According to an analysis, a developer creates 70 bugs per 1000 lines of code on average. As a result, he spends 75% of his time on debugging. So sad!

Bugs are born in many ways. Creating side effects is one of them.

Some people say side effects are evil, some say they’re not.

I’m in the first group. Side effects should be considered evil. And we should aim for side effects free code.

Here are 4ways you can use to achieve the goal.

1. use strict;

Just add use strict; to the beginning of your files. This special string will turn your code validation on and prevent you from using variables without declaring them first.

#functional-programming #javascript-tips #clean-code #coding #javascript-development #javascript

Shany  Jenkins

Shany Jenkins

1614000180

5 Useful JavaScript Tips to Speed Up Your Coding

Introduction

JavaScript is one of the powerful programming languages in software development. You can do many things with it such as web apps, mobile apps, games, or even AI and machine learning. You just need to be good at it because every year new useful features are being released in ES versions. However, as a developer, you also need to be fast at writing code because you will have more other tasks that are important than just writing code.

In this article, we will discover some useful JavaScript tips or techniques to speed up your coding. Let’s get right into it.

1. Type conversion

In JavaScript, to convert a string to a number, we use the method parseInt() . But there is also an easy way to do that without using parseInt.

We can achieve the same result just by using the unary operator + at the beginning of the string.

Have a look at the examples below:

Normal way:

let age = "23";
console.log(typeof age); //string
console.log(typeof parseInt(age)); //number

Easy way:

let age = "23";
console.log(typeof age); //string
console.log(typeof +age); //number

You can also convert a number to a string just by concatenating the number with an empty string.

Here is an example:

let age = 19 + "";

console.log(typeof age); //string

As you can see, you can easily convert a number to a string with this technique.

#javascript #javascript-tips #coding

Wilford  Pagac

Wilford Pagac

1602673200

Understanding JavaScript Generators And Basic Use-Cases

In one of my many deep-dives about JavaScript, I came across generators. They looked interesting.

Then, I looked for some use-cases for generators. And looked. And looked.

Eventually, I found a simple generator throttle example. After all this research, I resolved to see how I could use them. Since I was working on an Asynchronous JavaScript talk (JavaScript Enjoys Your Tears), I wrote a state machine to facilitate positioning within the slide deck and managing font size on the presentation side.

What I found is documented here …

Generators are functions which can be exited and later re-entered. Their context (variable bindings) will be saved across re-entrances. - MDN.

The ability of functions to be paused and then resumed again. A generator returns an iterator. On creation, the code inside the generator is not executed.

  • Solves “reasoning about” issues.
  • Allows for non-“run-to-completion” behavior. Localized blocking only.
  • Syntactic form of a state machine.
  • Cooperative concurrency versus preemptive concurrency.

Advantages of Generators

Lazy Evaluation

This is an evaluation model which delays the evaluation of an expression until its value is needed. That is, if the value is not needed, it will not exist. It is calculated on demand.

Memory Efficient

A direct consequence of Lazy Evaluation is that generators are memory efficient. The only values generated are those that are needed. With normal functions, all the values must be pre-generated and kept around in case they need to be used later. However, with generators, computation is deferred.

Use-Cases

Here are some Generator use-cases …

Infinitely Repeating Array

This is the article (by Shawn Reisner) that got me interested in this topic in the first place.

#javascript #web-development #generator #use-cases #coding #productivity #es6 #code-quality