This document discusses how automation tools like Grunt, Gulp, Phing and Make can help software developers by automating repetitive tasks. It outlines four key reasons for using build tools: 1) They allow for quick project setup by automatically configuring environments. 2) They ensure reproducible project output regardless of developer setup. 3) They enable easy work in development and production replicas. 4) They facilitate debugging by allowing work in source files through source maps. Build tools automate tasks like linting, preprocessing, concatenation, minification, testing and more so developers can focus on coding.
22. i.
~ ▸ git clone …
# get code from repository
~ ▸ git pull
# get latest code from repository
23. ii.
~ ▸ vagrant up
# puts together a complete environment
# provision environment with chef
24. iii.
~ ▸ phing proj:build
# get deps with composer, npm & bower
# database migration with phinx
# front-end build with grunt
~ ▸ grunt build
# lint, preprocess, concat, min, version
# my personal favourite: ascii
66. i. build dev environment
reproduce the error
rule out minification error
use devtools on source files
update/add unit, integration, regression tests
generally all we need
67. ii. build prod environment
reproduce the error
use devtools with source maps
still have access to source files
easier to debug than on the live site
update/add unit, integration, regression tests
68. “trying to fix a bug in minified code is like
using a new API with no documentation”
70. being a front-end developer is hard
build tools make you awesome
automate the repetitive tasks
frictionless project setup
reproduce output every time
access to dev and production environments locally
take the stress out of debugging