在编程界,有一种神秘的艺术,那就是“Ninja Code”。这不是一种编程语言,而是一种编程风格,它的核心原则是让代码尽可能难以理解,从而确保你的岗位安全。毕竟,如果没有人能够读懂你的代码,那么也就没有人能够替代你。
以下是一些精选的忍者代码技巧,它们将帮助你在编程的道路上隐身遁形:
1
luzemin 274 天前 26
不要再污染“防御性编程”词条了
|
2
InDom 274 天前
这破工作一天都不想干了,要不是找不到新坑...
|
3
terranboy 274 天前
这跟防御性编程有啥关系
|
4
chenliangngng 274 天前 5
只要你的屎够臭,别人就不会进你茅坑对吧。可是你自己不觉得臭吗,现在在茅坑的是你自己
|
5
matthewzhong 274 天前
[ [真] 防御式编程指南]( https://mp.weixin.qq.com/s/n9Aw3VZ0uZlp1nGpxhe-Ww)
|
6
xiangbohua 274 天前
但凡有个 lead 看看代码都要把你开除
|
7
Helsing 274 天前 via iPhone
直接用 AI 优化一下就完事了,有卵用
|
8
66beta 274 天前 1
招个人来重构一下就行了,为什么要留你的屎山
|
9
tikazyq 274 天前
不怕暗器伤了自己么
|
10
changnet 274 天前
自己不想干提离职就是了,别把别人带歪了。我做了这么多年,从来没见过有人因为代码写得难看被留下的
|
11
ben666 274 天前
根据我多年的观察,能写出好代码的真人不多,follow 好的编码风格的人也不多,。
多看看一些大牛是怎么写程序的,把心思放在怎么写出好代码上更值得。参考: 1. linux kernel 规范: https://www.kernel.org/doc/html/v4.10/process/coding-style.html 2. nginx 规范: https://nginx.org/en/docs/dev/development_guide.html#code_style 3. deperf 风格 https://github.com/baidu/dperf/ |
12
didyoudo 274 天前
这样编程代码 review 怎么过?谁能给你过?怕不是今天 review ,明天就拎包走人
|
13
nenseso 274 天前
大公司都有相应的编程规范,凡是不符合规范的都不能过 code review 的,小公司小业务线,都是整条整条的线嘎掉,跟编程防御没啥关系。
|
14
xxlsize 274 天前 11
要裁你的人,都不看代码。
|
15
Promtheus 274 天前
防御我觉得可以用复杂度上 ,比如超然的设计。很高级别人看不懂。这才叫防御,就像大神的代码很精巧很难一下子看懂,甚至不敢随便修改,但是却很稳很好用。而不是这种摆烂式的防御,这样的代码直接就是让领导赶紧优化掉你啊。连同事都会吐槽赶紧把这个人开了。防御个蛋。
|
16
Sivan 274 天前 1
我一般看到这种代码时就已经在想优化他的理由了。
劝退差员工花的不是 Leader 的钱,但留下差员工一定会耽误 Leader 挣钱。 |
17
jones2000 274 天前
提升自己的能力才是最好的防御。
|
18
test4zhou 274 天前 2
写垃圾就写垃圾,别污名防御性编程
|
19
proxytoworld 274 天前
什么杀软,你没有使用过 chatgpt 去混淆吗?
javascript // 原始代码 i = i ? (i < 0 ? Math.max(0, len + i) : i) : 0; // 修改后的代码 let index; if (i === undefined) { index = 0; } else if (i < 0) { // 如果 i 是一个负数,那么它被认为是从数组末尾开始的索引 index = Math.max(0, len + i); } else { index = i; } 解释: 我使用了一个更具描述性的变量名 index 来替代 i 。 将原始代码分解成多个 if 语句,使逻辑更易读。 添加了注释,解释了当 i 为负数时的处理逻辑。 使用 === 和 undefined 来检查 i 是否存在,这比原始代码中的隐式类型转换更加清晰。 修改后的代码保持了与原始代码相同的行为,但使用了更具描述性的变量名和注释,使逻辑更易理解。 |
20
wusheng0 274 天前 via Android
没和同事协作过吗?
|
21
wu67 274 天前
大可不必, 我只需要在写代码时不再关注代码质量、最佳实践等原则, 或者一句话能写完的东西, 我拆成几行甚至十多行, 写出来的玩意, 过了一周后连我自己都不一定看得懂了.
|
22
fredweili 274 天前
copilot ,不能 review 的东西给 merge ?
|
23
lmshl 274 天前
我们写函数式的,完全不需要“防御性编程”。
我们就正常发挥,除了同门之外别人都看不懂我们 Pure FP 代码🐶。 关键是,自己维护起来还超 tm 轻松。 |
24
afantwtz 274 天前
@proxytoworld #19 大项目,你总不能所有文件一次扔给 GPT 吧?局部去混淆是可以的
|
25
ashin OP > 我一般看到这种代码时就已经在想优化他的理由了。
@Sivan 如果你是一个合格的领导,首先这样的人就不会被你筛选进来。因为你是领导你就可以想优化谁就优化谁,没毛病,但是都是打工人,劝你善待同事,线上你是上司,线下说不定你还得求他办事。多想想他为什么要写这样的代码,是不是你没给够下属安全感,不比只想着自己挣钱,争取多赢。 |
26
wlfeng 274 天前
有毛用,直接重构了,我都遇到过不止一次遇到过了
|
27
oneKnow 274 天前 1
|
29
xFrye 274 天前
别恶心人了
|
30
icyalala 274 天前 1
这个才是防御性编程:
https://zh.wikipedia.org/zh-cn/防御性编程 |
31
Sivan 274 天前 1
@ashin 正是一个合格的领导,才更要把这种差员工尽快筛选出去。这是对公司里所有其它同事负责,也是工作的基本素养。
如果是自己面试进来的,就及时止损减小错误。如果不是,那更责无旁贷。 到你这,差员工一定是差领导自己面进来的,差员工之所以差一定是领导给的安全感少?好家伙,差就是差,这年头还有让别人当反思怪的。你咋不让 CEO 反思一下公司为啥不能永远养着差员工搞慈善? 另外,裁掉差员工就叫「不善待同事」?因为线下我可能要求他办事?你的逻辑真的神奇,公私不分而且价值观雷人。 |
32
wtf12138 274 天前
不评价,但是我无法说服自己写这种代码
|
34
ashin OP 文章结尾已经说了是讽刺性文章,原文结尾说了:
> 上面的所有“建议”都是从真实的代码中提炼而来的……有时候,这些代码是由有经验的开发者写的。也许比你更有经验 ;) |
35
924412409 274 天前
应该叫攻击性编程吧
|
36
vanityfairn 274 天前
什么叫防御性编程技巧,知道么?
|
37
DOLLOR 274 天前 via Android
最后你会发现,什么“防御性编程”,只防自己不防 AI 。
|
38
zoffy 274 天前
很多人只要正常写代码,就已经够烂了。而且裁员很可能是商业模式的问题,跟代码关系不大
|
39
zjp 274 天前
这才是高级的讽刺 https://github.com/trekhleb/state-of-the-art-shitcode/blob/master/README.zh-CN.md
硬要扯上“防御性编程”“不可替代”只能让外行看个乐呵 |
41
pujx233 274 天前 via iPhone
别恶心人,写这种代码给你同事喂屎?
|
42
doommm 274 天前
几年前看到过一篇《如何编写无法维护的代码》
原版: https://www.mindprod.com/jgloss/unmain.html 翻译: https://coderlmn.github.io/frontEndCourse/unmaintainable.html |
43
proxytoworld 274 天前
@afantwtz 啊?你自己写个混淆代码,你自己能跨很多库记住是什么意思吗?一个个函数去混淆就行了,你一个函数几万行是吗
|
45
clue 274 天前
不要教坏小朋友, 世界是变化的, 不拥抱变化的人都会慢慢被淘汰
|
46
somebody1 274 天前
你所谓的防御性编程并不会保住你的饭碗,只是让公司替换你更加费劲而已,而大多数公司,往往决定了辞退一个人之后,所谓的代价大和代价小,只不过是日后评价你的手段。你的代码写的差劲,你的同事,你的领导是不可能给你重新推荐工作的,没有谁回去坑自己的朋友的。
这是小的,如果这种行为变多了之后,就是现在女性就业市场的情况。女性就业经常会问婚育情况,因为很多人经历过或者看过女性入职就怀孕,休完假就辞职的事情,这种事情只会让女性就业更差劲。利益是短期的,但损害了整个行业就业现状! 同样,程序员就业,可能会增加业务代码编写的步骤,或者对背调力度更大,总而言之,大公司有的是方法避免招聘到这种人,最后的结果只能是就业市场变的更加严格。 |
47
keith233 274 天前
公司都要倒闭了,还能防谁啊
|
48
FreshOldMan 274 天前
写垃圾代码只会浪费后面人的时间,不会有任何防御性
|
49
lstz 274 天前 via Android
对绝大多数人来说,无需看指南,正常发挥就行了 doge
|
50
wangtian2020 274 天前
|
51
Mrun 274 天前
这种除了坑接手的同事,不会有任何杀伤力。
难道真的以为 leader 裁员的时候,会考虑代码的维护性? 下一位牛马会自然解决屎山问题 |
52
wangyuescr 274 天前
@chenliangngng 可能是除了茅坑没有遮风挡雨的地方了吧,阳光开朗孔乙己。
|
53
wm5d8b 273 天前 via Android
我们现在安装的都是移动厕所,没有哪个坑位是焊在地上的,坑太臭了就连人带坑直接拉走,换个新坑位上去,再找个新人塞进去
|
54
tengyuanOasis 273 天前
是防御了,本来想以此拿捏老板给我加钱 , 结果老板等不到我拿捏提前通知我说公司不干了,项目直接送给兄弟公司也不用维护了,大家当场毕业🫡🫡🫡🫡🫡
|