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

2023-12-22 15:20:09 浏览数 (1)

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

最近,一则关于使用“防御性编码”来应对大公司裁员潮的消息在职场社交平台迅速受到关注。这一策略背后的思路是,通过编写晦涩难懂、难以维护的代码,确保一旦离职,留下的代码难以被替代,从而在一定程度上提升自己的“不可取代性”。

这种方法是否真的能够成为程序员保住工作的"护城河",还是仅仅是一种对心理的安慰?或者只是一种缓解压力的调侃?

一、大型企业裁员浪潮促使采取“特殊策略”

当提及到2023年全球科技领域的重要概念时,"裁员"这个词无疑是排在前三位的。

有关2023年海外科技公司裁员情况的调查显示,在截至11月中旬的时间里,科技行业已经裁撤了超过24万个工作岗位,较去年同期增长了50%。在排名前七的裁员最多的科技公司中,Google、Amazon、Microsoft、Meta等大公司名列其中。

根据公开报道,今年上半年腾讯、阿里和快手三家公司总共减少了超过1.6万名员工。此外,包括哔哩哔哩、美团、百度、拼多多、京东等公司也都进行了一定程度的人员裁减。

面对各大厂追求“降本增效”和“开源节流”的潮流,许多程序员们感到了前所未有的不安,开始采取各种特殊的方法来保证自己的工作。“防御性编程”是其中之一。其背后的心理可能包含以下两点:

1、行业竞争的激烈程度会让程序员们感到担忧,因为如果他们写的代码清晰易懂,那很可能会被其他人理解并取代。所以会通过让代码变得晦涩难懂来保持在团队中的竞争优势,这可以被看作是一种“捷径”。

2、利用"防御性编码"的"自我保护"方法,即使被辞退,留下的代码也会变成企业无法维护的"定时炸弹"。这种报复感会让人即使自己"鱼死"也要争个"网破"。

二、使用“防御性代码”是自我保护还是自取灭亡?

用“防御性代码”自保的策略一出,社交平台评论区就炸开了锅,网友们众说纷纭。

然而从客观的角度来看,使用“防御性编程”意味着一旦程序员离职,团队将面临巨大的技术债务,其他团队成员需要花费很多时间来理解和重构这些代码。一些从业人员明确表示,无论从哪个角度来看,以保护职位安全感为代价来使用“防御性代码”都是不可取的。

首先,就个人能力提升而言,刻意编写晦涩难懂的"烂"代码不利于提高自己的编程水平。

另外一点是,如果你写的代码过于复杂或者难以理解,会严重影响团队的协作效率。

此外,现代的开发环境和公司文化都非常重视代码质量和团队合作,很多公司和团队都会进行代码审查,以确保代码的质量和可维护性。

最后,故意编写糟糕的代码很可能会对个人职业发展造成不良影响。

三、“防御性编程”喊话“屎山代码”:不要偷换概念

在我们的讨论中,大家是否注意到,我们所提到的“防御性编程”实际上就是指那些糟糕的代码,这也就是业内所说的“屎山代码”。

一些有眼光的人早在讨论时就发现了,所谓的“防御性代码”自保,实际上是在偷换概念。

实际上,防御编程是编程领域中一个专业术语,意思是一种细致、谨慎的编程方法。它要求程序员在编写代码时预见可能出现的问题,并提前采取措施来避免这些问题。这种编程习惯更加注重错误的预防和控制,以减少可能出现的灾难性后果。需要注意的是,防御编程有时也被计算机科学家称为安全编程,通常应用于需要高可用性、安全性或保护隐私的地方。它是一种改进软件和源代码的方法,具体体现在以下方面:

整体质量,减少软件错误和问题的数量。

增加源代码的可读性,源代码应该易于阅读和理解,以便在代码审查中获得批准。

即使遇到意外输入或用户操作,也要使软件以可预测的方式运行。

