When you pull that phone out of your pocket and open an app InRhythm designers and engineers have built, you’ll like it or love it, but you might not think about the thousands of hours of work that went into it.
Like other major engineering and design companies, InRhythm is constantly refining its processes and tools to make them more efficient; automation is one large part of that effort. In this issue, we dive into software development automation, with distinguished InRhythm engineer Bryan Riley starting us out with an intro on creating command-line tools with Bash to automate the small stuff, so we (including you) can focus on the big stuff.
Thanks and Keep Growing,
Building Command Line Tools: Bash Edition
InRhythm (3 min.)
“Bash is a great option for building command-line tools that make your code more user-friendly. Our own Bryan Riley walks you through this quick tutorial for a simple wrapper that will get you started and hopefully put you on the path toward automating your troubles away.”
5 Automation Trends in Software Development, Quantified
O’Reilly (4 min.)
“Software development is a fast and furious world of nearly impossible complexity, with a lot of repetition and tedium mixed in. Luckily, computers are really good at doing repetitive things, so smart engineers have been building automation tools to take away the tedium around building, releasing, compiling, and otherwise packaging software. This article is a good overview of where automation is being applied, along with current usage trends. Get on it!”
“GraphQL is something that our clients are asking for more and more often. We’re happy to comply! Being able to write very natural query aggregations and just have them work is fantastic. Looks can be deceiving, though—somebody had to do all the work behind the scenes to map that lovely query syntax to a real database. You don’t get anything for free…until now. Give PostGraphile access to your PostgreSQL database and with one command a GraphQL API for that DB is produced automatically. Changed your DB? It’s automatically recognized and updated. It’s such a good idea that there’s at least one other serious player in this space: GraphQL Engine.”
Reduce Unit Tests Boilerplate with Jest’s .each Syntax
Medium (4 min.)
“You’ve probably heard someone savvy tell you to “Keep it DRY”. IOW, “Don’t Repeat Yourself.” One place where repetition can get really tedious is when writing tests: a lot of “if,” “then,” and “should” repeated again and again, redundantly. Thankfully, the popular Jest testing framework provides a specific operator, `.each()` to help you lose a ton of boilerplate and stay focused on presenting assertions cleanly, not unlike running `forEach` over an array of pure comparator functions. Got it? Go get it!”
“‘Parcel’ is a ‘blazing fast zero-configuration web application bundler.’ You heard that right: no complex configuration file, no pipeline to build, no plugins to install. Just tell Parcel where your application is and this ‘smart’ bundler will read through your assets, automatically locate dependencies, and bundle it all up into a nice little…parcel. This ‘It Just Works™’ form of automation is welcome and needed, and it’s already gaining traction. Maybe you’ll be the one to build the next version.”
“Randoop automatically creates unit tests for your Java classes, in JUnit format. It ‘can be used for two purposes: to find bugs in your program, and to create regression tests to warn you if you change your program’s behavior in the future.’ A tireless agent constantly prodding the nooks of your code topology to locate hard-to-find bugs and corner cases, this is something developers in every organization can get behind—especially lazy programmers! (For the curious: it’s called Feedback-directed Random Test Generation)”