Automation

Automation

JavaScript is now more than a scripting language. It's possible to run JavaScript in a lot of different containers, and it seems to grow up faster than I imagined. Because developing JavaScript projects is not to write scripts in a web page as it was in the past, we need new tools to manage high-level and scalable UI projects.

The most common languages as Java or .NET already have strategies to help managing projects and team working, and some of this tools can be adapted for reaching our goals. We'll focus on Maven, the most famous tool for project management and build automation (I assume that you are familiarized with the SCM basis and Maven, if not, you will find useful to read this,this, and this).

Let's see what we need to make easier the development process for the project's team and to provide a high-quality product:

* Meaningful version control
* Modular design
* Code validation
* Unit testing
* Packaging & distribution strategy

All these essential items should be automated to make happy the developer's world. I'm a developer, and I know how frustrating is to work on a project which doesn't implement good practices and policies (version control, testing, peer reviews, etc). That's because before starting coding a UI project, I suggest to think more, to write less.

The following sections will cover each of the previous points from an abstract perspective. For a complete example of how it works in a real-world case, see Creating a Maven Project from Scratch.