防御性编程?这不就来了

2023年 12月 15日 60.2k 0

最近程序员界又重新流行起来了防御性编程这个概念,早期嘞,这个概念代表是一种细致、谨慎的编程方法。

防御性编程的目的是为了开发可靠的软件,我们在设计系统中每个组件的时候,都需要使其尽可能的 "保护" 自己。

但是 2023 年以来,国内的互联网市场是什么行情,相信大家都清楚,整个市场环境都在强调降本增效、开猿节流。

因此为了体现程序员们在公司代码中的不可替代性?防止被裁。"防御性编程" 概念又重新流行了起来。

不过这次它可不再是保护程序了,而是保护广大程序员群体 😎。

所以我就给大家介绍一下,新时代背景下的 "防御性" 编程理念,如何实践 😜。

本文大纲如下,

图片图片

代码书写

变量名称使用单一字符

Java 语言里变量名只能由 Unicode 字母、数字、下划线或美元符号组成,并且第一个字符不能是数字。

那么对于单一字符的变量名称来说,26 个字母大写加 26 个字母小写加下划线以及美元符一共有 54 种变量名称,想一想难道这些还不够你在单个 Java 文件里给变量命名用吗?

兄弟这一般够用了。

使用中文命名

兄弟,大家都是中国人,肯定看得懂中文咯。

图片图片

就问你,Idea 支不支持吧,有没有提示说你变量名不规范嘛!没提示就是规范。

还有一点,兄弟们,还记得上面 Java 语言里变量名组成规范吗?中文也在 Unicode 编码里面,所以其实我们还可以用中文作为变量名称。

我已经帮你查好了,Java 里常用的 utf-8 编码下,支持的中文字符有 20902 个,所以上面单一字符的变量名称还需要新增 20902 种 😃,简直完美。

图片图片

使用多国语言命名

图片图片

不多说,我就问你看不看得懂吧,看得懂算你厉害,看不懂算你技术不行。

你问我看不看得懂,我当然看的懂,我写的,我请百度翻译的 😝。

图片图片

这些变量名称命名法则,不仅适用与 Java,也适用于 JavaScript,广大前端程序员也有福了。

CV 大法

不要抽象、不要封装、不要继承、不要组合,我只会 CV。

抽象

抽象:我可以让调用者只需要关心方法提供了哪些功能,而不需要知道这些功能是如何实现的。我的好处是可以减少信息的复杂度,提高代码的可读性和易用性,也方便了代码的修改和扩展,我厉害吧。

我:我只会 CV。

抽象:...

封装

封装:我可以把数据和基于数据的操作封装在一起,使其构成一个独立的实体,对外只暴露有限的访问接口,保护内部的数据不被外部随意访问和修改。我的好处是可以增强数据的安全性和一致性,减少代码的耦合性,也提高了类的易用性。看见没,我比抽象好懂吧。

我:我只会 CV。

封装:...

继承

继承:我可以让一个类继承另一个类的属性和方法,从而实现代码的复用和扩展。我可以表示类之间的 is-a 关系,体现了类的层次结构和分类。我的好处是可以避免代码的重复,简化类的定义,也增加了代码的维护性。我可是面向对象三大特征之一。

我:我只会 CV。

继承:...

组合

组合:我可以让一个类包含另一个类的对象作为自己的属性,从而实现代码的复用和扩展。我可以表示类之间的 has-a 关系,体现了类的关联和聚合。我的好处是可以增加类的灵活性和可变性,也降低了类之间的耦合性。不要用继承,我可是比继承更优秀的。

我:我只会 CV。

组合:...

不要问为什么我只会 CV,因为我的键盘只有 CV。

图片图片

刚出道时我们嘲讽 CV,后来逐渐理解 CV,最后我们成为 CV。

CV 的越多,代码就越复杂,代码越复杂,同事就越难看懂,同事越难看懂,就越难接手你的代码,你的不可替代性就越来越强。

那么我们防御性编程的目的不久达到了嘛。

兄弟,听我说,给你的代码上防御,是为了你好!

产品开发

运营配置、开发配置、系统配置直接写死,用魔法值,没毛病。

产品每次提需求,代码实现一定要做到最小细粒度实现,做到需求里少一个字,我的代码里绝不会多一个词,注释也是不可能有的,我写的代码只有我看得懂不是防御性编程的基操吗?

我的代码我做主。

产品原型不提,我绝对不会问。要做到这系统有你才能每一次发版上线都是相安无事,一旦缺少了你,鬼知道会发生什么。

我们能做的就是牢牢把握项目中核心成员的位置。这个项目组少了你,绝对不行!

最后聊两句

2023 全年都在降本增效,节能开猿的浪潮下度过。

虽然本文是给大家将防御性编程如何实践,但是我还是希望每一个互联网打工人都能平稳度过这波寒冬。

积蓄力量,多思考,多元发展。

在来年,春暖花开,金三银四之月,都能找到自己满意的工作,得到属于自己的果实。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论