But I came across a video by Shai Reznik about using Yeoman for creating an Angular.js application. Pretty close to what I’ve been doing except I’ve been developing with Backbone.js. Still, the concept is pretty much the same. In that video, Shai describes using Yeoman in a way that totally put together all the little missing pieces which was causing my confusion on the topic:
Yeoman helps you kickstart new projects, prescribing best practices and tools to help you stay productive.
To do so, we provide a generator ecosystem. A generator is basically a plugin that can be run with the `yo` command to scaffold complete projects or useful parts.
This is a cool tool for automating tasks. Some examples of what you can automate include:
How I’m using Grunt is really a very simplified process from what a lot of the Yeoman generators are using. Since I’m not using node.js for my server I was able to cut out quite a bit of complexity. Since I was working on a project that was already developed for the most part use of a Yeoman Generator really wasn’t needed as I would have to create my own to match the directory structure I had implemented. So this left the process of linting, minifying and copying files. Hopefully I’ll be adding automated unit testing in the coming weeks, I have no idea what tool I will use for this yet.
Bower is a tool for ensuring that a team of developers have the same versions of all of a site’s dependencies, like jQuery, Backbone, Underscore, Select2, etc. This is all defined via a JSON file and not stored in the project itself. The only version of all these files stored in the project is the minified version of the concatenated files. So all your jQuery plugins and framework files all get concatenated into a single file (via grunt concat) that is then minified (grunt uglify) and that is stored in the project. I’m still learning the use of Bower, but so far I’ve been happy using it and haven’t run into any issues really.
Using these tools has been a real eye-opener to what is possible when you start employing modern techniques to your domino development. I would say this process more closely matches a classic domino web application instead of an XPages application. But then again, once you start dipping your toe into this realm the more you start moving away from XPages and classic domino development. The results can be rapid and very performant comparatively speaking. While you do have to setup a custom development environment I assure you it’s worth the time and effort. Not to mention you’re preparing yourself for the future of web development.