V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  muchan92  ›  全部回复第 1 页 / 共 3 页
回复总数  48
1  2  3  
@kneo 若你承认 find usage 有用的话,那你为何不试用一下在线预览里的搜索、详情里的各种高亮呢?
你眼里只容得下这一张图吗?
@kneo #19 没错,我也认同仅查找 symbol usage 是嘈杂的信息,所以能根据这些嘈杂信息正确推导数据流向即是信息压缩的过程,但我认为这在传统语法下几乎无法做到,因为 symbol 状态是动态的只能在运行时确定,很难正确推导,所以 #18 才提出交给 AI 。若你觉得可以搞定这个产品,show your code ,我相信很多人都会认可其价值意义。

另外,我不清楚你所描述的垃圾是什么,是嘈杂的 symbol usage ?还是代码本身?无论是哪一个,那是否是在说明代码本身就是垃圾站,那么即使压缩信息得到的也依然是垃圾?岂不是 IDE 的种种功能也是戳破垃圾,压缩垃圾,得到垃圾?
@th00000 README 里说明了使用场景。它不能分析任何项目的源码,个人认为对于传统语法,静态分出数据流向几乎不可能,交给 AI 或许性价比更高。

这能正确运行
pnpm cli analyze ./packages/analyzer/examples/
@thevenin1416
@zzNaLOGIC
@GPLer
只支持声明式语法,使用 imsure 库的源码,README 里有说明。
原理是声明式语法才是支持静态分析的根基,能够在不运行程序就能分析出完整的数据流向。
@tengxun 感谢❤️
@deplives 升级下 node pnpm 试试
类型定义部分可以实现运行时类型约束,是否满足楼主需求?
https://github.com/rainforesters/imsure
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@IndexOutOfBounds 解释的可以。它是通用编程,没有场景限制,非要说的话,就是写小一点的项目或脚本用命令式方法更简单,中大一些的项目我就会用这种声明式写法。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@kome @yxc246800 我从未全盘否认顺序,正文说了顺序适合于计算过程,我当然承认它的地位。但它并非没有缺点,如 #41 #68 所述,按命令式方法,除了重构代码,是否还会有更好解决办法。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@Ketteiron 要写测试很容易,因为它就是一个数据结构,你赋值了某个属性,然后去测试数据是否正确即可,仅此而已。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@gaobing 没人逼你非得乱序写代码 A Y X ,你依然可以顺序写 X Y A ,它只是说可以这么写而已。另外,你这样占楼...
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@docx 实际上 debug 没有想象中那么难,因为若一个值是错误的话,那么它不会传播很远,可能下一个就定位到了。所以,错误不会如想象中那般,传播得非常遥远。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@cenbiq 你的几个举例,并非完全“声明式”,它们调试难度就是为了抵消“非完全声明式“所引入的额外难度。递归和循环问题我都遇到过,程序会第一时间指出该问题,不会隐瞒。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@OneLiteCore 首先抱歉,我不应该用“错误”而改用“错觉”更合适,后面一条回复就使用了“错觉”。
其次,你所讲的是业务需求的本质复杂性,它不会被消除,但使用命令式写法会引入更多的非本质复杂性。正如 #41 举例,若按照命令式写法,你首先得在计算 A 之前,先计算出新的 Z ,而 Z 有可能是异步的,所以不得不重新打乱之前已有的同步计算 A 的过程,重构代码。而这种方式则不会,修改局部即只作用于局部。程序维护一次和维护一百次时维护难度是相同的。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@visper 解释过了在 #53
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@rb6221 我一直在耐心理性解释的吧,从未怼人,哪里有讲过“你不懂,但是我懒得跟你解释,懂的人自然会懂”之类的言论。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@cocong 首先作为库,并且在实际应用中证明这种方案的可行性,远比直接搞一套语言更实际。
@cmos @roykingH 前面解释过,这并非解决乱序执行问题。关于可读、可写、可维护性见 #41
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@msg7086 @xtreme1 感觉相似是在声明式和依赖关系,区别在于 Haskell/Coq/Agda 是静态一次性计算,不会动态持续更新。据我目前所知,最接近的是 Excel 。
@xtreme1 另外,我没碰想瓷任何东西,我承认会有认知局限,感谢你让我了解了 Coq/Agda ,但你若说“碰瓷”Excel/VisiCalc 可能更接近。
2025 年 11 月 11 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@Tink 有示例在 #30
2025 年 11 月 10 日
回复了 muchan92 创建的主题 程序员 为什么非得按顺序写代码?顺序重要吗?
@340244120w 你认为这会抬高编程门槛?相反这其实会降低编程门槛。我们十几个项目都工作良好,稳定可靠。

传统思维会认为,在没有完全弄懂程序的所有细节之前是不可能正确修改代码的,因为每一行代码都堆叠在前面的代码之上,移动一点儿都可能崩塌。

但这种方式不会。你完全不必了解全部规则,也能放心大胆地修改代码,不会出错。为什么呢?举例说明,假设需求变了,要把程序改为 A = X + Z 。你有两个选择:
一、你开心时,可以找到 A = X + Y 的地方把 Y 换为 Z 就好了;
二、你不开心时,忘掉之前的 A = X + Y ,管那么多干啥,直接新写一个规则 A = X + Z 把之前所有关于 A 的覆盖掉就好了。

现在你不必了解全局也可以放心大胆地写代码了。
因为每一个规则,只关注依赖的变量,但不必关心被依赖的变量在哪儿、何时准备好,仅仅把自己计算正确就行了。当然,被依赖的变量也是如此计算的。

所以,从方法二可以看出,即使程序迭代了上百次,你也可以完全忽略已有规则,就当它们都不存在,所有变量都是新的,大不了就把新需求从头写一下而已。
1  2  3  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1042 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 18:43 · PVG 02:43 · LAX 11:43 · JFK 14:43
♥ Do have faith in what you're doing.