大厂程序员提倡“防御性编程”,是自保还是作死?

【生物识别模组介绍】静脉识别模组 静脉识别技术是依据流动的静脉血液中的血红蛋白对近红外光有所吸收,通过近红外光照射手指、手掌、面部、腕部呈现的分布图像,再使用特定的算法对图像进行特征提取、分析比对,从而进行身份认证识别。静脉结构相同几率为34亿分之一,每个人的静脉结构具有独特性,而且静脉特征图像自成年后终身不变,不受外部环境、疾病等影响,是人体最稳定的生物特征之一。商务合作联系:newmagicmission@gmail.com图1.0。 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

创作不易,希望大家给一点鼓励,把公众号设置为“星标”,给文章点个“赞”和“在看”,谢谢大家啦~

今天的文章也是关于职场和防御性编程的话题,希望为大家呈现更加全面的观点。本文分享自51CTO技术栈 - 如烟。

以下是正文:

***

“码农们在工作中绝对不能按以前书上说的写优美清晰代码,要防御性编程,确保自己被裁,剩下的代码也是不可维护的”。

近日一则关于用“防御性编码”应对大厂裁员潮的消息冲上职场社交平台热搜。这一策略背后的逻辑是,通过晦涩难懂、难以维护的代码,确保自己一旦离职,留下的代码难以替代,从而在某种程度上提高自己的“不可替代”性。   

30a6983acdf6c053362837b72a879aa7.jpeg

c3dd18dfe1066f3f475509d401f1185a.jpeg

但这种方式真的能成为程序员保住饭碗的“护城河”,还是仅仅是心理上的安慰?抑或只是一句释放压力的调侃?

大厂裁员风暴逼出“奇招”

说起贯穿2023年全球科技领域的关键词,“裁员”恐怕逃不出前三。

多家外媒和数据机构针对海外科技公司2023年裁员情况的盘点显示,截至2023年11月中旬,科技行业已经裁撤超过24万个工作岗位,同比增长50%。前7家裁员最多的科技公司中,Google、Amazon、Microsoft、Meta等大公司赫然在列。

再看国内的情况,据公开报道,腾讯阿里和快手三家公司,今年上半年合计减员超1.6万人。此外,包括哔哩哔哩、美团、百度、拼多多、京东等公司也进行了一定程度的裁员。

面对各个大厂“降本增效”、“开猿节流”的浪潮,不少程序员们感到前所未有的不安,剑走偏锋提出各种“奇招”保住饭碗。

“防御性编程”就是其中一个。究其背后的心理,可能有以下两点:

一是行业竞争的激烈不免让程序员们担心,如果自己写出的代码清晰可读,可能很容易就会被他人理解和取代。将代码变得晦涩难懂,或许可以成为保住自己在团队中竞争优势的一个“捷径”。 

13390baff8758c6512c2b06286820db3.png

二是通过“防御性编码”这种“自保”手段,就算自己被裁,留下的代码也会成为企业无法维护的“定时炸弹”,有一种即使“鱼死”也要争个“网破”的报复感。

用“防御性代码”是自保,还是作死?

用“防御性代码”自保的策略一出,评论区可是炸开了锅,网友们众说纷纭。主要的意见大概分为三类:

一种表示支持,你不仁休怪我不义,主打一个互相伤害。

c7d618351bf6e96f9aef7c6a3d818134.png

更有大厂员工直截了当给出了防御性编码的几条入门技巧:

1a0dbbb3432071dbac7495d5d4fb2060.png

第二种是明确反对的,认为裁员主要和工作能力、公司战略有关,此举很难保全自己,还容易被认为价值观有问题。

f266e8666a0a86906e3aac69343d778b.png

第三种认为这种情况在大厂基本上不会出现,因为有代码审核(code review)机制。

fe309fbe9c2ee0ea69799da91d97b9c9.jpeg

