首页 > 其他分享 >06构建之法阅读笔记之一

06构建之法阅读笔记之一

时间:2024-06-02 21:43:22浏览次数:27  
标签:10 06 断言 sum 笔记 assert 开发 构建 测试

这次个人阅读选择的书籍为《构建之法:现代软件工程》(邹欣 著)。我们这门课程也参考了很多这本书的结构、内容与方法,读这本书,既是对学过知识的复习和细化,也是对以后课程的预习。

  下面总结了几个阅读过程中理解有困难或疑问的point,有的是细节,有的是大的方法。然后在网上查找学习了相关内容,与大家分享。

 

1.  第4章 两人合作 —— 4.3 代码设计规范 —— 4.3.3 错误处理

      此处提到了“断言”的概念,但着墨不多,介绍简略。

  那么问题来了,挖掘机……不是,断言是什么?

  编写代码时,如果程序员相信在程序中的某个特定点某表达式值(布尔式)为真,可将其标为断言(assert)。

  举个栗子:

  public class AssertionDemo{

     public static void main(String[]args){

        int i; int sum=0;

        for(i=0;i<10;i++){  sum+=i;    }

        assert i==10;

        assert sum>10&&sum<5*10:"sum is "+sum;

     }

  }

  上述程序中语句assert i==10断言i的值为10,如果i的值不为10将抛出AssertionError异常。语句assert sum>10&&sum<5*10:"sum is "+sum断言sum<5*10,如果为false,将抛出带有消息"sum is "+sum的AssertionError异常。

  如果肯定某件事一定要发生,则可以使用断言;如果这件事有别的可能,则应用if……else处理。

  由于可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。

  P.S. 此问题算个人知识的不足,之前不了解断言的概念。

   

2.  第5章 团队和流程 —— 5.3 开发流程 —— 5.3.2 瀑布模型

  瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。它在1970年由温斯顿·罗伊斯(Winston Royce)提出,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。

  本书中例出了瀑布模型的文档图,但是鄙人并没有看得很懂它的用意。

  搜索一些关于瀑布模型的解释后看到了这样一句话:”瀑布模型的本质是‘一次通过’;它是一种文档驱动模型,在可运行产品交付之前,客户只能通过文档来了解最终的产品会是什么样子。“

  这才恍然大悟书中那个8种文档被各个过程生产、修改的含义。由于瀑布模型是线性的,在最终产品产生前,如何产生有用的文档指导开发、衔接两个阶段非常重要。

 

3.  第6章 敏捷流程 —— 6.5 敏捷的故事

  这一小节提到了几种比较出名的敏捷开发方法论,如FDD、Scrum、XP、TDD。前三者在书中都有专门的介绍,但TDD,久闻其大名,到底是何许妙招?

  TDD(Test Driven Development),即测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。   测试驱动开发的基本过程如下:   ① 快速新增一个测试   ② 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过   ③ 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法   ④ 运行所有的测试,并且全部通过   ⑤ 重构代码,以消除重复设计,优化设计结构

  简单来说,就是不可运行/可运行/重构——这正是测试驱动开发的口号。

  可想而知,测试驱动开发会极为有效地控制开发中的bug,但是这种先写测试代码的方式可能让开发人员有很大的不适应。学习适应TDD的成本会不会比它带来的收益更高呢?这就有待我们在实践中摸索了。

 

标签:10,06,断言,sum,笔记,assert,开发,构建,测试
From: https://www.cnblogs.com/Hugo-Martin/p/18227676

相关文章

  • 02梦断代码阅读笔记之一
    《梦断代码》阅读笔记作品概述:《梦断代码》是中国知名科幻作家刘慈欣的代表作之一,于2008年问世。这部小说探讨了虚拟现实、人工智能等科技元素与人类情感、自由、道德之间的交织关系,以及科技可能给人类社会带来的影响和挑战。通过对未来世界的设想和对人类内心的深刻挖掘,小说引......
  • 03大道至简阅读笔记之一
    这本书和我们的渊源还是很深的,刚上大二的时候老师就一直给我们传播这个思想——大道至简。不过之前一直没有看这本书,这次一个学期看三本,也终于找到机会拜读这本被誉为“激荡新思的佳作”的《大道至简》了。 在学习任何实物之前,我们都要了解此事务的思想,因为思想对客观事物......
  • 04大道至简阅读笔记之一
    《大道至简》阅读笔记作品概述:《大道至简》是一部深刻探讨简约生活哲学的著作,旨在引导人们通过简化生活、减少物质负担和精神压力,实现更高质量的生活。作者认为,简约并非削减一切,而是寻求内在与外在的平衡,以达到心灵与生活的和谐。主题探索:简约的价值观:《大道至简》探讨了简......
  • 【Django】学习笔记
    文章目录@[toc]MVC与MTVMVC设计模式MTV设计模式Django下载Django工程创建与运行创建工程运行工程子应用创建与注册安装创建子应用注册安装子应用数据模型ORM框架模型迁移Admin站点修改语言和时区设置管理员账号密码模型注册显示对象名称模型显示中文App显示中文视图......
  • 01梦断代码阅读笔记之一
    作品简介:《梦断代码》是中国科幻作家刘慈欣的一部长篇小说,创作于2008年。这部小说被认为是中国科幻文学中的一颗璀璨明珠,融合了赛博朋克、虚拟现实、人工智能等多个元素,以其引人入胜的情节和深刻的思想内涵吸引了广大读者。主题分析:科技与人性:《梦断代码》在探讨科技与人性......
  • 七、FreeRTOS学习笔记-中断管理
    FreeRTOS学习笔记-中断管理中断:让CPU打断正常运行的程序,转而去处理紧急的事件(程序)中断执行机制,可简单概括为三步:1、中断请求:外设产生中断请求(GPIO外部中断、定时器中断等)2、响应中断:CPU停止执行当前程序,转而去执行中断处理程序(ISR)3、退出中断:执行完毕,返回被打断的程序处,继续......
  • 阅读笔记7
    《构建之法》第八章读后感第八章我感受到了软件测试在保证软件质量和可靠性方面的重要性。通过本章的内容,我了解到了软件测试的目标、分类、策略、计划和执行等关键知识和技巧。在阅读中,我意识到软件测试的目标是为了找出软件中的缺陷,这是确保软件质量的关键一环。同时,了解到了......
  • Redis5学习笔记之四:高级特性(持久化、订阅、主从复制、缓存穿透和雪崩)
    4.redis高级特性4.1持久化Redis的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件)4.1.1RDB在指定的时间间隔内将内......
  • 字符串笔记
    一.字符串的编码转换type:查看变量类型1.encode()作用:将字符串类型转换为字节类型,的过程称之为编码。语法:字符串.encode()s='吃米饭'`​`byte_e=s.encode()`​`print(byte_e,type(byte_e))` #b'\xe5\x90\x83\xe7\xb1\xb3\xe9\xa5\xad'<class'bytes'>2.decode()......
  • 英语学习笔记27——Mrs. Smith‘s living room
    Mrs.Smith’slivingroom史密斯太太的客厅词汇Vocabularylivingroom客厅都成:living=liveing生活room屋子搭配:inthelivingroom在客厅文化:西方人一般都在起居室活动,所以客厅很大,一般可以一起聊天,看球,下棋什么的。near在……附近【不直接挨着】例......