您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

2种防御性编码技术

时间:2020-07-07 11:41:47  来源:  作者:
2种防御性编码技术

 

实用程序设计建议,简单但功能强大的技术,用于安全,可维护的软件

我会简短而甜美的

我们将介绍两种非常简单实用的防御技术,您可以立即将其应用于您的项目。

作为专业的开发人员,您很可能已经在应用这些技术,因此您可能想把这一技术排除在外。

但是,对于尚未达到专业水平的任何人,这些技术都会提高您的质量并使您的代码更安全。

如果您以前从未听说过防御性编码,那么该差不多了。 这是要点。

防御性编码使我们的软件即使输入错误也能以正确的方式运行。

好的,让我们研究一下即使您输入了错误的软件,也可以如何使其表现良好。

警卫条款-检查前提条件

这些单线是防御性编码的绝对基石之一。 它们位于方法的顶部,以确保仅在提供有效输入时方法才继续执行。

它们是前提条件检查。 这是一个非常简单的示例,但仍然是一个真实的示例。

2种防御性编码技术

> simple guard statement

 

我们只是在检查呼叫者是否向我们提供了非空值或空值。 如果继续使用这些值可能会导致意外的结果,通常我们会这样做。

当您的方法开始使用大量参数或一个参数需要多个保护子句时,您需要重构为另一种保护子句方法。 这种重构可能涉及创建一个包含所有所需属性的对象以及IsValid()方法。 在这里,IsValid()方法正在检查其状态,以验证每个属性是否都具有有效值。

2种防御性编码技术

> refactored guard statement

 

当您发现自己在多个方法中重复相同的保护子句时,此重构技术特别有用。 例如,规范对象使您可以在一处捕获业务规则。

方法内的断言

您对断言非常熟悉。 这些语句在单元测试结束时。 在防御性编码中,它们不仅限于测试。

您可能会调用其他类方法,甚至调用外部库提供的方法。 在这种情况下,我们想在继续执行方法之前检查一下关于这些方法执行或返回的假设是否正确。

2种防御性编码技术

> execution assertion

 

我们预计会出现错误。 在调用数据库的Save()方法后添加anif,我们可以有效地断言发生的事情并采取相应的措施。 没什么好奇怪的

Nicklas Millard在丹麦的四大咨询公司之一中担任高级技术顾问。 他主要担任客户项目的首席开发人员和解决方案架构师。

他一直在为商业客户和政府机构开发软件,例如国防部,教育部,丹麦环境与食品部,国家警察,丹麦劳动力市场和招聘局以及Ørsted。

在LinkedIn上连接

(本文翻译自Nicklas Millard的文章《2 Defensive Coding Techniques You Should Use Today》,参考:https://medium.com/swlh/2-defensive-coding-techniques-you-should-use-today-4225cacc1c29)



Tags:编码技术   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
本文由华为云资深产品专家左雯在LiveVideoStackCon2020线上峰会的演讲内容整理而成,本文从视频编解码技术的趋势、难点和挑战以及华为云视频产品的编解码关键技术实践与成果...【详细内容】
2020-10-30  Tags: 编码技术  点击:(61)  评论:(0)  加入收藏
本文由上海交通大学教授宋利在LiveVideoStackCon2020线上峰会的演讲内容整理而成,从分析视频传输系统延迟入手,分析视频编码延迟的产生机制,总结优化编码延迟的技术手段和业界...【详细内容】
2020-07-28  Tags: 编码技术  点击:(61)  评论:(0)  加入收藏
实用程序设计建议,简单但功能强大的技术,用于安全,可维护的软件我会简短而甜美的我们将介绍两种非常简单实用的防御技术,您可以立即将其应用于您的项目。作为专业的开发人员,您...【详细内容】
2020-07-07  Tags: 编码技术  点击:(42)  评论:(0)  加入收藏
本文引用了微信公众号“鲜枣课堂”的《视频编码零基础入门》文章内容。为了更好的内容呈现,引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。1、引言如今...【详细内容】
2019-11-21  Tags: 编码技术  点击:(159)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条