防御性编程?这不就来了


风晓
风晓 2023-12-29 11:56:17 52632
分类专栏: 资讯

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

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

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

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

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

image

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

本文大纲如下,

image

代码书写

变量名称使用单一字符

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

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

兄弟这一般够用了。

使用中文命名

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

image

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

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

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

image

使用多国语言命名

image

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

image

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

image


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

CV 大法

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

抽象

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

我:我只会 CV。

抽象:...

封装

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

我:我只会 CV。

封装:...

继承

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

我:我只会 CV。

继承:...

组合

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

我:我只会 CV。

组合:...

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

image

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

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

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

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

image

产品开发

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

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

我的代码我做主。

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

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

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=32029
赞同 0
评论 0 条
风晓L1
粉丝 1 发表 522 + 关注 私信
上周热门
服贸会|范渊荣获年度创新领军人物!王欣分享安恒信息“AI+安全”探索  3513
WPS City Talk · 校招西安站来了!  3430
字节跳动“安全范儿”高校挑战赛来袭!三大赛道,赢 80 万专项基金!  3354
阿B秋招线下宣讲行程来啦,速速报名!  3241
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  3237
烽火通信2025届校园招聘宣讲行程发布!!  3198
有在找工作的IT人吗?  3180
麒麟天御安全域管平台升级!为企业管理保驾护航  3167
字节跳动校招 | 电商业务 2025 校园招聘进行中!五大职类热招,等你来投!  3074
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  3017
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!