一句话:提出基于 MapReduce 的、与 IDE 无关的类型迁移技术,可扩展至超大规模代码库,并用工具 T2R 验证其安全、可扩展且实用。
类型迁移是一种常见的重构活动,会在整个源代码中将一种类型替换为另一种类型,且在大型代码库中更为频繁。现有最先进的类型迁移工具无法扩展到大型项目,也难以融入持续集成等现代开发流程。本文提出一种与 IDE 无关的类型迁移技术,通过 MapReduce 并行与分布式流程支持超大规模代码库的迁移,并在工具 T2R 中实现。作者在高达 790 KLOC 的代码库上针对函数式接口特化进行评测,结果表明 T2R 安全、可扩展且实用;开源开发者接受了覆盖 202 个文件的 70 个迁移补丁。
Type migration is a frequent refactoring activity in which an existing type is replaced with another one throughout the source code. Recent studies have shown that type migration is more frequent in larger codebases. The state-of-the-art type migration tools cannot scale to large projects. Moreover, these tools do not fit into modern software development workflows, e.g., in Continuous Integration. This paper presents an IDE-independent type migration technique that scales to ultra-large-scale codebases through a MapReduce parallel and distributed process. We have implemented our approach in a tool called T2R. We evaluated it on codebases as large as 790 KLOC for specializing functional interfaces. Our results show that T2R is safe, scalable and useful. Open source developers accepted 70 migration patches spanning over 202 files.
DOI 原文 ·
@inproceedings{paperbot4641,
title = {Type migration in large-scale code bases},
author = {Ameya Ketkar},
booktitle = {FSE},
year = {2018},
doi = {10.1145/3236024.3275434}
}