Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 3.44 KB

File metadata and controls

46 lines (35 loc) · 3.44 KB

We need visual programming. No, not like that.

TL;DR

可视化编程应关注开发者实际需求,如代码库、网络拓扑、内存布局、状态机和请求/响应协议的可视化,而非替代代码语法和业务逻辑。现有工具如Sourcetrail、AWS服务拓扑图等已展示其价值,但仍需更多发展以满足开发者需求。

Summary

  1. 概述

    • 大多数可视化编程环境未能获得广泛使用,原因在于它们试图替代代码语法和业务逻辑,而开发者实际上更倾向于可视化状态转换、内存布局或网络请求。
    • 作者认为,如果可视化编程从开发者已经可视化的软件方面入手,可能会更成功。
  2. 背景

    • 每隔几个月就会有人发布一个看起来很不错的可视化编程语言,但这些系统通常试图替代代码语法本身,导致开发者对其兴趣不大。
    • 开发者声称他们想要“可视化编程”,但实际上他们更倾向于使用文本表示来阅读和编写业务逻辑。
  3. 开发者实际需求

    • 开发者确实花费时间可视化代码的某些方面,但很少是逻辑本身。他们更倾向于可视化代码库整体、计算机网络连接、内存布局、状态机转换或请求/响应协议。
    • 这些是开发者真正需要的可视化编程,他们需要帮助来解决这些问题,并使用视觉工具来处理它们。
  4. 现有可视化技术

    • 尽管有些可视化技术已经集成到开发者环境中并被广泛使用,如DOM元素检查器视图、火焰图和SQL表图,但这些仍然是例外而非默认。
  5. 代码库可视化

    • Sourcetrail:一个开源的代码库可视化工具,通过高亮显示代码和图表之间的关联,帮助用户导航代码库。
    • Treemap:通过可视化代码文件的大小和复杂度,帮助用户快速了解代码库的结构。
    • 代码保留图:通过可视化代码随时间的变化,展示代码的保留情况,帮助用户理解代码库的演变。
  6. 计算机网络和服务拓扑

    • AWS文档中充满了服务拓扑图,展示了各个服务及其之间的连接,这对于理解复杂的网络结构非常有帮助。
  7. 内存布局

    • 开发者经常通过图表来理解内存布局,特别是在处理复杂的数据结构时,如Rust中的Rc<T>指针。
    • 《Programming Rust》一书通过内存布局图帮助读者理解Rust的所有权模型。
  8. 状态机

    • 状态机图表是标准工具,用于展示状态转换和代码表示之间的关系,如Idris文档中的示例。
    • Stripe的支付意图状态机图展示了支付过程中的各种状态及其转换。
  9. 泳道图用于请求/响应

    • 泳道图用于跟踪客户端/服务器请求架构中的请求和响应,如Stripe文档中的示例,展示了客户结账、保存支付方式和支付的过程。
    • Aphyr使用类似的泳道图来展示分布式系统中不同进程对状态的视图。
    • Signal的双棘轮算法文档中的图表展示了Alice和Bob在协议的每一步需要做什么来加密和解密消息。
  10. 总结

    • 可视化编程应该关注开发者已经可视化的软件方面,如代码库、网络拓扑、内存布局、状态机和请求/响应协议,而不是试图替代代码语法和业务逻辑。