V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qwer123
V2EX  ›  问与答

如何把代码写的让其他人无法接手,令人匪夷所思?

  •  
  •   qwer123 · 2020-04-13 20:39:46 +08:00 · 2895 次点击
    这是一个创建于 1681 天前的主题,其中的信息可能已经有所发展或是发生改变。

    除了代码混淆以外呢?

    27 条回复    2020-04-14 16:45:04 +08:00
    noqwerty
        1
    noqwerty  
       2020-04-13 20:40:33 +08:00 via Android   ❤️ 11
    自信点,正常写可能 80%以上的人都接不了手
    ufan0
        2
    ufan0  
       2020-04-13 20:45:27 +08:00 via Android
    多看代码整洁之道,然后反着来。
    huayumo
        4
    huayumo  
       2020-04-13 20:52:14 +08:00   ❤️ 1
    不给注释,没文档的就可以了
    soulzz
        5
    soulzz  
       2020-04-13 21:31:04 +08:00
    多用 bean 反射 以及全局 getBean setBean 之类的
    接受你代码的人估计想哭
    编辑器跟代码都跟不到
    zvcs
        6
    zvcs  
       2020-04-13 21:37:35 +08:00 via iPhone
    你正常写就好。这个话题讨论过。
    jin7
        7
    jin7  
       2020-04-13 21:39:04 +08:00
    正常写好 然后编译器混淆 自己也看不懂了 哈哈
    1490213
        8
    1490213  
       2020-04-13 22:03:40 +08:00 via Android
    用你正常的水平,写 C++ 代码完成需求即可。
    wu67
        9
    wu67  
       2020-04-13 22:04:33 +08:00
    不写注释就行了. 大部分人都会哭. 然后变量名都只用一个单词, 需要的时候***1 ***2 这样, 接手的人多半崩溃
    chihiro2014
        10
    chihiro2014  
       2020-04-13 22:06:17 +08:00
    跟正常人反着写就行,不写注释,用上各种高级特性,让人无从下手
    mtf
        11
    mtf  
       2020-04-13 22:25:48 +08:00 via Android
    变量名参数名全都是单个字母
    GoLand
        12
    GoLand  
       2020-04-13 22:31:59 +08:00
    变量名全部用中文拼音首字母缩写,比如:
    金额 -> je
    账单 -> zd
    回到顶部 -> hddb
    libasten
        13
    libasten  
       2020-04-13 23:03:17 +08:00 via Android   ❤️ 1
    @GoLand
    以前公司有人中英双语的,还不统一

    项目对象 xmObj
    人员对象 ryItem

    哈哈
    dddd1919
        14
    dddd1919  
       2020-04-13 23:07:06 +08:00
    如果你很菜,再怎么努力也是徒劳
    learningman
        15
    learningman  
       2020-04-13 23:10:47 +08:00 via Android
    @GoLand 大学生上网课用的学习通用的就是一套完全由拼音构成的前端,部分由英语加拼音首字母构成。
    Raynard
        16
    Raynard  
       2020-04-13 23:12:10 +08:00
    变量名随机生成
    szdubinbin
        17
    szdubinbin  
       2020-04-14 00:21:40 +08:00   ❤️ 2
    我见过一个答复很搞笑的,“代码更新了,注释没有更新”, 但是我还是劝你善良哈哈
    Cryse
        18
    Cryse  
       2020-04-14 00:23:24 +08:00
    @GoLand
    惊了,以前有个别人写的项目需要补文档就是这样,我们一群人里就一个参与过项目的人能搞懂这些拼音首字母缩写,好多地方不问他搞不清...
    2kCS5c0b0ITXE5k2
        19
    2kCS5c0b0ITXE5k2  
       2020-04-14 00:26:19 +08:00
    @GoLand 草我接手的就是这样。 然后 if 还全挤在一行。空格完全不打。我直接全部重写了。
    May725
        20
    May725  
       2020-04-14 01:15:09 +08:00
    正常写,完成后用 ide 再将变量名重构为不相干的东西,魔鬼数字等。
    wdv2ly
        21
    wdv2ly  
       2020-04-14 07:53:12 +08:00 via Android
    这个不难,难的是如何在这个前提下,自己还能看得懂🌺🐔
    sonxzjw
        22
    sonxzjw  
       2020-04-14 08:46:47 +08:00
    所有命名用无意义无序复杂的字符串,我遇到过,一手下写的 html

    完全崩溃
    sonxzjw
        23
    sonxzjw  
       2020-04-14 09:03:45 +08:00
    @orzorzorzorz 不得不说,里面好一些的建议真的需要智慧才能做到,真心的。例如越久才能发现的 bug
    Meltdown
        24
    Meltdown  
       2020-04-14 09:11:55 +08:00 via Android
    写几千上万行的函数,然后不给注释和文档
    zsc8917zsc
        25
    zsc8917zsc  
       2020-04-14 09:23:59 +08:00
    代码写多整洁都没关系,只要注释反着写,不怕别人敢接手
    christin
        26
    christin  
       2020-04-14 11:29:55 +08:00 via iPhone
    变量名从 a1 到 a100,只写一个函数。
    nnnToTnnn
        27
    nnnToTnnn  
       2020-04-14 16:45:04 +08:00
    ```
    如何把代码写的让其他人无法接手,令人匪夷所思?
    ```

    我就喜欢挑战,看别人无法接手的项目,慢慢排查,最后下断点调试,看参数返回值,最后 hook 修改代码。

    如果是 java,在没源码的情况下改 class 字节码都做过,你确定会混淆比字节码还难读?与其想着怎么让别人无法接受,还不如想着怎么才能把代码写的清晰易懂,例如多用用语法糖,把代码写的简单舒适
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1131 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:04 · PVG 03:04 · LAX 11:04 · JFK 14:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.