使用断言明确表现对程序状态的假设

更多精彩

  • 更多技术博客,请移步 asing1elife’s blog

动机

  1. 某一段代码需要对程序状态做出某种假设
  2. 使用断言将可能出现的程序状态表现出来,可以让代码逻辑更加清晰

案例

public double getExpenseLimit() {return expenseLimit != null ? expenseLimit : primaryProject.getExpenseLimit();
}
public double getExpenseLimit() {Assert.isTrue(expenseLimit != null || primaryProject != null);return expenseLimit != null ? expenseLimit : primaryProject.getExpenseLimit();
}

9.8 Introduce Assertion 引入断言相关推荐

  1. Golang type assertion 类型断言

    前言 在很多情况下,接口类型没有办法直接作为值来使用,或者说我们需要检查某个接口变量是否为我们期望的类型,就需要先使用类型断言 (type assertion)进行类型判断以及转换. 基本用法 断言语 ...

  2. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道

    一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...

  3. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)

    系列博客 1. 改善代码设计 -- 优化函数的构成(Composing Methods) 2. 改善代码设计 -- 优化物件之间的特性(Moving Features Between Objects) ...

  4. 重构-改善既有代码的设计:简化条件表达式(七)

    简化条件表达式 1.Decompose Conditional 分解条件表达式 你有一个复杂的条件语句.从if.then.else三个段落中分别提炼出独立函数. 程序之中,复杂的条件逻辑是最常导致复杂 ...

  5. PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,PNG,GIF,SVG

    如果你经常玩摄影,或者喜欢收藏壁纸,或者需要为网站图片缩小体积减少流量消耗,建议你一定不要错过这款图压软件! 从前, 有一个名为PP鸭的付费软件,也能实现图片压缩的功能,但缺点就是贵,2.0版本一个激 ...

  6. Windows系统下使用pyinstaller打包PaddleOCR中表格识别PP-Structure

    Windows系统下使用pyinstaller打包PaddleOCR中表格识别PP-Structure 一.系统环境及PP-Structure简述 二.安装Python环境与PP-Structure ...

  7. 《重构 改善既有代码的设计》之代码的坏味道

    1 简介 知道"如何"不代表知道"何时".决定何时重构.何时停止和知道重构机制如何运转一样重要. 从我们的经验来看,没有任何量度规矩比得上一个见识广博者的直觉. ...

  8. SQL入门(3):定义约束/断言assertion/触发器trigger

    本文介绍数据库的完整性 完整性控制程序: 指定规则,检查规则 (规则就是约束条件) 动态约束 intergrity constraint::=(O,P,A,R) O : 数据集合, 约束的对象 ?: ...

  9. 搞定Go单元测试(三)—— 断言(testify)

    在上一篇,介绍了表格驱动测试方法和gomock测试框架,大大提升了测试效率与质量.本篇将介绍在测试中引入断言(assertion),进一步提升测试效率与质量. 为什么需要断言库 我们先来看看Go标准包 ...

最新文章

  1. 维护窗口和停机时间 可用率99.99%
  2. 转:Oracle greatest函数
  3. 深度学习对抗样本的八个误解与事实
  4. 一文看懂深度学习与计算机视觉
  5. etcd+calico集群的部署
  6. 武汉大学信息管理学院java上机考试_java上机试题
  7. 给深受【应用程序未安装】困扰并且找不到【smdl2tmp1.asec】系统的机友们
  8. JS面向对象的程序设计
  9. Linux系统(七)组管理和用户管理
  10. 跟踪算法原理_「综述」目标跟踪算法
  11. 3个关于HR的OKR的优秀案例
  12. 加解密:MD5DesAesRSARSA C#和Java适配
  13. html抓取cpu温度,一种获取CPU温度的测试方法、系统及计算机存储介质与流程
  14. katana之渲染输出AOV
  15. 浪潮之巅--摩托罗拉
  16. WinRAR破解注册方法
  17. 《剑指0ffer》刷题笔记 -01 二维数组中的查找
  18. mplayer undefined reference to `av_lzo1x_decode''render_one_glyph'
  19. JavaScript之封装Math函数
  20. 小乐乐上台阶【斐波那契】

热门文章

  1. Ubuntu使用MD5
  2. 完全免费的PDF转excel转换器
  3. mysql截取中文字符_mysql 截取中文字符
  4. java 远程接口 文件上传_java中远程http文件上传及file2multipartfile
  5. 白嫖虚拟主机ZeoCloud亲测免费可用
  6. 蓝桥杯合数求和题解C++
  7. “全能程序员”的出路,明显不如“特长程序员”
  8. MySQL 存储过程,语法+示例,超详细!!
  9. 修谱忽视这7个要素,被后人嘲笑上百年!尤其是第六个,必须重视
  10. 广东计算机专插本有哪些学校,广东专插本可以报考的学校有哪些