Hello and welcome to This Week in JavaScript, our lovingly curated collection of links relating to what’s new and exciting in the world of JS. The complete list is tagged jsweekly. (Don’t forget to check out our weekly .NET and front end roundups too!)
And now for this week’s JavaScript finds …
Getting Started
- The Basics of DOM Manipulation in Vanilla JavaScript (No jQuery) - Whenever we need to perform DOM manipulation, we’re all quick to reach for jQuery. However, the vanilla JavaScript DOM API is actually quite capable in its own right.
- Surefire Ways to Become a Better Coder - I’ve learned a few things about how to improve — quickly & efficiently. I want to share some of those tips with you now so hopefully you can level-up with less stress.
Learning More
- How to sometimes complete your side projects - With new frameworks popping up left & right, it’s easy to get distracted unless you treat your side projects with the same level of discipline as your code base at work.
Libraries
- Photopea - An advanced PNG parser in 300 lines of Javascript.
- rrule - JavaScript library for working with recurrence rules for calendar dates.
- nanogallery2 - Beautiful, modern and high-quality photo galleries.
ES6 / ES20xx
- Recursion, iteration and tail calls in JS - Examples of recursion, and how to use tail calls to your benefit.
- The rise and fall and rise of functional programming (composing software) - Thinking in terms of function composition is a remarkably expressive and eloquent way to compose software. In this text, we’re going to discuss the importance of function composition in software design.
- Refactoring to functional JavaScript: Part 1 – fundamentals - Using the fundamentals of functional JavaScript to refactor a shuffle algorithm.
- Mixing Generators Into Iterators - As it turns out, iterators can be written using generators. This can lead to some interesting use cases.
- Asyncing Feeling about JavaScript Generators - They’ve reached Stage 3, which means they are likely to ship in a future version of JavaScript. Until then, you can enable Stage 3 proposals in Babel to try them out in your own projects.
Frameworks
- 7 questions to ask before choosing your technology stack - Choosing the right technology stack is half art and half science. Getting that balance wrong can have a significant impact on your project, so it’s crucial to assess all possible risks.
- Which JavaScript Frameworks Take Along With You In 2017? - There are hundreds of free JS libraries out and it becomes real tough to choose the right JavaScript framework for your application. Many the developers only know the big names like jQuery and React but there are many other popular JavaScript frameworks or JS libraries which must not be missed in the forthcoming year 2017.
- How to build a message delivery status in JavaScript - When building realtime applications, we often want to know the actual time when a process or event occurs. We can easily build a message delivery status using Pusher and JavaScript.
- OverVue - A library providing Vue applications with "asynchronous-first" state management
Node
- property-validator - Easy property validation for JavaScript, Node and Express.
- Setting up multi-platform npm packages - Details on ways of targeting multiple platforms via the same npm package.
- The Definitive Guide for Monitoring Node.js Applications - Learn about running and monitoring Node.js applications in Production.
React / Redux
- The Grand React Hotel - The beginner’s guide to React & Redux.
- Complete Redux Book (Free for the Next Two Weeks) - How do I manage a large state in production? Why do I need store enhancers? How do I test middleware?
- React routing library that syncs your router state with your Redux or MobX store - Simple routing for your single page applications.
- redux-free-flow: - A new redux effect library for pure, composable and versatile store interactions.
- Getting Started with React and Leaflet - Leaflet holds onto its own state and has a collection of setters and getters which allow users to modify or read map state directly, independently of React.
- Building a React Native App in Under 15 Minutes - A completely original approach to a problem that’s all too familiar.
- Reactide - Reactide is the first dedicated IDE for React web application development.
- Reusable State with Higher Order Components - Higher-order components are a great way to do some next-level refactoring to your React code. If you have repeated state or lifecycle methods that you’d like to deduplicate, HOCs can help you extract that code into reusable functions.
- react-mosaic - A React tiling window manager.
- Improving performance in React and Redux, working with Reselector - You’ve crafted your state thoroughly, and your architecture is such that each component gets just what it needs from it, no more no less. Yet, they update behind your back. Always mapping, always calculating. How would it be if you could just calculate what you need?
Angular
- Creating a custom filter (pipe) in Angular - Covering how to create a custom pipe that accepts a single value and returns a new value, as well as passing arguments into filter functions.
Testing
- Writing better JavaScript with Flow - Flow is a static type checker for JavaScript conceived with a goal of finding type errors in JavaScript code, often without having to modify our actual code.
- How we exploited a code execution vulnerability in math.js - How we found, exploited and reported a remote code execution (RCE) vulnerability. It is meant to be a guide to finding vulnerabilities, as well as reporting them in a responsible manner.
- All the tricks that help you debug TestCafe tests - TestCafe test code is executed on the server. Therefore, first, we should have a way to debug server code. User actions are emulated in the browser. That is why we also should have the capability to check what is happening on the client side.
- Automated Accessibility Checking with aXe - aXe is an automated accessibility testing library which has set out on the road to bring accessibility testing into mainstream web development.
- 77% of sites use at least one vulnerable JavaScript library - The other week a paper was released that reported that about 37% of sites included at least one JavaScript library with a known vulnerability. When we wrote about the findings, we mentioned that we thought that the reality was almost certainly worse.
- Service Worker Testing Made Easy - Write your tests as if the tests themselves were being executed within a service worker environment. That means that you can require your service worker script, and make assertions against the contents of your cache, the registered listeners, and visible notifications.
- TDD the RITE Way - When you dig into TDD you’re going to find a bunch of options for test frameworks. Let me save you some time: Which one you pick matters less than how simple your test suite is.
- AVA, low-config testing for JavaScript - AVA is a Futuristic JavaScript test runner.
For more links like this and to keep up-to-date with the latest goings on in JS land, you can follow SitePoint’s JavaScript channel on Twitter.
Please PM us if you have anything of interest for the next issue or if there is anything you would like to see featured. Paul and chrisofarabia.