也有人仿佛看穿了这是老程序员在给新手菜鸟们挖坑,直言不讳地指出这种说法只是个玩笑,不必当真:“如果你信老程序员们调侃的‘防御性编程’,那你距离被淘汰也不远了”。

   e82a5eb3b5a182e7d5043c4e1c461c66.png

   dd748bdc9a982834fad53e9a981df404.png 

客观来讲,采用“防御性编程”,就意味着一旦这位程序员离职,团队将面临巨大的技术债务,其他团队成员要花费大量时间理解和重构这些代码。有从业人员明确表示,无论从哪个角度来讲,用“防御性代码”换取保住职位的安全感并不可取。

  • 首先,从个人能力提升的角度来看,故意写晦涩难懂的“烂”代码不利于提高自身的编程水平。

  • 其次,从团队协作方面来看,如果你写的代码过于复杂或者难以理解,会严重影响项目的推进效率;此外,现代的开发环境和公司文化通常都强调代码质量和团队合作,许多公司和团队都有 code review (代码审查)机制,以确保代码的质量和可维护性。

  • 最后,故意写烂代码有极大可能会对个人职业发展产生负面影响。

“防御性编程”=屎山代码?别混淆概念

讨论至此,大家有没有发现,以上提到的“防御性编程”指的就是“烂”代码,这不就是业内常提到的“屎山代码”吗?

有明眼人在讨论伊始就发现了,所谓的用“防御性代码”自保,其实有些偷换概念了。 

89f452af83e07568734ba9201bc75bae.png

事实上,防御性编程本身确实是编程领域的一个专业术语,本意是一种细致、谨慎的编程方法。它要求程序员在编写代码时预见可能出现的问题,并提前采取措施来规避这些问题。这种编程习惯更多地强调错误的预防和控制,以减少未来可能出现的灾难性后果。

值得注意的是,防御性编程有时也被计算机科学家称为安全编程(Secure programming),通常用于需要高可用性、安全性或安全性的地方。它是一种改进软件和源代码的方法,具体体现在:

  • 总体质量——减少软件错误和问题的数量。

  • 使源代码易于理解——源代码应该可读且易于理解,以便在代码审计中获得批准。

  • 使软件以可预测的方式运行,尽管有意外的输入或用户操作。

说直白一点就是力求“哪怕用户是个发狂的乱按键的猴子,也玩不坏我的系统”。

所以此“防”(防止代码出错)非彼“防”(提防被裁员),只是在“开源节流”的浪潮下,防御性编程被赋予了新的含义。而防御性编程的真正价值在于能够帮助我们编写出更加健壮、可靠的代码,而不是成为一种职场生存的策略。

为自保的“防御性编程”违法吗?

提到程序员为防止被裁员采用“防御性编程”(屎山代码),就不由得会联想到此前程序员为发泄不满,“删库跑路”而被判刑收监的案例。

同样是程序员为了维护自己的利益而在计算机编程方面“动手脚”,那么故意写“屎山”代码违法吗?

据了解,《刑法》中已明确破坏计算机信息系统罪。根据《刑法》第二百八十六条,凡是违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役,后果特别严重的,处五年以上有期徒刑。

从劳动关系的角度来讲,如果程序员写的代码能跑通,不影响系统运行,也能确保功能的正常使用,那他就完成了对其工作职责的交付,似乎也无可厚非;如果通过“防御性编程”发泄情绪,因此给公司业务造成重大损失被追责,恐怕也很难逃脱法律的制裁。

fcfdc5bddbb4e4360b8e99ae6430601b.jpeg

要么不写,要么就写优雅的代码

虽然能够理解程序员们迫于裁员压力提出自保策略的心情,但在编程的世界里,写出诗一样的代码,应该成为每个程序员追求的目标。

写优雅代码的原因很明确,首先逻辑清晰,简单直观,这样你可以把更多精力花在功能开发上;其次清新的思维写出的代码能减少bug,也就减少了修复bug的时间;最后站在自己的角度想想,你的代码质量应该取决于你自己,而不是任何其他人或者组织,应该对自己负责,不应该让其他因素成为你降低要求的理由。

在写优雅代码这件事上,计算机领域的大佬们也达成了共识:

