跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 最强(划掉,最差)程序员开发指南
未分類
24 11 月 2020

最强(划掉,最差)程序员开发指南

最强(划掉,最差)程序员开发指南

資深大佬 : salaryfly 5

如何成为团队中不可或缺的程序员? 如何让项目代码只有你能看懂? 如何将用代码摧毁一个项目、使其最终无法维护?

我们总结了以下经验:

  1. 为每个方法(有些语法中成为函数)都编写大量的注释,其中要包括背景介绍、设计思想、参数说明、使用案例和注意事项等等。

  2. 不要同时修改函数内容和注释文档。随着时间推移,函数的运行逻辑和文档描述的就不太一致,这看上去会很酷,因为除了看代码,没有人真正知道它的运行逻辑,既然这样,接下来就是让别人无法看懂代码。

  3. 在某些无关紧要的函数注释上加上这样一句话:“不要修改这段历史遗留代码,它很重要。”

  4. 如果你使用强类型语言(如 Java 等),将所有的参数类型去掉,用字典(如 Map )来接受参数和返回值。配合上不那么一致的注释文档,这样在几次版本更新之后,没有调用方能确定这个方法的入参到底是什么。

  5. 将所有的重复代码抽象出来以保证代码复用,并且没有程序员会批评你消灭了重复代码。例如两块代码都乘了数字 2,那么抽象一个 mul2 的新方法以复用。

  6. 创建大量的函数,将函数分层,将相关功能的函数分散在不同的代码文件中。你要相信,在跳转 50 次之后,很难有人还能看懂这段代码的真正执行逻辑。

  7. 变量和方法命名不要和具体功能相关,尝试用动物或者数字来随机命名。

  8. 使用函数式编程思想,将所有的 for 循环替换成递归,首先这会让你看上去很酷,如果再配合上无关的变量和函数名称,基本上任何人都要停下来思考一段时间才能看到递归的逻辑。

  9. 尽可能用一行代码解决所有的问题。

  10. 将所有的 If-Else 替换成三元运算符,特别当 If-Else 嵌套的数量更多时,没有人能很快看明白三元运算符的真正逻辑。

  11. 过度设计表结构和类,你可以声称这是为了今后的扩展性。同时编写一些永远不会用到的代码。

  12. 声明一些冗余的相关变量,例如变量 isOk 和 isNotOk 来判断同一个状态,记住不要同时更新他们的值,甚至在前一段用 isOk 表示 OK,后面一段代码用 isNotOk 来表示 OK 。这一定会让别人非常困惑。

  13. 在 getter,setter 中加入额外逻辑,例如在 getter A 时,将 B 的值加 1 。

  14. 使用大量的位操作,你可以告诉别人这样的执行效率更高。

  15. 复杂化判断表达式,If(!!a==!!true)和 If(a)是一样的意思,但是前者会复杂很多,你可以声称在某些弱类型语言中,两次取反可以转换类型。

  16. 不停的重构代码,向上述的方向前进。

你可以用这些技巧来摧毁一个代码库,也可以用这些技巧来保卫一个代码库。

PS. 欢迎关注我的公众号: Salaryfly

大佬有話說 (22)

  • 主 資深大佬 : salaryfly

    各位有补充的吗?

  • 資深大佬 : GopherDaily

    只添加功能,just this

  • 資深大佬 : beichenhpy

    真狠啊

  • 資深大佬 : yeqizhang

    学废了

  • 資深大佬 : baabaasheep

    你是魔鬼吗

  • 資深大佬 : nthhdy

    搜一下 “refuctoring”

  • 資深大佬 : huruwo

    直接写汇编算了 这玩意没几个人能接手

  • 資深大佬 : wssy921

    你是魔鬼吗

  • 資深大佬 : acmore

    17. 根据心情和单双号来确定变量的命名风格,通过风格迥异的变量命名来彰显自己不随波逐流的高尚品格;

  • 資深大佬 : IsaacYoung

    18. 不要在代码中注释接口文档链接

  • 資深大佬 : xuanbg

    使用反射来执行方法,让 IDE 无法自动跳转到真正的执行逻辑。
    胡乱起一些包名,并把类文件随机放进某个包里面。

  • 資深大佬 : Kilerd

    太菜了,网络上已经有完善的了 [How To Write Unmaintainable Code]( https://github.com/Droogans/unmaintainable-code)

    中文版 https://coolshell.cn/articles/4758.html

  • 主 資深大佬 : salaryfly

    @xuanbg 很棒的想法!

  • 主 資深大佬 : salaryfly

    @Kilerd 感觉差不多哦

  • 主 資深大佬 : salaryfly

    @IsaacYoung 可以考虑注释过期的文档链接

  • 資深大佬 : HenryWang0723

    绝了…绝了…(鼓掌中)

  • 主 資深大佬 : salaryfly

    @HenryWang0723 来 salaryfly,找到组织

  • 資深大佬 : IsaacYoung

    @salaryfly 你这个更狠

  • 資深大佬 : leonardyang

    最可怕的是你的同事们、团队成员们不需要看这个也能写出这样的代码

  • 主 資深大佬 : salaryfly

    @leonardyang 教你一招:
    第一步:搜索微信公众号: Salaryfly
    第二步:找到这篇文章
    第三步:分享到同事微信群

    然后你会发现每个人都觉得这样的代码是别人写的。

  • 資深大佬 : killva4624

    不要给函数传入结构体,而是传入所有变量(尤其是超过三个以上变量的时候),这样会让函数更具有可读性。

  • 主 資深大佬 : salaryfly

    @killva4624 通过 map 传,隐藏类型

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具