4.6 Article

Refactoring in Computational Notebooks

出版社

ASSOC COMPUTING MACHINERY
DOI: 10.1145/3576036

关键词

Computational notebooks; end-user programming; refactoring

向作者/读者索取更多资源

Due to the exploratory nature of computational notebook development, notebook authors often face substantial technical debt but lack proper tools for notebook maintenance. In this study, we investigated the refactoring of public Jupyter notebooks to gain a better understanding of the unique ecosystem of notebook development. We found that notebook authors do refactor, with a preference for basic classic refactorings and those involving the notebook cell construct. These findings highlight the intrinsic nature of refactoring in notebook development.
Due to the exploratory nature of computational notebook development, a notebook can be extensively evolved even though it is small, potentially incurring substantial technical debt. Indeed, in interview studies notebook authors have attested to performing ongoing tidying and big cleanups. However, many notebook authors are not trained as software developers, and environments like JupyterLab possess few features to aid notebook maintenance. As software refactoring is traditionally a critical tool for reducing technical debt, we sought to better understand the unique and growing ecology of computational notebooks by investigating the refactoring of public Jupyter notebooks. We randomly selected 15,000 Jupyter notebooks hosted on GitHub and studied 200 with meaningful commit histories. We found that notebook authors do refactor, favoring a few basic classic refactorings as well as those involving the notebook cell construct. Those with a computing background refactored differently than others, but not more so. Exploration-focused notebooks had a unique refactoring profile compared to more exposition-focused notebooks. Authors more often refactored their code as they went along, rather than deferring maintenance to big cleanups. These findings point to refactoring being intrinsic to notebook development.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

4.6
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

暂无数据
暂无数据