At Ally, we used Node.js along with Grunt, Yo and Bower to develop a custom developer toolset for Ally's front-end development teams. The toolset had to be crafted in a way that allowed us to take a forward approach while still supporting the use of some legacy code and not-so legacy code. In the end, we created a toolset that separated new and on-going development tasks, gave living documentation and usage examples, and also allowed us to focus on maintainable and testable code. In this talk, you will get an overview about problems we tackled as well as solutions we found and approaches to creating a more maintainable codebase.
6. Our problems…
•
Pretty big team (around 30 in development)
•
Tightly bound code
•
Enhancement work & New Projects going on at
the same time; including rolling maintenance
•
Support of legacy, kinda-legacy and new code
7. “How can we create a more
maintainable codebase?”
11. Not every tool in the bag, but key parts of the foundation.
12. Importance of the full-stack
being JavaScript…
•
Back-end folks under a completely different
team and in a different space
•
Needed tooling that could be managed by our
front-end teams
20. Two Unique Workflows
1. Testing cycle, hot fixes, etc.
2. New and Enhancement efforts
Both workflows use common components
but the approach is distinctly different.
21. Testing cycle, hotfixes, etc.
grunt preview
•
Reverse proxy against 25+ environments
•
Live data sources
•
Ability to localize any asset or data response
•
Selective compilation
•
Source maps to aid in debugging
22. New and Enhancement efforts
grunt local
•
Rapid development of components & layouts
•
Live previews that can be developed quickly
•
Living Style Guide
•
Yo for scaffolding
24. Intelligent build system
Automate as much as possible
•
Selective build for faster build times
•
Several steps managed by one main task
•
•
JSHint, QUnit, Uglify, Sass, and image optimization
Dependencies
•
Sass
•
JS with Uglify
25. Node and Grunt have allowed us
to rapidly increase efficiency in
every phase of development