API Refactoring and Reengineering: Distribution Patterns and Evolution Strategies
摘要
In this paper, we present the fourth and final slice of our Interface Refactoring Catalog (IRC). IRC focuses on message-based remote APIs and has 25 entries; five of these refactorings constitute this paper. The first three entries are architectural refactorings that target physical distribution while the last two refactorings concern API lifecycle management and evolution. Known uses for the refactorings come from serverless cloud architectures, with Amazon Web Services (AWS) serving as an exemplary cloud provider. API designers and maintainers seeking to improve certain design time and runtime API qualities form the primary target audience for the refactorings in IRC; API client developers wanting to use APIs effectively and efficiently and API provider developers wanting to minimize the impact of changes are addressed as well. Finally, API product managers concerned about API quality also belong to our target audience. We use the same refactoring template as in the previous three papers, moving from motivation (in story form) and design concerns to initial position sketch and design smells and then on to the target architecture (via stepwise instructions); examples and hints (including pitfalls to avoid) are provided as well.