《构建之法》读书笔记第1、2章

本书通过航空业发展类比软件工程,强调软件工程的重要性。指出软件=程序+软件工程,软件企业=软件+商业模式。书中介绍了PSP个人软件过程,强调需求分析和测试的重要性。同时讲解了单元测试、回归测试和效能分析等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前因为助教工作阅读过一遍《构建之法》,现在回头重新翻看这本书,越发觉得这本书值得深入阅读。本周先将前两周的读书笔记记录如下:

第一章 概论

第一章从浅入深,以航空业的发展历程作为模型,类比软件工程的发展。玩具:纸飞机>>业余爱好:沙滩椅+氦气球>>探索:莱特兄弟>>产业:容纳百万人就业的航空业。类似的,软件也从简单的“Hello World”到写网站到构建一个软件系统的从简到繁,从易到难的发展历程。软件=程序+软件工程。软件工程是什么?书上是这么说的:

软件工程是把系统的、有序的、可量化的方法应用在软件的开发、运营和维护上的工程。

相对于大家广而熟知的“程序=数据结构+算法”等式,对应的软件=程序+软件工程。而对于软件企业来说,自然也可以推论出:
软件企业=软件+商业模式

从这两个公式可以看出,程序是基本功,软件工程决定软件质量,而商业模式就决定了一个软件企业的成败。
软件具有复杂性、不可预见性、易变性、服从性和非连续性的特点,如何“做一个好软件”既是软件工程的目的,也是挑战和魅力所在。
作为一个工程师的宗旨是:我构建,故我在。好的工程师能尽量减少软件的Bug。Bug的多少影响着软件的用户满意度、可靠性、软件流程的质量和可维护性。只要软件的行为和用户的期望不一致,就可以称为Bug。
通过系统阐述,《构建之法》的教学目标即为以下三点:

  1. 研发出符合用户需求的软件
  2. 通过一定流程,在预定时间内发布“足够好”的软件。
  3. 能证明所开发的软件是可维护和继续发展的

第二章 个人技术和流程

PSP(Personal Software Process),个人软件开发流程的任务清单如下所示:
1016281-20170910153027851-1758324919.jpg

作者对比了中科大大四学生和工作三年的工程师的PSP表格,结果表明工程师在“需求分析”和“测试”方面花了更多时间(多60%以上)。而在具体编码上,工程师要比学生快的多(60%左右)

此外涉及到的内容由单元测试、回归测试、效能分析。单元测试是保证模块质量的有效解决方案。好的单元测试应该准确、快速保证程序基本模块的正确性。好的单元测试有以下标准:

  1. 在最基本的功能/参数上验证程序的正确性
  2. 由最熟悉的人来写
  3. 单元测试后机器状态保持不变
  4. 单元测试要快并产生可重复、一致的结果。
  5. 保证独立性
  6. 覆盖所有代码路径
    所谓回归测试(Regression Test)目的有二:
  7. 验证新的代码的确改正缺陷
  8. 验证新的代码有没有破坏模块的现有功能,有没有Regression
    Regress:return to a worse or less developed state.回归测试最好自动化,并且对每一个Bug Fix都要进行回归测试

效能分析目的是是找到程序的效能瓶颈进而可针对性优化程序。效能分析有两个方法:抽样和代码注入。一般方法是先用抽样找到瓶颈所在,再对特定模块用代码注入方法详细分析。

转载于:https://www.cnblogs.com/deerCode/p/7501178.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值