分页符:计算笔记本中的多单元作用域

荣誉提名
知识工作者工具与工作流计算方法在HCI中的应用软件工程师与开发者HCI 研究员

研究背景与问题

  • 作者发现的问题或挑战: 编程人员通常在使用 Jupyter Notebook 时因大量全局变量而遭遇困惑,例如需要追踪变量、避免覆盖常用变量以及理解运行顺序。这种对全局状态的依赖可能引发难以理解、调试和组织代码的问题。此外,Notebook 编程环境中用户对函数作用域的使用较少,部分原因是函数无法跨多个单元使用,并且会限制互动性和探索式编程行为。

  • 为什么这个问题很重要: Notebook 编程作为数据科学和探索式编程的主流工具,面临简化代码管理与维持高互动性的双重需求。如果不解决这些问题,开发规模较大的 Notebook 项目可能会成为一项复杂且容易出错的任务。此外,全局变量难以管理可能会对协作和结果的重复性产生负面影响。

  • 研究动机与相关工作: 现有研究发现,Notebook 用户倾向于避免在函数中组织代码,而通过全局变量共享状态。这种实践容易导致运行状态混乱,特别是当 Notebook 变得较为复杂时。此外,Notebook 编程环境更强调探索性工作流,如通过多单元构建代码并交互式调整其效果。然而,传统编程中的函数作用域与这些探索性行为不兼容。

解决方案

  • 作者提出的解决方案: 作者设计了一种新的语言构造 "Pagebreaks",允许用户在 Jupyter Notebook 中为多个单元创建非全局作用域。Pagebreaks 将某些单元的变量限制在其定义范围内,但允许通过显式导出变量以供后续单元使用,相比于函数,Pagebreaks 保留了用户在 Notebook 中的探索式行为。

  • 解决方案的创新之处:

    1. Pagebreaks 在不影响 Notebook 的探索式工作流(如交替版本、代码和输出交错等)的同时提供了非全局作用域。
    2. 它允许将作用范围限于多个连续单元,而不是单一函数的作用范围。
    3. 通过变量导出机制专门解决了变量重定义问题,使得变量在作用范围外为只读状态,从而减少冲突和混乱。
    4. 提供了与 Notebook 用户行为紧密结合的设计,例如线性组织作用域,以保持 Notebook 独特的运行顺序优势。
  • 实施步骤与技术:

    1. 设计要求: 保留 Notebook 用户的探索式工作流,同时提供更好的变量管理方式。
    2. 系统实现: 将 Pagebreaks 实现为 Jupyter 和 IPython 的插件,通过调整程序的 AST(抽象语法树),为每个 Pagebreaks 添加唯一前缀以管理它们的作用域。
    3. 操作机制: 用户通过界面标记 Pagebreaks,变量在作用范围内自由使用,但需要显式导出才能被后续单元读取。
    4. 可视化功能: 提供背景颜色、视觉层次以及按钮等图形化界面元素,以帮助用户组织程序。

研究成果

  • 具体成果:

    1. 开发了 "Pagebreaks" 插件,在 Notebook 环境中为多单元创建作用域。
    2. 进行了为期两周的用户研究,观察 5 位参与者如何使用 Pagebreaks,以及它解决的问题。
    3. 发现 Pagebreaks 提升了用户组织和管理 Notebook 程序的能力,同时并未干扰用户的既有探索式行为。
  • 与现有解决方案相比的优势:

    1. 解决全局变量管理难题,但保留了 Notebook 的互动性。
    2. 提供了比函数作用域更灵活的单元组织模式,可实现跨单元变量共享。
    3. 支持改进 Notebook 调试流程,帮助隔离问题而不干扰当前的程序状态。
  • 实验或评估结果: 参与者指出 Pagebreaks 可以帮助追踪变量并减少名称冲突,同时对代码分段和文件组织有所帮助。研究发现,Pagebreaks 是对 Notebook 用户行为的自然扩展,它在解决变量混乱问题的同时并未牺牲用户熟悉的互动性。

  • 局限性与未来方向:

    1. 研究有较少的参与者和有限的使用时长,未能覆盖更广泛的 Notebook 编程行为。
    2. Pagebreaks 尚未支持用户自定义颜色和样式设置。
    3. 未来方向包括增加对导出变量的高亮显示功能和扩展 Pagebreaks 的应用范围。
    4. 后续研究可探讨 Pagebreaks 的长期使用对 Notebook 编程行为的影响,以及如何进一步简化其使用流程。

通过本论文的研究工作,作者有效展示了如何为 Notebook 编程构造结合用户、语言和环境需求的新型语言功能,同时保留探索性工作流的灵活性。这为未来设计针对性编程环境提供了重要参考。

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/papers/chi/188913/2025

广告推荐

学习 AI 编程到 CodeNow

open_in_new打开DOI链接
DOI: https://dl.acm.org/doi/10.1145/3706598.3713620
一眼看懂

论文快照

fact_check
dataset
来源
CHI
calendar_month
年份
2025
emoji_events
奖项
荣誉提名
group
作者
2 位作者
sell
研究子方向
知识工作者工具与工作流、计算方法在HCI中的应用
work
职业/产业
软件工程师与开发者、HCI 研究员
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文