防御式编程

背景

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

正式的防御式编程

目标:程序的健壮性

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

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

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

可能存在的问题

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

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

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

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

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

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

玩笑的梗

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

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

相关推荐
灰度少爷3 小时前
Everything 三款实用插件:拼音搜索、双击 Ctrl 启动与 EverythingToolbar 扩展
经验分享
中云DDoS CC防护蔡蔡13 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
上海广测检测科技有限公司14 小时前
蓝牙音箱的 BQB 认证:音频服务层组合、引用链判定与测试状态设定
经验分享
网安小学生(兼顾数据库版)18 小时前
Black Duck 退出中国市场后,替代方案怎么选?5 项核心能力评估
经验分享
AAwangzong21 小时前
AI时代RPA技术解析:如何构建兼顾流程执行与智能决策的自动化平台?
人工智能·经验分享·rpa·智能体
by2099921 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
辰辰观影1 天前
字幕导入教程:外挂字幕一键加载方法
网络·经验分享
辰辰观影1 天前
网盘视频播放器怎么选?2026全平台推荐
经验分享·音视频
m0_719640871 天前
适合教学科研的人工智能实验室建设方案有哪些?(含测评)
人工智能·经验分享
系统集成-鹰翔1 天前
ERP推单数据库怎么备份:SQLite WAL模式下只复制db文件为什么可能漏任务
javascript·数据库·经验分享·后端