[Image source: Stack Overflow]
- Atom from GitHub team is the number 1 choice for lots of people. It’s an easily customizable text editor that comes with multiple features right out of the box. Atom includes embedded package manager, smart auto-completion, file system browser, cross-platform support, and some other useful functions.
- Visual Studio Code is backed by Microsoft and complete with the ultimate support for TypeScript right out of the box. It offers smart completions and syntax highlighting with IntelliSense, debugging right from the editor, built-in Git commands, version control, and so on. Moreover, the functionality of VS Code can enriched with a wide range of extensions.
- Brackets is a lightweight open-source text editor. It is mainly focused on visual tools and preprocessor support, to make it easier for you to design in the browser. Brackets comes with convenient real-time preview and powerful inline editors.
Documentation turns your application into a glass box, making the inner processes understandable and obvious. It explains how the software operates and how it should be used. Automated documentation tools describe functions and their purposes, thus saving time on analysis and understanding of each in the future.
- Swagger is generally a set of rules and tools for describing APIs. And here’s the thing, it is a language-agnostic utility for getting everyone (both developers and non-developers) on the same page. Swagger creates clear documentation that is both machine and human readable, allowing for automation of API-dependent processes.
- jGrouseDoc (jGD) is a flexible open source tool that allows developers to generate API documentation from the comments in the JS source code. It documents not only variables and functions, but namespaces, interfaces, packages, and some other elements as well.
- YUIDoc is a Node.js app that follows the same principles of generating API documentation from comments in source code. It uses syntax similar to Javadoc and Doxygen tools and offers live previews, extensive language support, and advanced markup.
- Mocha is a functional test framework that runs on Node.js and in a browser. Being a “go-to” solution for many developers, it conducts tests in series to provide accurate and flexible reporting, while making asynchronous tests fun and easy. Mocha is often paired with Chai for verifying the test results.
- PhantomJS is often used for front-end and unit tests. Due to the fact that it is a headless WebKit, scripts run much faster, compared to common browser-based approach. It also includes native support for different web standards, like JSON, Canvas, DOM handling, SVG, and CSS selector.
- Protractor is a Node.js end-to-end test framework for AngularJS and Angular applications. Built on the top of WebDriverJS, it tests your apps like end users would, using browser-specific drivers and native events.
Debugging code is a time-consuming and laborious task for JS developers. Debuggers can come in handy while debugging thousands of code lines, offering better convenience and ensuring more accurate results.
- ng-inspector is an extension for Firefox, Chrome and Safari browsers to help developers with developing, understanding, and debugging AngularJS applications. This utility comes with real-time updates, DOM highlighting, immediate access to scopes, models, and other apps’ elements.
- Augury is a Chrome extension for visualizing and debugging Angular 2 applications. It allows Angular 2 developers to get direct insight into app structure, operating characteristics, and change detection.
Open source ready-made components are a gift for most companies since they help to speed up custom software development process at no cost. However, such solutions involve some risks as well. At the average, there are 105 open source components in every application, while 67 percent of apps include security vulnerabilities.
Open source is powerful, but it is essential to track the dependencies and to mitigate the security risks.
- Node Security Project offers useful tools for scanning dependencies and detecting vulnerabilities. NSP uses its own database, built from npm modules scans, as well as data from public bases like NIST National Vulnerability Database (NVD). On the top of that, NSP provides integration with GitHub Pull Request and CI software, real-time checks, alerts, and recommendations on how to handle vulnerabilities within your Node.js apps.
- RetireJS is an open-source dependency checker. It includes various components, like a command-line scanner, Grunt plugin, Firefox and Chrome extensions, Burp and OWASP ZAP plugins. Retirejs collects the vulnerability information from the NIST NVD and other sources, like bug-tracking systems, blogs, and mailing lists.
Code optimization & analysis tools
Modern software development houses integrate static code analysis tools in the delivery process to prevent poor code from reaching the production stage.
Version control tools
- In recent years Git has become a widely-used version control system for both small and large-scale projects. This free utility offers outstanding operating speed and efficiency. Its popularity can be easily explained by the highly-distributed system and different type of controls, as well as a staging area, where commits can be reviewed and formatted right before completing the commit.
- Subversion or SVN has gained a huge popularity and it is still widely employed by open source projects and top platforms like Python Apache or Ruby. This CVS comes with lots of functions, enabling versioning of directories as first-class files, atomic commits, versioning or various operations (renaming, copying, deleting, etc.), merge tracking, file locking, and many others.
Package & dependency management tools
Modern software is stored in the form of packages and retained in repositories. Such packages provide the initial components of an operating system, like applications, libraries, services, and docs. Whereas, package management systems take care of various operations, like installation and upgrades, and ensure that the installed software has been approved by package maintainers and developers.
- Yarn is the new kid on the block, though it has already stolen the scene thanks to its promoters: Google, Facebook, Tilde, and Exponent. It’s gained a reputation of a smart improvement, as compared with npm. The main focus in brought on security, speed and consistency. This tool enables code sharing via packages or modules, together with a file that describes the package.
- Duo takes the best practices from Browserify, Component, and Go turning front-end development into a fast and easy process. The main idea behind Duo is to simplify writing of modular components and making large web apps’ building painless and fast.