我终于可以骄傲地说:直接从源码分析出程序完整的数据流向图谱,现在成为可能了!

6 月 1 日
 muchan92

在线预览: https://rainforesters.github.io/imsure-analyzer/

这个图谱表达了程序完整的功能/业务逻辑,它们都含在数据流向里面。这就是我所说的网状结构的自动状态机,现在终于可以直观展现在大家面前了。

这个天方夜谭的想法此刻终于落地成为现实,若没有声明式语法和 imsure,这个念头我压根不会想,是这种看似怪异的语法让这变为了可能,现在终于可以舒心一笑。

回顾,有很多不解、质疑、甚至谩骂,辛酸是有的,但更多还是自己的原因。因为很多时候文字的表达能力很苍白,之前我很难用文字把它美丽的样子诉说给大家,每个人脑海中都是它各种怪异的样子,现在它美丽的样子终于可以直观展现给大家了。

经历反思、自我质疑、和不断自我博弈后,因为能清晰洞见它的美,所以我还在坚持,更因为在日常工作中的真实实践,它所展现的强壮、坚韧的稳定性和可维护性,带来的收益完全足以抵消语法的不便,让我有底气坚定这是正确的方向。我依然认为从算术方法到方程式方法是正确的选择。

下面是我们一个充斥复杂业务功能和许多“奇妙”需求的真实项目,时至今日依然可以轻易地继续添加或修改各种功能,维护难度与项目创建的第一天毫无分别,从未重构,也从不需要重构。因为把任何两个类型关联起来就像画条线一样简单,也根本不必担心会破坏任何已有的连线,就像一个韧性十足的弹性球,揉不烂、搓不坏。(曾想把图谱渲染为更理想的 3D 球状,但视角切换不利于全局观察,就此作罢,大家可以脑补)

我知道,肯定会有指责声音出现,我接受,但请理性发言,不要谩骂,不要阴阳怪气。今天是儿童节,祝大家开心快乐,儿童的纯真,我想是最可贵,最令人向往的……

备注:若这显得凌乱,是布局算法的问题,你可以把它想象为一个 3D 球。(我真不擅长这个布局算法,示例里的布局我也不甚满意,幸好还可以使用高亮关联)

4092 次点击
所在节点    程序员
25 条回复
yanyiming
6 月 2 日
用 ai 分析数据流向后其实有问题直接问 ai 就行了,可视化也是为了解决问题嘛, 干脆一步到位.
muchan92
6 月 2 日
@kneo #19 没错,我也认同仅查找 symbol usage 是嘈杂的信息,所以能根据这些嘈杂信息正确推导数据流向即是信息压缩的过程,但我认为这在传统语法下几乎无法做到,因为 symbol 状态是动态的只能在运行时确定,很难正确推导,所以 #18 才提出交给 AI 。若你觉得可以搞定这个产品,show your code ,我相信很多人都会认可其价值意义。

另外,我不清楚你所描述的垃圾是什么,是嘈杂的 symbol usage ?还是代码本身?无论是哪一个,那是否是在说明代码本身就是垃圾站,那么即使压缩信息得到的也依然是垃圾?岂不是 IDE 的种种功能也是戳破垃圾,压缩垃圾,得到垃圾?
kneo
6 月 2 日
@muchan92 你如果想从项目生成图,那就是一种典型的可视化。你需要对代码,文字,数据,以及图的有一点基本的认知。

数据若水,壮如江海,能知一国之运,微至点滴,也能知一室之疏漏。但没有把江海一点一滴画出来的道理。

什么叫垃圾,无用之物就是垃圾。一盒面巾纸,两百张整整齐齐装在盒子里,不是垃圾。用的时候抽出来也不是垃圾。用完丢了就是垃圾。盒子扯碎丢满地也是垃圾。

你在 IDE 里 find usage 有用吗?有用啊。想看哪个点哪个啊。
如果 IDE 的 find usage 是把一万个 symbol 和它的八万个 usage 随机排序打印到纸上让你找呢,还有用吗?

AI 有用吗?有用啊,想知道哪个数据在代码中的流向,一张嘴它就告诉你了,还能给你画图。
如果 AI 的功能是把所有数据的所有流向随机搅在图一张几亿像素的图片里让你找呢,还有用吗?

垃圾就是无用之物,或者有用之物之无用之用。

现在的 AI ,能为人所用,还没有令人无用。可以说这是程序员最好的时代。在这个最好的时代,你用最好的工具完成了你本不能的无用之事。你真幸运。
muchan92
6 月 2 日
@kneo 若你承认 find usage 有用的话,那你为何不试用一下在线预览里的搜索、详情里的各种高亮呢?
你眼里只容得下这一张图吗?
WilliamColton
1 天前
@SilenceLL 现在有什么好方案了嘛?还是全靠人工?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1216998

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX