认真对待ASCII绘图:程序员如何绘制代码图
荣誉提名作者
交互式数据可视化计算方法在HCI中的应用软件工程师与开发者
文献标题
Taking ASCII Drawings Seriously: How Programmers Diagram Code
文献信息
- 主题领域: 软件开发中的ASCII图形应用及分析
- 关键词: 编程, 图形化表示, ASCII图表, 软件开发, 文档工具, 图形设计空间, 开源代码, 知识传递
研究背景与问题
-
问题与挑战:
- 大部分编程工具以文本为主,程序员为使代码可视化,通常使用ASCII图表(基于文本的图形化表现形式)来表达视觉概念。然而,对这些图的学术研究较少,研究者对其创建原因、使用场景和展示内容缺乏系统性了解。
- 当前代码文档化的主要问题包括:文档与代码不一致、更新复杂、维护困难,以及可视化与文本整合不足。
-
重要性:
- ASCII图表在软件开发生命周期的多个阶段均有实际用途,包括设计、测试、代码审查和知识传递。系统理解这些实践可以改进未来工具,实现文本与图形的紧密结合。
-
研究动机与相关工作:
- 近年来,有相当多研究尝试将可视化添加到编程的教育、沟通和开发工具中,但大多集中于特定形式的图表(如UML)。对于开发者如何在实际代码中嵌入可视化(例如ASCII图表)的研究较少。
- 本研究补充和扩展了Cherubini等研究对图表在软件开发中的角色的调研,但采用了对ASCII图的内容和设计方式的系统性分析。
解决方案
-
研究方法:
- 采访了9位ASCII图表作者以回答研究问题(ASCII图表的特性、角色及展示的内容)。
- 汇集了4大开源项目的507幅ASCII图表(Linux、Chromium、LLVM、TensorFlow),通过内容分析生成一个包含七个维度的图表设计空间。
-
创新之处:
- 采访与内容分析结合:首次系统性分析了ASCII图表作为专业文档化工具的角色。
- 设计空间模型:定义了7个维度来分类这些图表,详细刻画其表现形式及与代码的关联。
-
实施步骤与技术:
- 数据收集:通过代码库中注释的格式特征手动筛选出2156幅ASCII图表。
- 编码与分析:基于概念、可视化形式和与代码关系等方面为代表性图表进行主题分析,并归纳出分类维度。
- 采访:讨论图表的创作动机、设计流程及受众需求,总结出使用图表的五大实用场景。
研究成果
-
具体成果:
- 关键特性: ASCII图表具有“文本”和“可视化”的双重特性。
- 作为文本,它与代码无缝整合,便于操作、查看与协作。
- 作为可视化形式,它能更好地表达一些难以用代码或文字清晰描述的概念。
- 角色与用途:
- 重新表达外部信息(离线草图或反向工程的结果)。
- 测试案例说明。
- 协助代码审查与验证。
- 为他人或将来的自己提供文档支持。
- 设计空间:
- 覆盖七个维度(概念、视觉编码、注释、抽象、省略、范围、引用),反映出ASCII图表内容和形式的多样性。
- 工具设计启发: 提供了设计未来文本与可视化结合工具的建议,例如支持双向编辑(ASCII与矢量图形)以及与代码的更紧密链接。
- 关键特性: ASCII图表具有“文本”和“可视化”的双重特性。
-
优势:
- 对比现有工具(如外部文档或高级可视化工具),ASCII图表因其嵌入性质具有更高的可用性,能融入现有软件开发流程。
- 低创建门槛,广泛兼容性(适用于任何文本编辑器、终端等工具)。
-
实验与评估结果:
- 从4个大型开源代码库采集的2156幅图中分析得出:尽管ASCII图表形式简单,但从内容和视觉形式上表现出了极大的多样性。
- 设计空间能清晰描述这些图表的组成与功能,适用于进一步研究和工具设计。
-
局限性与未来方向:
- 局限性:
- 仅选择了4个开源项目样本,可能未全面覆盖所有使用场景。
- 数据分析主要由计算机科学背景研究员完成,可能对其他领域图表的理解不够深入。
- 未来方向:
- 开发支持更丰富媒体格式的工具,同时维持其广泛兼容性。
- 探索与大规模编程工具兼容的交互式图表编辑器。
- 利用自然语言处理(例如大型语言模型)生成动态可视化的自动化工具。
- 局限性:
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 程序员为什么创建ASCII图表(基于字符的图形化表示)?分类: 机器学习模型可视分析同类问题arrow_forward
- ASCII图表的内容和形式有哪些特征及多样性?分类: 机器学习模型可视分析同类问题arrow_forward
- 如何通过设计空间模型总结ASCII图表在代码开发中的作用与适用场景?分类: 机器学习模型可视分析同类问题arrow_forward
lightbulb
现实痛点
1- 开发者在代码中很难直观表达复杂概念和逻辑。分类: 机器学习模型可视分析同类问题arrow_forward
- 75%
大规模可视化API使用示例
CHI '18· 交互式数据可视化 +1
- 75%
集成开发环境,带交互式散点图以检查统计建模
CHI '20· 交互式数据可视化 +1
- 75%
NBSearch:计算笔记本的语义搜索和可视化探索
CHI '21· 交互式数据可视化 +1
- 75%
CoNotate:基于笔记建议查询以促进知识发现
CHI '21· 交互式数据可视化 +1
- 75%
通过数字“现场”观察理解视觉调查模式
CHI '22· 交互式数据可视化 +1
- 75%
多元宇宙:在R笔记本中复用替代数据分析
CHI '23· 交互式数据可视化 +1
- 75%
元管理器:一个收集和探索代码元信息的工具
CHI '24· 交互式数据可视化 +1
- 75%
Xavier:在编写表格数据处理脚本时寻求更好的编码辅助
CHI '25· 交互式数据可视化 +1
- 75%
ProTAL:用于时间动作定位的拖放视频编程框架
CHI '25· 交互式数据可视化 +1
- 75%
DeepFlow:面向深度学习开发的流式可视化编程工具
IUI '25· 交互式数据可视化 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3613904.3642683
一眼看懂
fact_check论文快照
dataset
来源
CHI
calendar_month
年份
2024
emoji_events
奖项
荣誉提名
group
作者
6 位作者
sell
研究子方向
交互式数据可视化、计算方法在HCI中的应用
work
职业/产业
软件工程师与开发者
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文