lpf0309

写代码一定要防御性编程

  •  
  •   lpf0309 · 1h 53m ago · 2503 views

    最近因为五一拒绝加班得事情,和组长闹得不太愉快,组长让我教另一个合作的同事我写得代码。这个同事经常白天摸鱼,晚上加班,自己做项目做不出来,派我过来帮忙才把这个项目得主要难题给解决了。本来我都把大部分功能都写好了,然后我又重新改了下,故意用错误得方案,把性能改差,主要功能具备,表面上看不出问题。这个同事稍微一改代码,运行出来就有问题,排查问题一时半会儿也找不到,我也说不知道。什么时候这项目我单独负责了,我再把代码改回来,不然有他们费劲的。以后写代码,自己写好以后,把注释给改一下,然后把逻辑给弄混乱点,代码写的太好,AI 也能理解,其他同事也能接手,对我们而言,没一点好处。

    39 replies    2026-05-14 11:31:33 +08:00
    HENQIGUAI
        1
    HENQIGUAI  
       1h 42m ago   ❤️ 3
    没啥意义,AI 分分钟把问题清理完
    GeruzoniAnsasu
        2
    GeruzoniAnsasu  
       1h 41m ago
    没啥意义,AI 连 copy fail 都能挖出来,你埋的 business fail 怕不是分分钟
    Aaron01
        3
    Aaron01  
       1h 41m ago via iPhone
    成长了
    giter
        4
    giter  
       1h 40m ago   ❤️ 1
    没意义了,你的小思路在 Vibe Coding 面前不值一提,AI 能瞬间理清项目逻辑
    wfg
        5
    wfg  
       1h 37m ago via iPhone   ❤️ 3
    请不要误用防御性编程这个短语,最起码加个引号
    fkdtz
        6
    fkdtz  
       1h 37m ago   ❤️ 1
    回头 AI 分分钟解完,还会锐评一下你的代码,那画面简直了
    evill
        7
    evill  
       1h 35m ago
    不仅在 AI 时代没用
    而且在有一定规模的公司,code review 也过不去
    boogo
        8
    boogo  
       1h 33m ago
    没意义,即便是写成屎山在 AI 面前也能捋的明明白白的
    jsrunner
        9
    jsrunner  
       1h 33m ago
    中小公司还有用的
    94
        10
    94  
       1h 31m ago
    希望你当接盘侠接盘项目的时候,接盘到这样的“防御性编程”心态也可以像现在这样。
    上不上裁员名单并不是看你的项目代码是不是容易被其他人接手,而是看项目的重要性。
    Moonkin
        11
    Moonkin  
       1h 31m ago via Android
    五一不是轮流值班么?真加班应该可以要求三倍加班费?
    zhang666
        12
    zhang666  
       1h 29m ago via iPhone
    恐怕封二进制库都没办法了,ai 出来,整个 codeing 行业算是完了
    miku999
        13
    miku999  
       1h 28m ago
    可以尝试将一些必要的信息扔到远程的配置文件上、结合你公司的一些登录系统, 给 AI 制造一些卡点, 让 AI 读不到全部的上下文, 就不好解决问题
    0x663
        14
    0x663  
       1h 22m ago   ❤️ 2
    古法编程吗?有点意思
    xFrye
        15
    xFrye  
       1h 19m ago
    错用「防御性编程」这个词,而且大人时代变了,你耍那么点古法编程小聪明 ai 面前简直小菜一碟
    tanrenye
        16
    tanrenye  
       1h 18m ago
    现在防御编程已经没有多大意义了,AI 都能理解
    yxc246800
        17
    yxc246800  
       1h 18m ago
    这是啥防御性防御,防御同事那种防御吗

    我还以为是 c/c++那种遇到指针使用必检查,遇到关键变量必检查的写法。
    potatowish
        18
    potatowish  
       1h 17m ago
    格局小了,还是古法编程年代的思维
    6581
        19
    6581  
       1h 16m ago
    没意义,拥抱 AI 吧
    kinkin666
        20
    kinkin666  
       1h 16m ago
    这个也叫防御性编程么,

    我以为的防御性编程是那种带兜底的,不能把服务给炸了的那种
    A555
        21
    A555  
       1h 15m ago   ❤️ 1
    也不要太迷信 ai
    屎山代码,事务里加了一个异步线程去数据库读取主线程的新增数据,gpt5.5 找不出来,还是古法编程加日志找出来的
    orion1
        22
    orion1  
    PRO
       1h 14m ago
    没用的,AI 把大家的经验水平都拉倒了一个极高且统一的水平
    changnet
        23
    changnet  
       1h 11m ago   ❤️ 1
    这个问题说了一百遍了,一点意思都没有,误人误已。

    你代码里有问题,别的同事知道了,就是你的问题,就是你水平不行。这个同事不是你的组长,不是你那个垃圾同事,而是另外一些优秀的。你在圈子里的水平和人品就固定了,后续有机会别人想带你都带不起。

    水平垃圾的同事,正常教他,他都学不会搞不定,没必要使绊子。就正常跟他说这样搞那样搞。至于他搞不定那就不关我事了,我可不帮他。

    如果自己有更好的地方去,尽早走人离开这种环境。如果没有,那就完成任务了事,其他不搞。

    有没有可能,正常的管理者会把你俩一起换掉,而不是说非得让另一个同事负责,他负责不了就留着你。更不要说现在有 AI 可以做很多事,随便招个正常水平的人就把问题解决了。
    jackOff
        24
    jackOff  
       1h 3m ago
    只要让我知道有这号人,想办法清除你
    tiaod
        25
    tiaod  
       1h 3m ago
    没意义。你倒不如折腾 AI 工具,把工作效率拉满,把同事卷死
    Navee
        26
    Navee  
       1h 3m ago
    重要的不是防御,是甩锅能力
    只要你甩锅能力强,调用对方报错是对方的锅,跟你没关系,对方调用你报错是对方没处理报错,跟你没关系
    loading
        27
    loading  
       1h 3m ago
    没用。

    我昨天用 Ai 写一个简单的单片机,就一个让 LED 闪烁的几行代码,编译完烧进去就是没运行起来。我一直让 Ai 改,它直接分析到编译后的 elf 文件,一个个字节按汇编给我反推对比,我一看过程都傻了,虽然它路子错了,最后我感觉 token 烧得多了,就自己重新装了下环境。

    都到这种程度了,你怎么防御。
    akakidz
        28
    akakidz  
       57 mins ago
    有用,但不要停留在“代码写乱一点”这种级别,我已经被同事上过一课了,真正有效的是“运行时系统”+“系统复杂度”。

    1 、把业务慢慢做成配置化、插件化、工作流化
    代码里别直接写死逻辑,而是通过配置、插件、runtime 去驱动。

    时间长了以后:
    一个配置影响多个系统
    同一个字段在不同地方含义不一样
    配置互相依赖
    功能动态注册

    后面接手的人能看懂代码,但根本理不清系统到底怎么跑的。

    2 、核心能力做成自己的私有包
    业务仓库只是壳,真正核心逻辑在内部 SDK 、私有包、runtime 里。
    线上跑的是编译后的版本,源码和完整构建链路自己维护,保持自己手里的版本永远比线上版本高。

    同事接手后经常会出现:
    本地能跑线上不一样
    改一个地方别的项目炸了
    某些功能不知道从哪来的
    升级版本后各种兼容问题

    文案我优化了一下,场景为真实发生在公司的事件,领导还不好说啥,美名曰快速响应需求变动。
    imagecap
        29
    imagecap  
       55 mins ago   ❤️ 1
    AI 都正确搞定的话,你就没有存在的必要了,搞不定出问题锅还得你背。不知道这些 AI 吹咋想。
    xiangran0028
        30
    xiangran0028  
       53 mins ago
    你写的混不混乱对 AI 来说没有区别。
    yetAnotherJoe
        31
    yetAnotherJoe  
       50 mins ago via iPhone
    把“故意写错写乱”叫防御性编程。没法评。
    0x0x
        32
    0x0x  
       44 mins ago via Android
    真有意思,不累么每天都要计较这些
    guanhui07
        33
    guanhui07  
       35 mins ago
    没意义了,AI 时代
    jimrok
        34
    jimrok  
       33 mins ago
    AI 不会改你的代码的,要是我直接弄清需求,然后让 AI 做个分析报告,指出现在代码的问题,跟领导汇报一下,然后直接重新做一版平替掉。
    someonelikeyouah
        35
    someonelikeyouah  
       24 mins ago
    感觉 AI 也需要马圣人的第一性原理,如果你同事能清晰的描述问题,只是不会写代码的话,现在 AI AGENT 已经能很大程度做到替代了,要是我遇到了这种情况多少都让 ai 翻一下你的 git 记录,然后分分钟给你回滚,前提是我知道你在使坏的话,归因的能力在现在感觉非常重要,输出代码反而不重要了
    Mcler
        36
    Mcler  
       17 mins ago
    除非你的代码时混淆过后的,否则没有任何意义。
    66beta
        37
    66beta  
       16 mins ago
    是你同事太傻不会用 AI ,不然 5 分钟就给优化好了
    Rehtt
        38
    Rehtt  
       13 mins ago via Android
    @loading 但是反过来想,以前是增加人的心智负担,就算逻辑再怎么绕还是能分析出来,只是人要燃尽了。而现在 ai 时代就是增加 token 的消耗量,结果还是一样可以捋出来,但是 token 消耗得大,让钱包燃尽🤣
    Rehtt
        39
    Rehtt  
       10 mins ago via Android   ❤️ 1
    前 ai 时代防御性编程重点是增加人的心智负担,而 ai 时代的重点是拉长上下文增加 token 的消耗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5636 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 165ms · UTC 03:41 · PVG 11:41 · LAX 20:41 · JFK 23:41
    ♥ Do have faith in what you're doing.