防御性编程,真的可以防止被裁吗?

你好,我是猿java

最近,写了一篇 改善代码质量,试试这10种方法 的文章后,很多小伙伴私信,让我了解下防御性编程,于是,就着此机会聊一聊这个梗。

1. 背景

疫情之后,大环境一直很低迷,互联网也未幸免,于是,很多公司相继"开节流",可怜的程序猿惶恐不安...

接着,戏剧性的一幕发生了,国内的互联网大厂相继出现"降本见"的名场面,首先暴雷的是阿里云,事故原因:底层服务组件故障...

接着,滴滴崩了,事故原因:k8s升级导致...

接着,腾讯云也崩不住了,事故原因:技术故障...

对于老东家出现的线上事故,个人还是感觉挺惋惜的,很多同行的年终奖可能直接或者间接的受到了影响,尽管,事故官方都给出了相应的回复和歉意,但是,事故对用户的伤害以及对公司本身的损失,远不亚于"节流"的总额。

于是,很多人开始调侃"干活的人裁得太多了,都是老板造成的"。做技术的都清楚,服务器的稳定性不可能达到100%这种理想状态,因此,调侃固然有戏虐,但不乏真实性,很多技术岗位平时看起来并不起眼,关键时刻就能体现出他们的价值,而这个"关键时刻"的代价有时候会比较大。

最后,防御性编程一语双关的梗就润物细无声地传遍了各大技术论坛和网站...

2. 什么是防御性编程?

防御性编程是什么?它主要是用来做什么的?先来看看维基百科的解释:

通过维基百科的解释可以看到:防御性编程原本是指为了代码和系统的安全,特意在代码中增加了一些提升代码质量的保证,比如:参数校验,安全校验等等。

3. 一语双关

而特定环境下,防御性编程就出现了另一层含义:报复性编程,为了防止被裁,代码被动了手脚,只有本人才能维护。

防御性编程,绝大部分是客观产生的,比如代码中出现的 bug,但也存在着主观性,常见的一些方式有:

  1. 代码不加注释

  2. 命名直接使用a,b,c等等毫无含义的变量,大大增加了代码维护的难度;

  3. 代码结构被破坏,函数直接随意的相互调用,极大的破坏高内聚低耦合;

  4. 代码预留后门;

  5. ...

4. 如何看待?

"防御性编程",真的可以防止被裁吗?

首先,裁员是公司管理层和资本综合考量的结果,非打工人可以左右。

其次,员工和企业,员工属于弱势群体,经济社会,假如不幸被裁,如果企业给出了合理的赔偿那也无可厚非,如果没有获取合理赔偿,作为员工,完全可以采用法律手段来保护自己;

再次,作为技术人员,一定要有自己的职业操守,千万不要违法乱纪,主观性的"防御性编程",轻则造成线上事故,对公司造成经济损失,重则违法,切莫踩红线。

最后,打铁还需自身硬,僧(程序员)多粥(就业机会)少的时代,作为技术人,更多的是想办法提升自己的竞争力,转"防御性编程" 为 防御性学习,就算某天中招被裁,只要技术能力过硬,也一定能再找到一份好工作。

最后,把猿哥的座右铭送给你: 投资自己才是最大的财富。 由于水平有限,如果文章存在缺点和错误,欢迎批评指正。

相关推荐
lzp07916 分钟前
元数据驱动开发 - 面向对象编程思想的补充(上)
spring boot·后端·ui
明月_清风8 小时前
加密解密系统完全指南:原理剖析与 Go 实践
后端
方也_arkling8 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮8 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei118 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1128 小时前
web-第一次课后作业
java·开发语言·idea
秋99 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本9 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁9 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
冬奇Lab10 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源