ai 时代,现在控制项目代码可读性还有意义吗 - V2EX
zhengfan2016

ai 时代,现在控制项目代码可读性还有意义吗

  •  
  •   zhengfan2016 Apr 1 3946 views
    This topic created in 41 days ago, the information mentioned may be changed or developed.
    如题,看了 claudecode 的 main.ts 单单一个 run 函数就 4400+行代码,人类不依赖 ai 读的话也得读很久吧。但是依赖 ai 你也没法判断 ai 总结的对不对,因为你实际都没完整读过 main 的代码。
    37 replies    2026-04-07 09:34:37 +08:00
    clemente
        1
    clemente  
       Apr 1
    保持 ai 的可读性
    算是上下文持久化
    xtreme1
        2
    xtreme1  
       Apr 1
    省 token
    clownxiaoqiang
        3
    clownxiaoqiang  
       Apr 1
    暂时来说还是有意义的,硬要说的话,未来可能意义越来越小。

    毕竟 AI + Code Agent 都在发展,不是就停在当前的水平了。当 AI 的结果越来越可信,就越不需要懂细节。
    swaylq
        4
    swaylq  
       Apr 1
    反而更有意义了。AI 生成代码越多,你越需要能快速 review 的代码结构,不然就是在给自己埋雷。CC 那个 main.ts 是个反面教材,4400 行的函数连人带 AI 都不好维护。实际项目里我现在反而更严格地拆函数、写注释了,因为 AI 重构的时候如果原始代码就是一坨,输出只会更烂。可读性本质上是给未来的自己(和 AI )省时间。
    beimenjun
        5
    beimenjun  
    PRO
       Apr 1
    当然有。

    代码就算是给 ai 看的,维持一种可读性,也是提升 ai 工作质量的一种途径。 /t/1196036
    lifei6671
        6
    lifei6671  
       Apr 1
    当一个 bug 出现 AI 又无法修复的,就很有意义了。
    jackOff
        7
    jackOff  
       Apr 1
    现在就是要强调代码可读性,减少过度设计模式啊,否则烧 token,哪怕换新人接手也不好接手啊
    Atma
        8
    Atma  
       Apr 1
    没了,自己都不读了
    andforce
        9
    andforce  
       Apr 1 via iPhone   1
    我称之为:古法编程思维

    没有必要,请面向结果编程
    heyjianjun
        10
    heyjianjun  
       Apr 1
    AI 治好了我的代码洁癖,现在完全不看代码了,能跑起来就行
    zhengfan2016
        11
    zhengfan2016  
    OP
       Apr 1
    @heyjianjun 实话说我写自己的开源项目还是有不少代码洁癖的,vibe 确实能用,但是还是没法接受完全 vibe
    mtan
        12
    mtan  
       Apr 1   1
    要有中间商思维。想想之前你手写代码的时候,你老板会追你的代码求可读性吗?
    stormynight
        13
    stormynight  
       Apr 1
    现在 obsidian 里的笔记都不怎么整理了...想着有空了让 ai 花一晚上整理一下
    laikicka
        14
    laikicka  
       Apr 1
    @swaylq 4400 行的函数 很少了啊.. 这也不能维护?
    ganbuliao
        15
    ganbuliao  
       Apr 1
    呃呃呃呃
    这个也是最后压缩成一个文件提供出去
    可不是工程上本来就写这样的啊
    wu67
        16
    wu67  
       Apr 1
    还算有意义, 组织合理的代码, AI 分析代的时候, 稍微快一点点, 但是怎么说呢, 有点鸡肋了, 能用就行, 多出来的时间喝两口开水就好了.

    当然 ai 乱喷屎的时候最好别接受, 一旦这种状态, 大概率开始降智了, 不要接受代码, 让它忘掉前面的逻辑重写
    udisyue
        17
    udisyue  
       Apr 1 via Android
    看你怎么看待这个工程了,要是纯粹一锤子买卖的,无所谓维护,那就不管。要是你还想用这套代码搞业务,那还是要控制一下
    Ketteiron
        18
    Ketteiron  
       Apr 1
    一个函数几千行我认为不会影响可读性
    影响可读性的是代码质量和组织方式
    如果写得足够好,阅读起来会比散落成几十个小文件轻松得多且快得多

    例如我自己编写业务 SDK ,基本就是一个上千行的 index.ts ,只有一个闭包主函数,对于 LLM 来说根据业务上下文去加功能改代码又快又好,不需要消耗大量 token 在递归代码上,徒增噪音,其实对于人类来说也是如此
    BeautifulSoap
        19
    BeautifulSoap  
       Apr 1
    在现在这个 AI 编程范式还没发展出结果的情况下,这取决于你相信哪一套 AI 叙事

    相信一切全交给 AI ,只要 AI 模型够强相信靠着测试和验收能完全不用掌控代码这套叙事的话,那就让代码飞,你只做一个负责验收的老板。
    相信 AI 时代代码依旧需要人类 review 的话,那控制 AI 写出人类可读可 review 的代码就至关重要了
    GeruzoniAnsasu
        20
    GeruzoniAnsasu  
       Apr 1   2
    在说什么蠢话

    - 你是 AI 的 leader
    - AI 正试图防御性编程写出你看不懂的代码

    你的选择是?
    1. 「噢噢,能跑就行,A 工,以后靠你了」
    2. 「这种垃圾也想过我的 review ?我看你是不想干了」
    eroneko
        21
    eroneko  
       Apr 1
    现状可能还有点必要,将来组织成 AI 自己能够快速读懂的形式就行,最好上下文全在代码里,更省事
    yl20181003
        22
    yl20181003  
       Apr 1
    自己项目还是要的,公司项目,直接让 AI 随便拉,毕竟跟催命一样在后面催。
    GeruzoniAnsasu
        23
    GeruzoniAnsasu  
       Apr 1
    新鲜出炉的例子:





    意思是想说,它写成这样,你也不需要看懂代码?
    andforce
        24
    andforce  
       Apr 1 via iPhone
    @GeruzoniAnsasu 你这是啥编程工具?啥 AI 模型?
    怎么看着模型有点像拉胯的 gpt4 ?
    jsq2627
        25
    jsq2627  
       Apr 1
    不好说,只能说暂时还有意义。谁也不知道未来 AI 会发展成怎样

    就像 CLAUDE.md 曾经要写一大堆东西,现在大多数项目用不用 claude.md 区别不大
    zhengfan2016
        26
    zhengfan2016  
    OP
       Apr 1
    @andforce #24 这个应该是装在 vscode 上的 codex 吧,我也在用
    zhengfan2016
        27
    zhengfan2016  
    OP
       Apr 1
    @BeautifulSoap 是的,现在纠结的点就是,我可能更相信 ai 需要 review ,但是不管是网上还是现实中都有很多全交给 ai 的叙事轰炸,包括公司上级也说要让 90%的代码由 ai 生成,我也不知道到底更应该相信哪个了
    calmack0x452
        28
    calmack0x452  
       Apr 1
    相信我,绝对有用。我特意让 AI 照着 CA 架构编写,就是为了让我快速阅读代码,你可以不用一行一行看,但整个流程、状态机流转你最好都要掌握。

    我上周写一个比较复杂的流程,就出现了没有在需求内的工作,我呼叫其他部门的 API ,业务太复杂经常出问题,比如某些业务别的资料可能少填就会报错,他竟然为了要让流程往下跑,给我弄了一个兜底的方案,我要是没发现,等哪天上线炸了,我的数据库肯定会出现不该出现的数据,到时后面 AI 排查我看也难,很有可能会认为兜底方式没问题。
    gefangshuai
        29
    gefangshuai  
       Apr 2 via iPhone
    @swaylq 错,根本不需要 review 代码了
    gefangshuai
        30
    gefangshuai  
       Apr 2 via iPhone
    @GeruzoniAnsasu 你用拉跨的模型就好比雇了一个能力不行的员工,那你为什么不雇个牛逼的员工呢?雇个牛逼的员工作为老板你还 review 他的代码吗
    GeruzoniAnsasu
        31
    GeruzoniAnsasu  
       Apr 2
    @gefangshuai 你说得对,但你再想想,你口中的「牛逼的员工」现实中有这个人不?有几个?
    gefangshuai
        32
    gefangshuai  
       Apr 2
    @GeruzoniAnsasu #31 但是牛逼的 opus4.6 ,完全不用 review 了
    GeruzoniAnsasu
        33
    GeruzoniAnsasu  
       Apr 2
    @gefangshuai 你猜我为什么用 codex
    GeruzoniAnsasu
        34
    GeruzoniAnsasu  
       Apr 5
    @gefangshuai

    不知道你跟这些模型打交道的频率有多少,我这又有一个新鲜例子了。opus4.6 无法理解「确保旧代码不再被调用链路引用,并把它们注释为 deprecated 」这句话。 我反复了 6 次,它要么会在已经不用的结构里加上 depreacted = true 这个字段,要么会把整个旧结构删掉。



    所以你猜我为什么用 codex openai 的模型服从性好但思考深度低,a\就是会有固化的擅自主张的行为逻辑,如果你刚好落在了边界,那甭想它能自己改好了。
    gefangshuai
        35
    gefangshuai  
       Apr 5
    @GeruzoniAnsasu #34 频率: https://cdn.jsdelivr.net/gh/lifedever/images@master/uPic/2026/04/[email protected]

    选择解决问题的办法有很多,而你选择了一棒子打死了所有
    GeruzoniAnsasu
        36
    GeruzoniAnsasu  
       Apr 5
    @gefangshuai 我选择的是一棒子把所有模型都列为不可信任并强制规定人工介入。
    zqguo
        37
    zqguo  
       Apr 7
    你也把 AI 当个人吧
    About     Help     Advertise     Blog     API     FAQ     Solana     3072 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 140ms UTC 15:01 PVG 23:01 LAX 08:01 JFK 11:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86