The Benefits of Files

I wrote a blog post back in 2012 entitled Files are the Currency of Web Development in which I explained the value of files over database-based configuration.

Here are the benefits I discussed in that post:

With a file, you can do the following:

  • You can source control the files in Git (the CMS we’re struggling with doesn’t even version templates, which frankly scares the hell out of me; I envision a 3 a.m. call from their webmaster, right after he fat fingers the entire page layout template into oblivion)

  • You can work with the files in a true IDE, with all the automation that allows

  • You can implement an automated build process, a la Jenkins or CruiseControl

  • You can diff the files when necessary (which is often…)

  • You can put the files in a code review tool (like Crucible) for collaboration

  • You can use things like AIDE as a security tool to check file integrity

  • Anyone can work on the files, even if they haven’t been trained on the CMS (our visual designers, for instance)

That second point can be expanded to “environment data synchronization.” Files enable you to serialize data – like models – work with them in your test environment, then synchronize them against your production environment, without having to manually make the changes in a UI.