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 importance of writing code that humans can read - When your code is easier to read and to work on, you can enjoy working on it more.
- Get started contributing to JavaScript open source - Contributing can be scary, but once you get started you will see the benefits and rewards.
Learning more
- Functional front-end coding (video) - How languages like Haskell and Elm are informing the design of Javascript libraries like Redux.
- How to schedule background tasks in JavaScript - How to use requestIdleCallback to schedule non-essential background tasks.
- The definitive guide to object-oriented JavaScript (video) - THe classical object model has its problems. We build up new techniques from first principles.
- How Reactive programming can help reduce code spaghetti - Powerful in event-driven problems, the reactive pattern helps to organize essential complexity and produce separation of concerns.
- JavaScript beyond the Web in 2015 - Using JavaScript to control things in the real world.
- Taking over the project with legacy code - A step-by-step example of issues that can arise when updating the code of a pre-exisitng project.
Libraries
- Top JavaScript frameworks, libraries, and tools and when to use them - Some of the most famous and influential frameworks, libraries & tools for front-end development.
- Dream - A lightweight JSON data generator to create random output data.
- Labella - Labels should be beautiful.
- Jump.js - A small, modern, dependency-free smooth scrolling library.
- Smartcrop - Content aware image cropping that suggests good ways to crop images.
ES2015 (ES6)
- MissPlete - A tiny misspelling-tolerant autocomplete with no-dependencies.
Frameworks
- Node, Postgres, MassiveJS - a better database experience - Improving on ORM’s thanks to MassiveJS.
- Where I want to go with Node next - An open letter on the future directions of development for Node.
- Matreshka.js: From simple to simple - A two-way data binding front-end framework that keeps things nice and simple.
- 10 reasons to try Matreshka - A breakdown of the benefits from using Matreshka.
- Configuring Babel 6 - Some tips on configuring Babel 6, which even though it’s configurable than Babel 5, tends to also be more difficult to configure.
- An answer to “React is the new Java” - An attempt to answer some concerns as React continues to grow.
- Nothing new in React and Flux except one thing - What is it that makes React so special?
- Snowstorm - A Snow Effect component for React.
- How to Build a todo app Using React, Redux, and Immutable.js - Using a standard todo app to learn how to build using immutable.
- A beginners guide to Titan framework - Adding text and textarea types.
- 10 reasons to use Angular to develop the next web application - Why to choose AngularJS would be a right decision for your project.
Exploring real-time apps with Angular 2 - To get an early sense of the framework as it begins to take shape, build a real-time Twitter search app for real-time updates.
Testing
- Must-see JavaScript dev tools that put other dev tools to shame - A detailed run-through of the best dev tools that we have.
- 1, 2, 3, linted - Preventing easy to catch JavaScript bugs using linters.
- Breakpoint options - Using the debugger tab, customizing breakpoints with conditions and actions for logging and executing scripts, and creating probe expressions.
- Automated Node.js testing with Jasmine - How to automate the testing of Node.js applications using Jasmine and Distelli.
- Chai-bem - Chai assertions for BEM (block element modifier) class names.
Something different
- Vector fields - Pretty vector fields created using goo create.
- Pearl boy - Some very nice WebGL water scenes.
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**](https://twitter.com/SitePointJS).
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.