无论人类程序员还是AI,是不是都无法避免屎山代码的出现?

QAQ_QAQ 2026-08-13 15:55 1

rt,感觉代码的优雅对与我这种b人来说,真的是无法相信,比如说一个循环,他喵的,一会考虑易读,一会考虑简易,一个函数,一会考虑是不是可以拆分了,一会考虑拆分了读起来是不是有点费劲。

我靠了,好折磨啊。

最新回复 (19)
  • MRN 08-13 15:57
    1

    我觉得屎山代码的责任,程序猿本身固然脱不开干系, 但是提需求的人也别想摘干净责任 ^-^

  • blacsheep 08-13 15:59
    2

    我觉得AI只是加速了屎山的生成速度, 实际上有些同事写的时间足够长的话, 最后代码也是屎山

  • QAQ_QAQ 楼主 08-13 15:59
    3

    我觉得我真的可以重开,每次写完都觉得不行,还有优化的地方,但是又懒,双重折磨

  • QAQ_QAQ 楼主 08-13 16:00
    4

    我非常赞同你的观点,AI的屎山简直比我更上一层楼

  • Fizz G 08-13 16:01
    5

    你的问题本身就有问题。

    一开始,需求清晰的v1版本可是没有什么屎山的。


    屎山产生的原因是



    1. 人类是善变的;

    2. 人性总是向着“得到更好的”;

    3. 大部分人不善于思考;

  • Joe668 08-13 16:02
    6

    只要你的项目还在不停的迭代,屎山代码就是不可避免的。

  • QAQ_QAQ 楼主 08-13 16:05
    7

    是这样的,我的第一版需求是非常清晰的,但是我追求完美可能会导致我的代码被疯狂的修改,同时随着版本的迭代也会导致代码被修改,但是V1和V2的版本需求可能会出现细微的差距,这些细微的差距也会导致我修改我之前写好的V1的代码。

    最后为了工期可能也就屈服了。

  • cottonknight 08-13 16:06
    8

    除了水平问题,屎山代码的罪魁祸首更多来自于 紧急需求

  • Jocker1212 08-13 16:07
    9

    我就是这种人,写个功能一半时间都在重构之前的,有ai之后好一点了,我用了无数的skill,mcp,提示词,最后发现还是一个contextinfo文档,一个changelog文件夹里面分片文档,一个reviewskip文档,慢慢累积我的审批规矩,项目架构,不依赖会话和模型,现在基本上解决了,每次改完,让按我的审查标准走3次回验,测试单开模块做真实测试,基本能确保功能和简洁性都能解决。哦,千万别让gpt的任何模型写代码,谨记!写的全是过度防御的重复垃圾

  • 谢皮卡 08-13 16:07
    10

    没办法,都是为了生活而产生的史山,总不能自己把代码写成艺术品吧

  • Fizz G 08-13 16:11
    11

    有个万金油想法,向你分享一下。



    1. 世上没有什么逻辑是代理解决不了的,如果有就再加一层代理。

    2. 所有**模式,本质上都是一种代理。


    最佳实践是



    1. 事件驱动(例如 Event Bus)

    2. 行为链 + 扩展点(例如Cola)

    3. 防腐层(例如 Integration)


    最后


    说服自己,不要过于强迫症,不要提前优化,不要过于优雅。

  • QAQ_QAQ 楼主 08-13 16:11
    12

    好的,感谢佬提出的想法,我会好好斟酌思考的

  • mozilla 08-13 16:12
    13

    因为AI就是:


    [409731febdbfc27bfaa9876dc39621b8]
  • 白芸汐 08-13 16:12
    14

    难道说没有AI的时候屎山就少了吗,AI只是加快了屎山的堆积而已

  • MRN 08-13 16:12
    15

    我:时间不够啊,太紧了。 领导:先出一版看看能不能满足要求。

    然后就一直放着了

  • mel2oo 08-13 16:13
    16

    AI学习了如何写屎才能更快写更多屎

  • 二手内裤 08-13 16:17
    17

    上下文有限,无法把整个项目安装进去,所以在不清楚的情况下,就是会乱写

  • weiwei 08-13 16:17
    18

    打不过就加入,不用纠结,人和代码有一个能跑就行

  • 谢皮卡 08-13 16:32
    19

    这个确实好用,我搞嵌入式的,非常喜欢事件驱动编程+层次式状态机,可以有效降低耦合;还有三板斧可以用,TDD:接口定义->代码实现->测试用例

* 帖子来源Linux.do
返回