Write programs that do one thing and do it well

Over the last few days, I've written about watchers and running commands such as automated tests when files are changed.

Some tools have this built in, whilst others don't.

I've used different tools to do this and recently switched to entr.

The previous one wasn't showing me the output from running Drupal automated tests, which entr does.

I also like that it follows the UNIX philosophy of doing one thing well and working well with other programs.

For example, to run my automated tests when I change a file, I need to run find web/modules/custom | entr ./run test.

entr isn't concerned with how to find the list of files to watch - only what to do with them.

To get the list of files, I use the find command and provide the files to entr.

I also like to do this with my application code. I like to write small modules and libraries with clear boundaries and responsibilities, do their tasks well, and work well with other parts of the application.