防御性编程,似乎是个新名词。
大体意思是:自己写的代码,只有自己能看懂、能维护,别人很难,甚至无法接手。
进行防御性编程的目的是:留一手、自我保护、防止自己被裁员。
防御性编程的起因是程序员的互联网职场环境:35岁风水岭、容易被裁员。
程序员为了给自己留条后路,开始琢磨起了所谓的“防御性编程”,一旦被裁员,自己的代码别人很难看懂、无法轻易维护、自己的写的功能别人不敢动、不敢升级,甚至一改就出BUG。自动触发“代码无法触碰”被动技能。
如此,一荣俱荣、一损俱损,将自己的利益与公司利益捆绑在了一起。自己如果被裁,公司也将受到“报复”,甚至某些情况下公司可能得重新请自己处理问题。
具体而言,就是程序员在工作中写一些“别人看不懂,只有自己能懂”的代码。
甚至直接将自己的代码混淆加密。
举个简单的例子,比如一行JavaScript代码:
var city = "shanghai";
在防御的思路下,代码可能呈现为这样:
var _0x5ec318="iahgnahs".split("").reverse().join("");
这是用JShaman将JavaScript代码进行了混淆加密。
如果加密的更复杂一些,可能成为这样:
var _0xf00d7c="iahgnahs"['\x73\x70\x6c\x69\x74']("")['\x72\x65\x76\x65\x72\x73\x65']()['\x6a\x6f\x69\x6e']("");
甚至成为这样:
var _0x75152c=["122.97.104.103.110.97.104.96."];function _0x4b7a8a(_4,_5){_5=9;var _,_2,_3="";_2=_4.split(".");for(_=0;_<_2.length-1;_++){_3+=String.fromCharCode(_2[_]^_5);}return _3;}var _0x1e7e=_0x4b7a8a(_0x75152c[0]);
注:在这段代码中,变量_0x1e7e的值正是字符串"shanghai"。
相比于原始代码,这样的无可读性的代码,基本无法维护、更新。
进行“防御性编程”对吗?
应不应该进行“防御性编程”?
正知正见而言,不应该如此。
编程以实现功能、解决问题为目标。程序源码本该简洁、清晰、直观、易懂、便于维护。
此种“防御性编程”,与编程本源追求背道而驰。原则上讲:属实不该。
如果人人如此,如果这种防御性编程方式被广泛采用,对整个技术生态的都会带来不良影响:影响源码本身、影响技术进步、影响团队合作、影响项目、影响产品、影响团队合作、影响员工和公司信任感...
但回归现实,在这个现实的社会中,似乎是不得已而为。
如果可以,如果程序员生存环境良好、如果不是危机感重重、如果可以编程编到老。想必不会有几个程序员愿意这样编程、不会把心思和精心放在这种方面。
分享
热搜
相关推荐
-
大神Karpathy:我给大模型「SQL注入」攻击,简直不要太轻松
机器之心Pro 1跟贴 -
成为程序员后,我的手再也写不了诗了
码客人生 19跟贴 -
不会写代码全交给AI,它能写出完整的APP吗?这是我们的测试结果
量子位 -
美国宾夕法尼亚州参院竞选将重新计票
参考消息 3941跟贴 -
在阿里,痛苦的人开始信教
钛媒体APP 2610跟贴 -
宁愿开摆!也不想动这堆“屎山代码”
墨轩TG -
程序员:忽然明白同事为啥卷了!他们想要攒够300万靠利息生活
元气科技馆 16跟贴 -
阿里推出AI数据科学家,全流程自动化,科研小白也能用
量子位 21跟贴 -
诺奖AI成果开源,AlphaFold3代码免费下载
量子位 -
几行乱码让大模型获得科学思维,这个神奇的提示词突然火了
机器之心Pro 49跟贴 -
小程序手续费可以申请0.2%?小程序手续费是多少?
小程序开发刚子哥 -
从零复现Llama3代码库爆火,大神Kapathy一键三连,GitHub狂揽2k+
量子位 2跟贴 -
上海试点:菜场现烧!97元能吃一桌菜,晚上大排长龙,商家却说“不太赚钱”
上观新闻 404跟贴 -
张家界大庸古城试运营三年入驻店铺可查仅18家,日均购票人数不足20人,商家自称“苟延残喘”
极目新闻 1873跟贴 -
年轻人抛弃搜索引擎
虎嗅APP 1026跟贴 -
8岁小孩哥上手用AI制作游戏,全程2小时,引来50多万人围观
机器之心Pro -
3点建议,应对35岁职场危机
程序员晚枫 5跟贴 -
人工智能研究生的论文,需要放代码吗
复旦张军平 -
半小时教你手搓AI视频通话,还有懒人版代码已开源
量子位 -
全新多普达586现身闲鱼,距今快二十年,1999元不还价
金科技观察家 472跟贴
热门跟贴