C++之父 Bjarne Stroustrup:我喜欢优雅和高效的代码,代码逻辑应该直接了当,叫缺陷难以隐蔽;尽量减少依赖关系,使之便于维护;依赖某种分层战略完善错误处理代码。性能调制最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。

wiki 发明者 Ward Cunningham:如果每个例程都让你感到深合已意,那就是整洁代码。如果代码让编程语言看起来像是专为解决那个问题而存在,就可以称之为漂亮的代码。

世界级编程大师,设计模式和敏捷开发先驱 Robert C. Martin:在代码阅读中说脏话的频率,是衡量代码质量的唯一标准。

除了国外的大佬,小米科技创始人雷军也非常提倡代码的简洁性和可读性,30年前写的代码都火了,被赞像诗一样优雅。

写在最后

无论是一时不爽的发泄,还是认真想通过这种策略“自保”,都反应出当下环境中,程序员的忧虑和不安。

就企业的角度而言,需要重视大厂程序员们面临的困境和压力,鼓励开放、协作的编程文化,让每个程序员都能在团队中发挥自己的最大价值,从而提高团队的整体效率。

就程序员个人而言,对于公司遵守劳动法,依法依规,给足赔偿,没必要搞小动作,不然确实是双输的局面。如果公司不遵守劳动法,躲避赔偿,应该根据劳动法来维权,不要通过不正规的手段来维权。

此外,在这个快速变化的行业中,程序员更应该注重提升自己的技能和知识,以适应新的技术和挑战,而不是依赖于编写晦涩难懂的代码来保住自己的工作。

参考链接:

https://www.zhihu.com/question/633103265/answer/3315370701

https://zhuanlan.zhihu.com/p/671314487

https://www.51cto.com/article/710674.html

点赞和在看就是最大的支持❤️

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、VS Code 变身小霸王游戏机!

2、认知升级:模型与范式转换

3、超赞的 Python 编译器,单核提速100倍

4、高效的终极秘诀

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

def0868f2b43239e4f7829d24c9d07d7.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

【控制模块算法】控制理论的进修之路 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、(经典)自动控制理论【本科阶段】二、现代控制理论【本科阶段】三、最优控制理论【硕士阶段】总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对对控制理论的理解做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、(经典)自动控制理论【本科阶段】 一般控制工程、自动化相关的考研专业课就是自动 阅读详情

相关推荐

【MCU开发规范】:车载MCU开发规范

车载MCU开发规范

1052

大厂裁员逼出奇招,“防御性编程”能否自救?

根据《刑法》第二百八十六条,凡是违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役,后果特别严重的,处五年以上有期徒刑。“防御性编码”应对大厂裁员潮策略背后的逻辑是,通过晦涩难懂、难以维护的代码,确保自己一旦离职,留下的代码难以替代,从而在某种程度上提高自己的“不可替代”性。就企业的角度而言,需要重视大厂程序员们面临的困境和压力,鼓励开放、协作的编程文化,让每个程序员都能在团队中发挥自己的最大价值,从而提高团队的整体效率。

IT界那些事儿 6271

关于 MCU 芯片外围电路的快速入门介绍

MCU 外围电路的核心是“围绕 MCU 需求,搭建稳定、匹配的外部支撑”,入门阶段无需掌握复杂设计,只需先吃透供电、复位、时钟、IO 驱动、基础通信这五大模块,再逐步扩展存储、显示、传感器等进阶功能。实践中多调试、多参考成熟方案,是快速掌握外围电路设计的关键。码字不易,若觉得本文对你有用,欢迎,相关技术热点时时看🔥🔥🔥​​​…

JiaWen的博客 1649

大厂程序员提倡“防御性编程”:故意把代码写得很烂,万一自己被裁,要确保留下的代码不可维护!

根据《刑法》第二百八十六条,凡是违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役,后果特别严重的,处五年以上有期徒刑。就企业的角度而言,需要重视大厂程序员们面临的困境和压力,鼓励开放、协作的编程文化,让每个程序员都能在团队中发挥自己的最大价值,从而提高团队的整体效率。此外,在这个快速变化的行业中,程序员更应该注重提升自己的技能和知识,以适应新的技术和挑战,而不是依赖于编写晦涩难懂的代码来保住自己的工作。

