82 条回复  ·  8871 次点击
unused 初学 2025-11-11 11:13:38
第一步:1+1=2 第二步:付费 内容没看懂,来个斐波那契数列看看?
muchan92 楼主 初学 2025-11-11 11:19:18
@cenbiq 你的几个举例,并非完全“声明式”,它们调试难度就是为了抵消“非完全声明式“所引入的额外难度。递归和循环问题我都遇到过,程序会第一时间指出该问题,不会隐瞒。
Ketteiron 初学 2025-11-11 11:20:47
@muchan92 #68 缺点是几乎无法正常测试,所有规则都是黑盒,就如#62 说的,可维护性是非常重要的,能保证大型项目能正常迭代。 你这种做法相当于是放弃了各种测试和静态分析,在组合数量爆炸时虽然不用梳理大量组合逻辑,但是一个规则对其他规则以及集合总体的影响是几乎无法预知的,有好处,也有坏处,在我看来坏处大于好处。
docx 初学 2025-11-11 11:23:02
顺序对机器不太重要,但如果人工要介入 debug 什么的就有得受了
gaobing 初学 2025-11-11 11:37:28
狭隘了 老弟 要我说 你还得多学学 你说的顺序 只是上下行间的顺序 那你有没有想过 为什么按照要从左到右的拼写顺序写代码? 为什么要横着写代码? 难道代码天生就该依赖 脆弱的左右拼写顺序和横行顺序? 我给你演示下什么是好代码。 打破从左到右的顺序: // int a; a tni; // if (condition) { noitidnoc fi { // doSomething(); gnihtemoS od; // } } 打破横行的顺序,竖着写代码: i i n f t ( c a o = n 1 d ; i t i o n { } 打破所有顺序,天生强壮的代码: ifit}a ={1oc ond ition doS ohi ngmet
muchan92 楼主 初学 2025-11-11 11:38:28
@docx 实际上 debug 没有想象中那么难,因为若一个值是错误的话,那么它不会传播很远,可能下一个就定位到了。所以,错误不会如想象中那般,传播得非常遥远。
muchan92 楼主 初学 2025-11-11 11:44:06
@gaobing 没人逼你非得乱序写代码 A Y X ,你依然可以顺序写 X Y A ,它只是说可以这么写而已。另外,你这样占楼...
muchan92 楼主 初学 2025-11-11 11:48:33
@Ketteiron 要写测试很容易,因为它就是一个数据结构,你赋值了某个属性,然后去测试数据是否正确即可,仅此而已。
nickyadance23 小成 2025-11-11 12:13:55
太好了,我们发现了计算机的终极
geminikingfall 初学 2025-11-11 12:16:09
@w568w 填补了知乎上说计算机没有民科的空白。
返回顶部