防御式编程

背景

防御式编程有两重解释,一种是比较正式的,另一种是梗。

正式的防御式编程

目标:程序的健壮性

执行方式:在错误处理时,尽可能考虑全面,不依赖外部输入。

在编码过程中针对不同场景的错误处理应该尽可能完善,

比如,在前后端分离架构中,后端接口在做字段合法校验时,应该默认前端没有做合法性校验,从而不依赖前端的实现,最终实现整个功能的健壮。

可能存在的问题

如果完全照搬理论,可能会导致整个业务代码结构臃肿,同时,也会增加不必要的运行时性能损失,

而我们维护业务代码的首要目标,就是尽可能地保持简洁,方便后续维护。

因此,哪些代码块应该做错误处理,哪些应该默认正常,只能凭经验做决定。

我的建议是,通过离业务代码最近的单元测试来弥补这部分逻辑验证;

同时在单元基础的基础上再补充适当的集成性测试去进一步降低风险。

这样的话整段代码在简洁性和稳定性之间有了一个更合理的平衡。

玩笑的梗

有人为了防止项目结束后被辞退,在开发阶段故意写一些晦涩难懂的代码,使别人难以接手,间接提高自身在团队中重要性。

也许这种情况曾出现过,但平时谈论到这个话题时,更多是开玩笑。

相关推荐
by209995 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
FGJCJS6 小时前
ASTM D4169-23e1跌落测试详解:保证等级、跌落高度与判定标准
经验分享
火眼金睛记单词9 小时前
阅读理解核心词汇:破解英语阅读难题的利器
经验分享·学习
不要打扰75610 小时前
《房地产经纪操作实务》重点和难点是什么?用哪个题库好
经验分享·职场和发展
OpenDataLab10 小时前
Agent 如何免费接入多个文献数据库?一个好用的工具分享
经验分享
小李不想当小白11 小时前
USART串口协议(STM32标准库学习笔记)
经验分享·笔记·stm32·单片机·嵌入式硬件·学习
2601_9672127216 小时前
智能供电轨道系统供应商技术筛选维度与选型指南
大数据·经验分享
weixin_4334176716 小时前
开车去佘山去爬佘山攻略
经验分享
波力海苔夹心脆67516 小时前
C# 机器视觉实战:单相机引导机械手精准贴合,从拍照、偏差计算(平移+旋转)到坐标补偿全解
开发语言·经验分享·数码相机·c#·视觉检测·.net
恒锐丰科技林技术员19 小时前
EG2181 半桥驱动芯片原理与应用解析
经验分享·嵌入式硬件·硬件工程