Pig930
0.06D
V2EX  ›  OpenAI

你们是怎么解决 CodeX 写代码过于难看的问题的

  •  
  •   Pig930 · 1 day ago · 4162 views

    RT ,最近主力切换到 CodeX 之后发现 CodeX 会写无穷无尽的胶水代码、兜底代码和一些根本不存在的转换/try-catch 等等,哪怕在 prompt 里详细写清楚需要做的事情,或者用 Opus 4.7 写 plan 再执行也不会有很大改善。仿佛这种倾向刻进 CodeX 骨子里了。今天让它写一个简单的训练脚本,100 行的脚本里有一半是对一个命令行参数是否正确输入的判断,彻底晕了。 之前自己在网上找了一些方法写进 AGENTS.md 里,

    ## Coding Standard
    1. Simplicity First.
    2. Failfast instead of over-design, over-engineering, over-error-handling and over-fallbacks
       - Only make changes that are directly requested or clearly necessary. Keep solutions simple and focused.
       - A simple feature doesn't need extra configurability.
       - Don't add error handling, fallbacks, or validation for scenarios that can't happen. Trust internal code andframework guarantees. Only validate at system boundaries (user input, external APIs).Don't use feature flagsor backwards-compatibility shims when you can just change the code.
       - Don't create helpers, utilities, or abstractions for one-time operations.Don't design for hypotheticalfuture requirements. The right amount of complexity is the minimum needed for the current task-three similarlines of code is better than a premature abstraction
       - Avoid backwards-compatibility hacks like renaming unused _vars, re-exporting types, adding // removedcomments for removed code, etc. If you are certain that something is unused, you can delete it completely
    
    And also the coding-rules and other guidelines/skills
    

    也装了 andrej-kaparthy-guidelines, superpowers 之类的 skill ,实在是限制不了。大家有什么建议/经验吗,或者还是说回到 Claude 是更好的选择😭

    36 replies    2026-05-18 23:22:48 +08:00
    Cycle0079
        1
    Cycle0079  
       1 day ago
    是用的什么模型啊,照理说 GPT5.4 xhigh 以上没有提示词也还可以啊.
    Pig930
        2
    Pig930  
    OP
       1 day ago
    @Cycle0079 GPT5.5 xHigh ,而且听说思考强度越低胶水代码越少
    Pig930
        3
    Pig930  
    OP
       1 day ago
    @Cycle0079 从实现效果上来说确实还挺好的
    Cycle0079
        4
    Cycle0079  
       1 day ago
    可以加到 AGENTS.md 试试是不是想要的风格

    ```prompt
    ### 编写代码时的风格要求

    当你编写代码时, 采用典型的 Weak Typing 面向过程脚本代码, 代码风格类似写 kernel, 极少注释(代码本身就是最好的注释)。
    ```
    yooomu
        5
    yooomu  
       1 day ago
    说实话没有太好的方法,可能训练的时候就让他偏向输出正确但是丑陋的代码
    SingeeKing
        6
    SingeeKing  
    PRO
       1 day ago via iPhone
    我和你的感觉刚好相反,Claude 基本上就是完全不做任何的参数校验和错误处理,而我非常不喜欢…
    GeruzoniAnsasu
        7
    GeruzoniAnsasu  
       1 day ago   ❤️ 1
    https://www.v2ex.com/t/1202715?p=1#r_17478888
    https://www.v2ex.com/t/1207049?p=1#r_17548593

    亦有记录。

    我的建议是回归古法,给 codex 把伪代码和函数名写好,让它根据标记修改回正常的代码。放任 codex 自流它 tm 上下文又长 review 又困难,模型还傻逼,评价是给自己找罪受
    xuejianxianzun
        8
    xuejianxianzun  
       1 day ago
    有兜底挺好的,我之前在一些觉得必要性不大的地方就懒得写 try catch ,但时间长了难免会遇到因此导致的问题。最近还有一个比较隐蔽的 bug 是因为没写 finally 导致的。
    Rorysky
        9
    Rorysky  
       1 day ago   ❤️ 1
    这实际上不是大模型的问题,是人的问题,是人要去审核
    Pig930
        10
    Pig930  
    OP
       1 day ago
    @SingeeKing Claude 这一点确实,我也不太喜欢。但现在我遇到的问题是 CodeX 做的过多了
    longxinglink
        11
    longxinglink  
       1 day ago
    创作性工程肯定 Claude opsu 4.7 啊,gpt free 干活是真的廉价
    Thesara
        12
    Thesara  
       1 day ago
    思考强度过高我觉得很容易出现这个问题,我自己几乎只用中
    nightwitch
        13
    nightwitch  
       1 day ago   ❤️ 1
    开 medium 指哪打哪...很少发散开去思考
    zwyyy456
        14
    zwyyy456  
       1 day ago
    @Pig930 我感觉写代码 high 就好了,设计方案可以 xhigh
    HENQIGUAI
        15
    HENQIGUAI  
       1 day ago
    还好,只是看起来丑和人工看懂与维护成本高,实际上多运行几十个 if 对性能的影响不大。
    qieqie
        16
    qieqie  
       1 day ago
    每天执行定时任务让 AI 通过局部低风险重构删除项目整体约 1%-3%的代码
    TophTab
        17
    TophTab  
       1 day ago   ❤️ 1
    答案是不看,让 AI 自己写。纯粹的 vibe coding
    sprinng
        18
    sprinng  
       1 day ago
    caiyuan
        19
    caiyuan  
       1 day ago
    我不看,不就不知道代码长什么样了?功能测试通过就行。
    8355
        20
    8355  
       1 day ago
    太对了,就是啰嗦和过度设计,这种项目持续的让 codex 去写必然会变成代码爆炸的一大坨,我只能选择 claude 。
    Had
        21
    Had  
       1 day ago
    @8355 claude 只会写无穷无尽的注释吧
    zhengfan2016
        22
    zhengfan2016  
       1 day ago
    @Had 我的 claude 都不写注释,写的比 codex 简洁,我用的默认 sonnet 4.6
    sampeng
        23
    sampeng  
       1 day ago via iPhone
    这事有两面性,防御编程本身没错。要求不要兜底也没错。怎么权衡就是人的能力,AI 本质是摇骰子。所以要人去平衡。
    8355
        24
    8355  
       1 day ago
    @Had 默认的会,啰嗦写一堆说明,举个例子给他就不写了,把历史写过的也全改掉了
    lujiaosama
        25
    lujiaosama  
       1 day ago
    看起来思考强度只开中还能治 codex 罗里吧嗦的问题?我也是嫌弃一大堆的兜底代码,看起来好累啊
    shunia
        26
    shunia  
       1 day ago
    developer instructions 里加一些限制会好很多,比如说尽量 happy path ,代码应当简洁直接,不要引入额外的复杂度和设计模式等。
    shunia
        27
    shunia  
       1 day ago
    @shunia #26 这玩意代码写的结果都还可以,但是质量实在是很难顶,不是 codex 的问题,大模型都这样,代码整体实现很不错,但是 review 的时候去读一遍就真的跟吃 shi 一样难受。
    saltbo
        28
    saltbo  
       1 day ago   ❤️ 4
    你只在 Agents.md 里写会有注意力漂移的问题。你需要用 subagents 。 定义一个专门负责 CR 的 subagent ,里面写上你对代码的要求。然后在 Agents.md 里定义工作流,要求每次提交之前必须调起 subagent 进行 CR 。 这样就能保证代码写出来是你想要的效果了。 亲测有效。
    swananan
        29
    swananan  
       1 day ago
    我现在是写完的代码认真 review 一遍,让它重写几次
    jroger
        30
    jroger  
       1 day ago
    可以添加如下提示词试试:

    ```markdown
    ## 要求
    - 采用面向对象编程思维,禁止流水账式编码;
    - 能用设计模式要用设计模式,提高代码质量;
    - 代码职责要单一,可维护;
    ```

    把提示词放入项目 `CLAUDE.md`
    Perry
        31
    Perry  
       1 day ago via iPhone
    Red green TDD 写好了 不要管代码好不好看,信就对了,有问题说明测试没写好
    DonaldY
        32
    DonaldY  
       1 day ago
    codex 会按照你本地代码风格的。
    Pig930
        33
    Pig930  
    OP
       1 day ago
    @saltbo 可以分享下 prompt 嘛,非常感谢
    ktyang
        34
    ktyang  
       1 day ago
    方法就是不看代码
    Qds
        35
    Qds  
       1 day ago
    以前领导还让我研读阿里的编程规范手册,让我学习大师的优秀代码,现在 ai 时代,人均 vibe coding 的 时代,感觉意义不是那么大了,以前还在想代码艺术啥的,现在想想还是算了吧
    jaylanzhou
        36
    jaylanzhou  
       16h 44m ago
    1. 你对代码的“美观”是如何定义的,除了基础的设计模式之外,每个人或公司的编程要求是不同的,请你自己先整理好相关的 skill
    2. 规范分两层,codex 的全局 skill 以及项目的 skill ,全局的 skill 写一些所有项目通用的设计规范,项目的 skill 中写一些项目相关的规范
    3. 示例代码,你可以在项目中定义一个 demo 包,写一套你觉得符合要求的示例逻辑,并在 skill 中提示,严格按照此代码结构执行
    4. 知识库,大厂的做法是将你每次的 prd 及代码整理出一个汇总文档或者变更日志,放到知识库里,下次 agent 会去参考,到这一步其实就已经是 spec coding 而不是 vibe coding 了,取决于你对项目的稳定性要求多高,每个项目不一样,如果是简单的项目,可以让他写变更日志或总结,直接弄成 md 文档放到项目里
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5323 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 168ms · UTC 08:07 · PVG 16:07 · LAX 01:07 · JFK 04:07
    ♥ Do have faith in what you're doing.