Gero Vermaas and Jochem Schulenklopper explore scientific approaches used to build knowledge about the world, such as how empirical, quantitative research generates knowledge derived from observations and uses inductive reasoning to draw conclusions about the experiment outcome. They then offer an overview of the Scientist library, used by GitHub in refactoring the gitlib2 C library, and discuss the (sometimes surprising) results of applying the scientific method. Gero and Jochem compare the approach used by Scientist (testing candidates in production, comparing outcomes with a control group) with other ways to verify the correctness and quality of software implementations and architectural setups: unit and component testing, integration testing, performance and load testing, production simulation, A/B testing, blue-green deployments, feature flags, canary deployments, and architecture fitness functions. They make the case that the scientific method adds value in guaranteeing whether a (refactored) implementation objectively and conclusively performs better in production.
Join in to see how they’ve applied this approach in refactoring serverless functions, including a lightweight implementation of Scientist for AWS Lambda functions, and discuss examples of refactoring simple code (comparing alternative implementations in the same programming language, comparing implementations in different languages, possibly even comparing implementations at different FaaS providers). Along the way, you’ll see Scientist in action for refactoring an actual (small, thus comprehensible) serverless application in production, as Gero and Jochem take you through improving it step-by-step while remaining confident that candidate changes are actual improvements over the control (current implementations).
Gero Vermaas is a Netherlands-based IT architect at Xebia, a boutique IT consultancy firm.
Jochem Schulenklopper is a Netherlands-based IT architect at Xebia, an international IT consultancy company.
©2019, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com