Solving the puzzles posed by a broken, corroded mechanical gizmo found by sponge divers in the waters off a small Greek island might seem, at first thought, unrelated to the problems of debugging a software service or improving the user experience of a new mobile app. But, as Alexander Jones in A Portable Cosmos (Oxford University Press, 2017) recounts the researches into what is now called the Antikythera Mechanism, discovered in 1900 as part of the cargo of a shipwreck, some surprising parallels with current software development practices come into view.
I’m working on a smallish project to build service endpoints in PHP using the Slim framework. (We’ve used other frameworks in the past but have recently begun to converge on Slim as our go-to because it is lightweight but supports the PSR-7 HTTP message interface standard, which is a requirement for interoperability with several other libraries we use. As part of this work, I also recently converted my model code to a PSR-4 autoloader.)
The Slim documentation makes it abundantly clear that
Response objects are immutable: each method that accepts a
Response as an argument returns a copy of that…
Last year, the team working on improving NPR’s Content Management System (CMS), called Seamus, built its first application using the Apache Struts 2 framework. It was actually a migration from a Struts 1 application, so we had a substantial suite of actions that were already coded, organized into modules. The Struts 2 package concept handles our modules well.
We have standard logic that we want to execute for the invocation of any action (authentication, logging, timing, etc.), so we recoded our Struts 1 filters as interceptors.
Then there is exception handling. It took me several readings of the documentation and…
Citizen. Opinions expressed here are mine alone.