V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fallen42
V2EX  ›  程序员

怎么在不恶心自己的情况下进行防御性编程

  •  1
     
  •   fallen42 · 2024-07-24 16:11:06 +08:00 · 9679 次点击
    这是一个创建于 407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然现在每天的工作就是在屎山上找个地方拉坨大的,但至少遵循代码规范的情况下拉的很美观很直观(笑 现在裁员压力大啊,但防御性编程我真的写不出会让自己恶心的东西

    84 条回复    2024-07-31 11:43:17 +08:00
    DiaoWang
        1
    DiaoWang  
       2024-07-24 16:19:29 +08:00 via iPhone   ❤️ 1
    如果你觉得恶心,那就不要做。恶心别人可以,别恶心自己。
    wu67
        2
    wu67  
       2024-07-24 16:23:48 +08:00   ❤️ 8
    对大部分人来说, 不刻意去优化逻辑、拆分组件, 最后写出来一定是屎. 都不用特地做什么操作.
    dfkjgklfdjg
        3
    dfkjgklfdjg  
       2024-07-24 16:28:56 +08:00   ❤️ 17
    不用防御性编程。你以为的自己业务写的其他人看不懂无法维护,裁员就不会落到你头上。
    实际上除了恶心自己和接盘侠之外并不能影响到领导决定是不是裁掉你。最后还得因为自己防御性编码,写交接文档挠破头。
    echo1937
        4
    echo1937  
       2024-07-24 16:30:51 +08:00   ❤️ 2
    只要你怎么舒服怎么来,不写文档不写注释,时间一过三个月,他肯定就是屎。
    wuud
        5
    wuud  
       2024-07-24 16:49:09 +08:00
    @echo1937 哈哈哈,太真实了
    wysnxzm
        6
    wysnxzm  
       2024-07-24 16:51:03 +08:00   ❤️ 2
    正常写就可以
    opengps
        7
    opengps  
       2024-07-24 16:51:59 +08:00
    你对你能写出规范代码是不是太自信了?很多时候规范代码拿鞭子抽着都写不规范
    maxwellz
        8
    maxwellz  
       2024-07-24 17:14:03 +08:00   ❤️ 1
    op 这句话把我逗笑了,哈哈哈🤣
    `虽然现在每天的工作就是在屎山上找个地方拉坨大的`
    ktqFDx9m2Bvfq3y4
        9
    ktqFDx9m2Bvfq3y4  
       2024-07-24 17:15:14 +08:00 via iPhone
    copilot 可解。
    Daniel17
        10
    Daniel17  
       2024-07-24 17:16:24 +08:00
    防御性编程没什么用
    tool2dx
        11
    tool2dx  
       2024-07-24 17:22:38 +08:00
    把反编译/混淆的源代码丢上去就可以了,同样是源代码,但基本上除了你自己,别人没法改。
    chiaf
        12
    chiaf  
       2024-07-24 17:23:04 +08:00
    拉不出来,让 AI 拉,比自己拉的好看点
    Vitumoc
        13
    Vitumoc  
       2024-07-24 17:34:48 +08:00
    真的有 "因为代码写的规范,导致容易被接手,导致被开出" 这样的案例吗?
    我严重怀疑这个逻辑链的真实性。
    wanguorui123
        14
    wanguorui123  
       2024-07-24 17:38:05 +08:00
    你这逻辑好比刚需自住不亏
    zzNaLOGIC
        15
    zzNaLOGIC  
       2024-07-24 17:48:08 +08:00
    "领导,这块我来设计、开发和后续维护就行了,其他人抽出去支援其他项目吧。我一个人能顶住"
    sakeven
        16
    sakeven  
       2024-07-24 17:51:42 +08:00   ❤️ 28
    这不叫防御性编程,都被你们用烂了。防御性编程是用来抵御不确定的错误与有风险输入之类的,是一种非常好的编程实践。

    你这个只能叫防裁员编程。
    murmur
        17
    murmur  
       2024-07-24 17:58:01 +08:00
    正常写的代码过半年你都看不懂
    micao
        18
    micao  
       2024-07-24 21:09:27 +08:00   ❤️ 1
    写一个功能和代码量极其大的函数,保罗万象。输入参数变量放在一个大数组里,各个参数毫无相关性,如果是若类型语言,不声明变量类型,并且使用隐性的类型强制转换。够屎了吧。
    happy32199
        19
    happy32199  
       2024-07-24 23:26:30 +08:00 via Android
    微服务 哈哈
    Cooky
        20
    Cooky  
       2024-07-24 23:30:16 +08:00
    嵌个 lisp 脚本进去,既能学学 lisp ,又能折磨读代码的人(
    afxcn
        21
    afxcn  
       2024-07-24 23:34:34 +08:00   ❤️ 1
    防裁员编程没有意义,要写出简单易懂、容易维护的代码本身就不容易,我们通过多年的实践认识了一个道理,就算你把代码写得多规范,多简单易懂,别人也不愿意维护,也是想方设法重做。
    fkdtz
        22
    fkdtz  
       2024-07-24 23:42:16 +08:00
    我以为“防御性编程”只是一个梗,难道真的有人这么写吗?
    passive
        23
    passive  
       2024-07-24 23:43:40 +08:00 via Android
    领导:把他裁了换个人来重构。
    X0V0X
        24
    X0V0X  
       2024-07-25 00:38:52 +08:00 via iPhone
    按我的逻辑不遵守团队规范的,有裁员名额第一个推出去
    forvvvv123
        25
    forvvvv123  
       2024-07-25 00:57:39 +08:00
    没事,瞎写就行,你又不是什么大负责人;
    有那精力给自己的项目或者开源项目搞搞不香吗;

    除非大家瞎写你又要负责系统可用性,然后系统真的因为大家都瞎写反复挂的时候,你再考虑怎么定定规范,搞搞 ci 流程之类的, 没到这一步不用想。
    mohumohu
        26
    mohumohu  
       2024-07-25 01:57:09 +08:00
    防御性编程有时也被计算机科学家称为安全编程( Secure programming )。潜在的软件缺陷可能会被黑客利用,而进行代码注入,拒绝服务攻击或其他攻击。

    防御性编程与非防御性编程之间的区别在于,程序员不会对特定的函数调用或库的使用情况做假设。
    BeiChuanAlex
        27
    BeiChuanAlex  
       2024-07-25 02:01:30 +08:00
    其实很简单,用冷门的语言写
    netabare
        28
    netabare  
       2024-07-25 02:06:23 +08:00 via iPhone
    首先,这不叫防御性编程
    DOLLOR
        29
    DOLLOR  
       2024-07-25 02:34:19 +08:00   ❤️ 1
    绝大多数程序员都是平庸的人,互相看不起,互相嫌弃对方的代码。
    所以,你只要正常写,哪怕自认为很“优雅”,在别人眼里都是“防裁员代码”。
    leo72638
        30
    leo72638  
       2024-07-25 02:39:05 +08:00 via iPhone
    没用,要裁员领导也不会管代码质量
    hello2090
        31
    hello2090  
       2024-07-25 06:03:44 +08:00 via iPhone
    这,你还得告诉老板你的 code 别人看不懂啊,不然他不知道啊
    chendy
        32
    chendy  
       2024-07-25 08:17:28 +08:00
    污名化防御性编程,B 了
    有一说一,不用故意不好好写,80%的开发正常写都是屎,99%的开发自己写完的东西自己都看不懂,更不用说别人
    swy
        33
    swy  
       2024-07-25 08:23:12 +08:00
    还是自己多参与一些有深度的项目吧,掌握核心流程。简单代码你再怎么“防御”也没用。
    corcre
        34
    corcre  
       2024-07-25 08:23:58 +08:00
    我就正常发挥
    bk201
        35
    bk201  
       2024-07-25 08:36:20 +08:00   ❤️ 2
    领导不会考虑什么屎山很难理解,留下你,而是让你走后,说你水平很差,让其他人接手,其他人会吐槽你的代码,进行重构。丝毫不影响你被裁员,而且难为同事后你的风评很差,领导无所谓,如果没人能接手,就重构,说你能力差,或者接手人能力差。
    muzei233
        36
    muzei233  
       2024-07-25 08:50:20 +08:00   ❤️ 1
    代码留给别人,注释留给自己
    luzemin
        37
    luzemin  
       2024-07-25 08:52:37 +08:00
    多分层。

    计算机科学领域加一层不能的解决的问题就是封层太多的问题。
    harryWebb
        38
    harryWebb  
       2024-07-25 09:23:01 +08:00
    别天天想着写好代码,真正有价值的东西是让人无法离开,而不是让任何一个人都替代你
    不要有什么洁癖,这些都是有问题的思想
    masterclock
        39
    masterclock  
       2024-07-25 09:28:47 +08:00
    是不是不少人把梗当真了?
    zhoust
        40
    zhoust  
       2024-07-25 09:37:59 +08:00
    @masterclock 如果没有能力改变 现状/弱势地位,那就给自己套上一份“信仰”,以“信仰”之力维持自己行为的正当性/社交价值。通常这种行为都发生 Loser 身上。
    duanxianze
        41
    duanxianze  
       2024-07-25 09:42:01 +08:00
    事实上没什么用,业务不赚钱代码好坏都是价值为零的垃圾,裁掉也不用找人接盘了
    qsnow6
        42
    qsnow6  
       2024-07-25 09:42:11 +08:00
    开玩笑可以,当真就算了。现在这环境,整条业务线都可以裁掉,这些操作纯粹给自己找事。大部分人不要对自己的代码质量过于自信,看看自己 1 年前的代码,很多时候自己也看不懂。
    yulgang
        43
    yulgang  
       2024-07-25 09:50:52 +08:00
    不写注释,变量名用拼音首字母+英文单词就行😂
    FreshOldMan
        44
    FreshOldMan  
       2024-07-25 09:56:29 +08:00
    没用的,不会有大模型看不懂的代码
    qiyilai
        45
    qiyilai  
       2024-07-25 10:04:08 +08:00   ❤️ 1
    没必要,有时候一团端
    Leon777
        46
    Leon777  
       2024-07-25 10:09:29 +08:00
    到处拉屎你以为能恶心到别人,其实先恶心到的是自己
    dcdlove
        47
    dcdlove  
       2024-07-25 10:09:35 +08:00
    你可以去这里学学😂
    https://juejin.cn/pin/7394792228214718498
    EndlessMemory
        48
    EndlessMemory  
       2024-07-25 10:09:55 +08:00
    你这也防不了裁员
    zhuangzhuang1988
        49
    zhuangzhuang1988  
       2024-07-25 10:11:30 +08:00
    正常写就好。
    Sfilata
        50
    Sfilata  
       2024-07-25 10:14:48 +08:00
    你怎么编程真的没啥用,不会真有人觉得自己负责的代码离了自己就会挂吧。如果真要裁你,你全部用二进制写也没用。所以说,好好写代码,好好健身,多熟悉熟悉业务,搞清楚一些业务逻辑比搞这种故意防裁员编程都好的多。
    error451
        51
    error451  
       2024-07-25 10:24:42 +08:00
    很简单啊, 尽量用高级算法。

    比如字符串查找, 一般要求不高的情况下,用语言自带的字符串查找就行了。

    但是你自己全用高级算法,比如 KMP 算法,AC 自动机等等高级字符串搜索。

    排序算法,别用语言自带的, 自己实现。有 N 种排序算法, 找最复杂的算法,自己实现上三四个,然后写代码的时候,随机选一个用。

    一个简单功能,用三四种排序算法,三四种字符串搜索算法, 都是正经算法,谁也说不了你啥东西。

    非要问,就是为了提高运行效率。
    2324
        52
    2324  
       2024-07-25 10:29:51 +08:00
    对我而言是正常发挥
    ixwen
        53
    ixwen  
       2024-07-25 10:33:41 +08:00
    @echo1937 不用三个月 过个几天 自己都看不懂😂
    TArysiyehua
        54
    TArysiyehua  
       2024-07-25 10:34:21 +08:00
    很多人压根没意识到老板根本不看你写了什么代码?防御性编程?你要笑死我
    Torpedo
        55
    Torpedo  
       2024-07-25 10:38:40 +08:00
    别想了,国内大部分公司都是通过人来解决问题,而不是文档、流程。搞这些没用的
    GBdG6clg2Jy17ua5
        56
    GBdG6clg2Jy17ua5  
       2024-07-25 10:43:33 +08:00
    想一下,老板裁你会看你代码能不能维护吗?
    真正的防御性编程是多了解公司核心业务,看看自己是不是也可以搞一个副业。
    zuixinwenyue
        57
    zuixinwenyue  
       2024-07-25 10:49:59 +08:00
    @Vitumoc 一定有这个项目别人无法维护而不能开除的案例;
    xz410236056
        58
    xz410236056  
       2024-07-25 11:25:25 +08:00
    你只要把注释去了就行了
    bugmaker1024
        59
    bugmaker1024  
       2024-07-25 11:52:51 +08:00
    当我看我前几个月写的代码,我觉得也是一坨屎
    rxswift
        60
    rxswift  
       2024-07-25 11:55:06 +08:00
    裁不裁你和你写的屎山代码没有一点关系
    shixuedela
        61
    shixuedela  
       2024-07-25 12:20:43 +08:00
    留意到你的`(笑` 我在拼命的找另一半`)`。我是不是没救了
    xiaokaiyyy
        62
    xiaokaiyyy  
       2024-07-25 12:33:11 +08:00
    放空自己写,出来一定是垃圾
    zw1one
        63
    zw1one  
       2024-07-25 13:34:53 +08:00
    文档、各种关键配置、项目部署情况、分支信息。这些自己留着不公开就行了。
    zjp
        64
    zjp  
       2024-07-25 13:37:47 +08:00
    看完正文还以为是正常含义的防御性编程,看来不正常的是我
    Promtheus
        65
    Promtheus  
       2024-07-25 13:46:55 +08:00
    写业务代码就不要研究这种了。没啥意义
    wwd179
        66
    wwd179  
       2024-07-25 14:16:29 +08:00
    就算防御性编程。也会被裁吧。只是发现裁了这个员工后,项目一团糟
    luodiskac
        67
    luodiskac  
       2024-07-25 15:07:41 +08:00
    我写的狗屎本身就带有防御性编程属性了...
    unco020511
        68
    unco020511  
       2024-07-25 15:14:59 +08:00
    不要这么干,放过后来者
    blur1119
        69
    blur1119  
       2024-07-25 15:42:37 +08:00
    @dfkjgklfdjg 好多人都是这样被洗脑 ,把别人的玩笑话当真,以为防御性编程真有用呢。刚进公司一看你写烂,直接被裁,还什么防御编程
    bello123
        70
    bello123  
       2024-07-25 15:46:46 +08:00
    别过几个月后没恶心到别人,而恶心到自己了
    weixind
        71
    weixind  
       2024-07-25 15:54:33 +08:00
    @X0V0X 不用等裁员名额。直接干飞。相信代码写的狗屎一堆就不会裁自己的,脑子有问题。
    laoertongzhi
        72
    laoertongzhi  
       2024-07-25 15:57:54 +08:00
    过于自信了。
    caiqichang
        73
    caiqichang  
       2024-07-25 16:04:29 +08:00   ❤️ 1
    己所不欲,勿施于人
    UserName99
        74
    UserName99  
       2024-07-25 16:15:08 +08:00
    变量名用中文方言命名,自带加密效果
    easymbol
        75
    easymbol  
       2024-07-25 16:17:54 +08:00
    没必要,只要需求提的越多,屎山就越庞大
    llwillzhiwei
        76
    llwillzhiwei  
       2024-07-25 16:21:00 +08:00
    使用高级的设计模式
    james122333
        77
    james122333  
       2024-07-26 00:29:07 +08:00 via Android
    没有人喜欢被防御性编程针对 我也很不喜欢 但防御性编程重点根本不在于避免被裁 而是让别人被裁或者被贴上能力相关的标籤 自己不被裁是最佳副作用 深有体会才会了解这个 通常是相同部门资深人员或上位者的阴谋
    victorc
        78
    victorc  
       2024-07-26 00:33:30 +08:00
    做人,堂堂正正,坦荡一生,别干这些蝇营狗苟的事情

    如果缺钱,我支持你去抢银行,也别这样猥琐
    james122333
        79
    james122333  
       2024-07-26 00:36:03 +08:00 via Android
    而且这样被恶搞的人往后职场会被检讨稳定性 华人社会中是蛮恶毒的
    james122333
        80
    james122333  
       2024-07-26 00:48:05 +08:00 via Android
    如果你这都没被打击到 那就可能针对其它方面被批判
    但还有玩双面的
    xuAN111
        81
    xuAN111  
       2024-07-26 01:37:36 +08:00
    恶心别人就是恶心自己。
    8355
        82
    8355  
       2024-07-26 10:45:43 +08:00
    你看,思维上已经融入了,还谈其他的干嘛。
    shapper
        83
    shapper  
       2024-07-26 15:40:54 +08:00
    只要代码能跑就无所谓有没有注释,理解时间成本问题。。。。。
    hwf
        84
    hwf  
       2024-07-31 11:43:17 +08:00
    源码不提交, 只提交压缩混淆后的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2516 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:48 · PVG 23:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.