代码改变世界

2017-2018-1 20179226 《构建之法》第2周学习总结

2017-12-24 17:10  20179226任逸飞  阅读(160)  评论(1编辑  收藏  举报

教材学习内容总结

2.1 单元测试

  • 单元测试:能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证。
  • 单元测试主要步骤
    1.设置数据(一个假想的正确的E-mail地址)
    2.使用被测试类型的功能(用E-mail地址来创建一个User类的实体)
    3.比较实际结果和预期的结果(Assert.IsTure(target != null);)
  • 回归测试:工程师们在新版本上运行所有已通过的测试用例,以验证有没有“退化”情况发生(例如:在3.1.5版本,模块A的编号为125的测试用例通过了,但是在新的版本3.1.6上,却失败了,这就是一个倒退),这个过程就是回归测试。

2.2 效能分析工具

  • 有抽样和代码注入两种分析方法,一般的做法是先用抽样的方法找到效能瓶颈所在,然后对待定的模块用代码注入的方法进行详细分析。
    1.抽样:具有不需要改动程序,运行较快,很快找到瓶颈,但是不能得到精确的数据,也不能准确表示代码中的调用关系树等特点。
    2.代码注入:具有可以精确测量程序中各个数据,但是运行时间大大加长,还会产生很大的数据文件,增加了数据分析的时间。

2.3 个人开发流程

  • 计划→开发→记录用时→测试报告→计算工作量→事后总结→提出过程改进计划

2.4实践

  • 单一职责原则:一个模块应该只有一个导致它变化的原因,一个模块应该完全对某个功能负责。
  • 开放-封闭原则:软件实体应该是可以扩展的,同时是不可修改的。
  • 简单的程序从几个维度逐步扩展,增加复杂度
    1.从数据方面扩展
    2.从需求方面扩展
    3.从用户方面扩展
    4.从软件构件方面扩展

教材学习中的问题和解决过程