IT_1024的博客 1276

LabVIEW 调用MATLAB 进行图像处理的实现

程机械及设备的变形、振动、冲击、粗糙度、刚度和强度等特性,还可用在土木结构、水利设施的变形测量[4][5]。因此,该技术在机械、土木、水利、电器、航空航天、兵器工业及生物医学等领域的检测中具有非常重要的地位。将物面前方空间的散斑用摄像设备记录下来,当物体运动或由于受力而变形时,这些随机分布的散斑图也随之在空间按一定的规律运动,因此能用记录的散斑图在计算机上分析物体的运动和变形,这就是电子散斑技术。当物体的漫反射表面被激光照射时,漫反射的光波在物体表面的前方相互干涉,由于漫反射光的。

qq_37971227的博客 3874

忘记安卓锁屏密码怎么办?3种方法教你用ADB恢复访问(含gesture.key解密)

本文详细解析了安卓设备锁屏密码的存储与加密机制,特别是gesture.key文件的解密原理。针对遗忘密码的常见问题,提供了三种核心恢复方法:利用ADB调试接口删除密码文件、对gesture.key进行离线分析与解密,以及应对高版本系统的替代方案。重点介绍了通过ADB工具在Recovery模式下操作的具体步骤,帮助用户在合法合规前提下恢复设备访问权限。

php55的博客 959

大厂程序员提倡“防御性编程”:故意把代码写得很烂,万一自己被裁,要确保留下的代码不可维护!...

上一篇:一个中椒的年终总结转自:51CTO技术栈 -如烟“码农们在工作中绝对不能按以前书上说的写优美清晰代码,要防御性编程,确保自己被裁,剩下的代码也是不可维护的”。近日一则关于用“防御性编码”应对大厂裁员潮的消息冲上职场社交平台热搜。这一策略背后的逻辑是,通过晦涩难懂、难以维护的代码,确保自己一旦离职,留下的代码难以替代,从而在某种程度上提高自己的“不可替代”性。 但这种方式真的能成为程序...

Java和Android架构 784

利用GPAC生成MP4文件

GPAC主要针对学生和内容创作者,代表了一个跨平台的多媒体框架,开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型,从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影。

深之JohnChen的专栏 1772

大厂程序员提倡“防御性编程”:故意把代码写很烂,万一被裁,要确保留下的代码不可维护...

上一篇:一线体面男的收入“防御性编程”,这词儿最近在程序员圈子里挺火的。说白了,就是一些大厂的员工为了不被裁,开始在代码里耍小聪明,比如埋后门、异常自动报警,目的就是让自己变得“不可替代”。这种做法,有人叫好,有人摇头。有人觉得,公司不讲规矩,员工也只能出此下策。也有人觉得,这事儿虽然短期内可能保住工作,但长远看,对自己、对团队都没好处。代码写得乱七八糟,最后倒霉的还是自己,毕竟代码评审那关就难过...

Java和Android架构 289

ubuntu20.04下内核源码下载分析

ubuntu 20.04下内核源代码下载,配置编译环境写在前面一、安装VMware Workstation和Ubuntu20.04二、修改apt源合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 写在前面 我最近的科研工作需要使用到对ubun

冰冻三尺非一日之寒 1万+

基于YOLOv10深度学习的花生种子霉变检测系统

YOLO(You Only Look Once)是当前最先进的目标检测算法之一,具有快速、精准的特性。YOLOv10是YOLO系列的最新版本,相较于之前的版本,YOLOv10在特征提取、模型精度和速度上都有了显著的提升。YOLOv10采用了更深的卷积神经网络、更多的跨层特征融合方法,使得其在不同尺寸物体的检测和复杂场景的处理上都表现出了优异的性能。YOLOv10特别适合应用在需要快速处理并检测大量图像的任务中,如花生种子霉变检测等,能够实现精准、高效的检测。

