Ai辅助编程挖坑和埋雷
和ai搏斗了一天, 有一点小小的思考
ai调试代码拢共分4步, 其中3步都在挖坑和埋雷
- 用if把特殊出bug的情况拉出来单独处理, if套if, if何其多, 这就是在掩盖小问题, 制造大问题.
- 搞一个局部长生命状态量, 比如判断doing==false才处理, 处理开始前, 把doing改为true, 处理完成把doing改为false, 这玩意妥妥的就是个锁, 线程不安全, 阻塞卡死, 死循环, 都靠他触发了.
- 和消息/插槽机制断开, 和事件冒泡/沉底机制脱离, 打破事物循环等等核心处理逻辑, 脱离逻辑做完了, 再连回…. 无力吐这个槽, 这就好比幼儿园小朋友玩ak47, 这是多想不开啊. 和系统级的死循环玩命.
- 做操作之前判断一下, 如果不需要就不做了, 可算是干了人事, 这方案其实还行, 如果这个判断靠谱的话, 实际情况是, 这种做法依旧线程不安全. 但是, 这个做法确实是一个基操, 大量的表现层修改, 数据的中间层(比如分析语法树, 比如格式化文档)处理, 等等类似的有较大开销, 或者会引起死循环的操作, 都改把这个作为代码强健性的基础手段, 甚至强制手段
总之, AIdebug, 离不开if判断类解决手段, 他不会从数据映射, 整体架构更适配的手段(比如细致的分析整个事件/消息循环, 找到合适的插入位置做相关数据更新, 从而保证单向数据流)去解决.
如果说一个人的专业水准有三个维度衡量:
- 知识, 你掌握多少相关的因果关系/统计结果/理论抽象, 比如妇产科学生看了多少书/视频/老师的操作, 他掌握的都是生娃的知识. 但是, 他不一定有生娃的经验, 也不一定有生娃的能力.
- 经验, 你真正做过这件事的次数/程度/反思, 比如一个女生生过几次娃就是衡量生娃经验的核心指标. 但是, 他不一定具备生娃的知识, 不过如果生过娃那么他一定是有生娃的能力.
- 能力, 你能干多好的潜力, 比如一个女生, 他的骨盆情况, 身体素质, 智商情况, 都和他生娃的能力息息相关. 但是, 他不一定有知识, 也不一定有经验.
AI, 可以说是经验和能力都远超人类, 用一万倍都无法形容这种巨大的差距, 但是能力呢? 用万分之一, 也无法形容这种能力.
所谓AI辅助编程, 也只是他把历史上的代码作为资料更精准的给你参考而已, 我们需要有自己的技术判断力, 才能使用AI. 否则就是被AI耍的团团转, 当然了, 简单的业务代码, 用AI确实也简单, 或者不带脑子的编程, 用AI也简单, 无法满足的需求, 可以绕过去嘛… 呵呵呵….