《构建之法》阅读笔记(1)
《构建之法》To Teacher & TA和第一章阅读笔记
大马哈鱼洄游模型
软件工程按照经典的瀑布模型
1. 需求分析
2. 设计阶段
3. 实现阶段
4. 稳定阶段
5. 发布阶段
6. 维护阶段
事实上在现实世界中,软件工程师的职业发展与瀑布流程刚好相反
- 毕业进入公司(或者实习生),开始学习并维护一些已有的软件(维护阶段),主要由自己的师傅(Mentor)带领
- 能够在项目中改一些 Bug,然后发现发布小规模的更新版本(稳定/发布阶段),联系重构,开始和其他同事打交道
- 有机会负责重写一个较小的模块,没有多少文档,自己要写很多代码(实现阶段)
- 表现好的员工,有机会设计比较大的模块,自己写一些文档(设计阶段),和更多成员发生工作联系。在一些情况下还能发挥领导作用
- 员工逐渐成长为团队的骨干,有机会计划新的项目(需求分析)
现实生活中,学习的过程 Alpha 阶段
- 开始维护以前的同学开发出来的程序,理解程序,理解用户的痛点
- 找 Bug,改 Bug,重构小部分代码;一部分同学可以开发测试用例
- 在现有版本的基础上做少部分增量开发,快速分布并收集用户反馈
Beta 阶段
- 根据 Alpha 版本的反馈,进一步分析需求,估计实现需求的难度(此时应该能理解客户需求是什么)
- 设计 -> 开发(重构)
- 回归测试(用到上面开发的测试用例)
- 发布,收集用户反馈,看看新的版本是否真的解决了用户的问题
所以这种学习模式就像从瀑布下方一步一步上溯到源头,然后又从源头流下去,故称之为“大马哈鱼洄游模型”
阅读第一章我有如下体会:
1.我过去学习编程语言时,完成作业的时候看了题目就动手编写,不会就百度,再不行就找同学copy。而身边同学要不和我一样,要不靠大神,编程得永远就那么几个人,大家的作业都就几个版本而已。过去上课,老师严一些就听,而大多数课都在走神、聊天、玩手机。过去编程不注重流程及测试。
2.很显然过去的做法是不对的,上课应该认真听讲,过去那样学不到知识也荒废了时间。看过本书及上过软件工程课后,我知道了编程像解决数学大题一样,要把大问题化小问题,运用“拆分”的思想,编程就容易许多了。身为信息类专业,应该让编程成为我们的一种习惯。编程时遵守PSP,可以更规范,程序错误更少。
3.在老师的带领下,培养学生编程的习惯;老师可以把编程的思想方法教给学生。学生应多阅读编程书籍,每天写几行代码。争取每天都要挤出两个钟头来进行编程。
过了好长时间才展开阅读,时间有点紧,以后每天都会看一点,阅读这本书真的使我受益匪浅!
To Teacher & TA