说得更简单一点就是力求保证系统的稳定性,无论用户如何滥用系统,都不会导致系统崩溃。所以防御性编程的真正价值在于帮助我们编写更加稳健可靠的代码,而不是为了工作生存的策略。

四、要么不写,要么写出优雅的代码

尽管可以理解程序员由于裁员压力而提出自我保护策略的心情,但在编程的领域里,编写像诗一样优雅的代码应成为每位程序员追求的目标。

首先,优雅的代码具有清晰、简单和直观的逻辑,这样你就可以将更多精力投入到功能开发上。

其次,清晰思维所编写的代码可以减少错误和修复错误所需的时间。

最后,从自身角度考虑,代码质量应该取决于自己,而不是任何其他人或组织,不应因其他因素而降低要求。在这方面,小米科技的创始人雷军在编写优雅代码方面拥有绝对的发言权。因为30年前写的代码登上微博热搜,被赞像诗一样优雅。

在人工智能时代的背景下,程序员也可以选择利用像FuncGPT(慧函数)这样的人工智能工具来增强能力。通过使用自然语言描述函数需求,就能够实时生成高质量、高可读性、优雅的函数代码。这样一来,程序员就能够解放自己,将更多注意力专注于那些占据工作时间20%的重要任务上。可以从一个更高的角度深入思考问题,从"程序员"的角色转变成"架构师",从"写代码"变为"设计程序"。这样一来,每个开发者的创新潜能都能够被彻底释放。

五、除了发挥“人文关怀”,企业还能做些什么?

企业被“防御性编程”策略拿捏的背后,其实恰恰暴露了传统软件开发模式对于“人”的过度依赖导致的弊病。传统开发模式下,软件开发的经验技术都由开发人员掌握,加之软件开发岗位流动性较大,因此软件开发的经验技术难以沉淀在企业内部。企业要走出困境,构建“好用”的软件开发平台是关键。

一个“好用”的软件开发平台,需集成多种先进管理方法,助力企业实现从“人治”到“法治”的跃升;需能具备标准化工具,帮助企业降低开发、测试、运维的准入门槛; 需能够帮助企业完成经验沉淀与复用,实现正向循环;需具备多年实践的沉淀与验证,并在设计中融入大量过往经验,真正满足安全性要求,实现贴合实际、拿来即用的目标。

作为全球首款面向微服务架构设计和最佳实践的软件机器人,飞算SoFlu软件机器人覆盖软件前端开发、后端开发、测试、运维全过程,改变了原来手工编码的作业模式,通过可视化拖拽方式以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑的同时就完成了微服务应用开发,做到“业务即图,图即代码”,实现“软件开发,十倍提效”。

此外,SoFlu软件机器人依托多年实战经验,集成了CMMI、敏捷开发、DevOps等先进管理模式,搭载了标准化工具,将传统软件工程的151个问题点提炼为10大自动化流水线,助力企业完成经验沉淀。而且,SoFlu软件机器人经过长期积累与验证,具备丰富的多行业Know-How,能够很好地解决企业软件开发的实际问题。

六、写在最后 无论是暂时的情绪发泄,还是认真考虑采用这种策略来“保护自己”,都表明了如今程序员们所面临的忧虑和焦虑。

在企业层面,我们应该重视大型公司程序员所面临的困境和压力,并采取相应措施。一方面,我们应该鼓励开放和合作的编程文化,使每个程序员都能充分发挥自己的价值,从而提高整个团队的效率。

对于程序员个人来说,公司遵守劳动法、依法依规、给予充分补偿是很重要的,没有必要使用小伎俩,以免双方都得不到好处。如果公司不遵守劳动法、逃避补偿责任,应该依照劳动法来维护个人权益,而不是采取非正当的手段。此外,在这个迅速变化的行业中,程序员应更加注重提升自身技能和知识,以适应新的技术和挑战,而不是依赖于编写晦涩难懂的代码来保住自己的工作。

0 人点赞