2201_76125393的博客 649

危机来临,防御性编程能否帮助程序员抵御裁员风暴?

作为全球首款面向微服务架构设计和最佳实践的软件机器人,飞算SoFlu软件机器人覆盖软件前端开发、后端开发、测试、运维全过程,改变了原来手工编码的作业模式,通过可视化拖拽方式以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑的同时就完成了微服务应用开发,做到“业务即图,图即代码”,实现“软件开发,十倍提效”。这一策略背后的思路是,通过编写晦涩难懂、难以维护的代码,确保一旦离职,留下的代码难以被替代,从而在一定程度上提升自己的“不可取代性”。因为30年前写的代码登上微博热搜,被赞像诗一样优雅。

CalEx_Tech的博客 977

【C语言趣味教程】(0) 专栏介绍

这是一套C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出"有趣的干货" !本系列教程不管是零基础还是有基础的读者都可以阅读,可以先看看目录!标题前带星号 (*) 的部分不建议初学者阅读,因为内容难免会超出当前章节的知识点,面向的是对 C 语言有一定基础或已经学过

有道无术, 术尚可求。有术无道, 止于术。 2万+

故意把代码写得很烂,这样的 “防御性编程“ 可取吗?

程序员搞防御性编程固然可以理解,但这样子做,短期来看,是程序员和企业的互相伤害;长期来看,对程序员自身的伤害更大!

yangshuquan的专栏 2811

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

别让“防御性编程”毁了我们的职业

最近,随着一些大厂的陆续暴雷,以及一些裁员风波,我在不少自媒体平台都刷到了关于新式“防御性编程”的段子,初看感觉只是个文娱的文案,但之后回忆过往,再结合自己的工作经历,发现现在这种现象确实是越来越普遍了。

weixin_42055277的博客 480

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大厂程序员提倡“防御性编程”:故意把代码写得很烂,万一自己被裁,要确保留下的代码不可维护.........

“码农们工作中需防御性编程,避免写出优美清晰代码,确保即使被裁,留下的代码也难以维护。”近日,一则关于用“防御性编码”应对大厂裁员潮的消息在职场社交平台引发热议。简单来说,就是程序员写一些别人看不懂,只有自己能看懂的代码,故意把代码写的很烂,难以维护。因此,从某种程度上提高自己在公司的“不可替代”性。为什么会出现“防御性编程”呢?从大环境来说,最近,互联网行业的不少巨头纷纷宣布裁员,降本增效,这让...

fengdu78的博客 783

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

防御性编程能否帮助程序员抵御裁员风暴

在当前的经济不确定性和技术行业的快速变化中,程序员面临着前所未有的挑战。裁员风暴席卷了许多企业,尤其是在经济下行和技术革新迅猛的时期,程序员们的职业安全感受到威胁。面对这样的局面,防御性编程成为了一个重要的策略。本文将深入探讨防御性编程的定义、其对程序员职业稳定性的影响,以及如何通过有效的防御性编程提高自己的市场竞争力。什么是防御性编程?防御性编程(Defensive Programming)是一...

lxw1844912514的博客 1108

【饭谈】代码中埋雷?浅谈【防御性编程】和【反防御性测试】

今年开始,由于大环境问题,好多科技公司开始降本提效。这其中,不乏BAT级别的龙头企业,但裁员之后,紧接着就是各种我们常见的APP崩溃,各种BUG各种出.... 于是大家戏称这次土鳖现象是:降本提笑,开猿节流。

公众号【伤心的辣条】资料领取~ 1363

大厂程序员提倡“防御性编程”:故意把代码写得很烂,万一自己被裁,要确保留下的代码不可维护......

大厂程序员提倡“防御性编程”:故意把代码写得很烂,万一自己被裁,要确保留下的代码不可维护......

2501_93198925的博客 489
上一篇: 炫酷!这些 JS 库赋予你创造世界的能力
下一篇: 已开源!一秒实时生成100张二次元老婆照!
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值