[读书报告]构建之法(二)

今天阅读了《构建之法》从67页到139页的部分,思考和体会如下。

1.第四章

这章讲的是两人合作。主要的点有代码规范、极限编程和结对编程,也讲到了与别人交流的一些技巧。

代码是给机器看的,也是给人看的,但我觉得代码更多是给人看的。因为我一直觉得不论何种科学或者技术发展到了什么程度,人都是最根本的。书中对代码规范方面讲的比较细致,形式上的包括我比较熟悉的缩进、括号、分行、命名、注释、大小写等问题和以前没考虑过的行宽、下划线等问题。我在平时写代码时,关于形式上的规范,首先考虑的是风格的一致性和代码结构的清晰性。在大一刚写代码的时候,总是最求紧凑,以为代码的行数越少越精简越好,所以运算符和标识符和操作数间是不加空格的,缩进使用的是Tab而不是空格(没有设置编辑器把Tab自动替换成四个空格),在if等语句中的大括号能省则省,起头的大括号不独占一行。但随着代码量的逐渐增加,现在的代码风格和书上建议的已经几乎没有差别了。在代码的设计规范上,以c++为例,讲了goto函数的使用,错误处理,以及一些面向对象方面的问题。类似这种的规范性建议我还是第一次看到。在看C++Primer的时候,书中设计到了c++语言的许许多多的当面,也讲了一些设计的原则,比如什么内容放头文件,什么内容放源文件。关于类的构造、析构、继承、多态等,讲了应该怎么实现,但没有讲这些技术应该在什么样的情形下使用。

书中提到,仅在必要时,才使用类;仅在很必要时,才使用虚函数;仅在很必要时,才使用类型继承。这些提法我都是第一次听到。我的理解是:与类相关的很多技术,功能上很强大,也能通过比较简约的方式解决一些问题,但在使用上的难度还是有的,要求开发者对c++的诸多细节非常的了解,否则很容易出错。这就像c语言中的指针,用好了威力无穷,用不好会给调试带来极大的困难。在大一C语言课的时候,因为我们都还是小白,老师建议我们能用数组替代指针的时候就用数组,这样可以减少出错的几率。在这学期开的C2(c语言进阶)课上,听选的同学说,老师的思想是尽量用指针,因为效率非常高。比如传参的时候,传一个结构指针显然要比传结构快得多。

代码复审方面,书上说的很细致,给出了具体的复审步骤和核查表。如果能坚持对自己的程序做复审,我想时间长了能力一定会有很大的提高。很多道理的适用性是很广的,对自己的代码做复审,就是对自己做阶段性总结的特例,和"吾日三省吾身"是同样的思想。

在软工课上,我也进行也结对编程的实践,结果还是挺不错的,原因是多方面的。首先,我们两个人的编码能力都不差,其次,我们没有太心急写代码,而是先把助教提供的简单调度看懂了再写自己的,最后,我们俩都不是懒人,时间上还是有保证的。但是在复审方面,我现在的印象已经不深了。可能正是因为结对编程出的代码第一遍的质量就比较高,涉及到的debug比较少,印象才不深吧。

2.第五章

这章讲团队和流程。在软工的团队项目中,我们的队伍应该能算做团队的,我们有一致的目标,也有各自的分工。但在团队模式上,我们应该只能算是一窝蜂模式。而开发模式大概也只是写了再改模式。组建一个好的团队这件事,已经不是计算机科学的事情了,也不仅仅是软件工程的事情,考验的是队伍负责人的组织领导能力和组员们的交流合作能力。

3.第六章+第七章前半部分

这部分讲敏捷流程和团队开发,内容和我们的软工课实践相关度挺高的。里面讲到的开发流程,和老师对我们项目各个阶段的时间规划也比较相似。

书中讲到的很多方法和原则,都很有道理,如果能真正运用到我们的团队项目实践中,我想我们一定会有很大的提高。

对比书上讲的,我觉得我们的团队算是一个比较失败的团队。组织比较松散,对每个人的跟进工作不足,每日汇报几乎没有,开发基本上是波浪式的(比如本来定的7天的工作量,第一天就完成了,然后闲了十几天...)。原因可能有如下几点:1.不够重视;2.没有强有力的或者说对这件事上心的领头人。完美符合拖延症的特征:知道该做,但就是不想做。如果能重头来一遍的话,我想我可能会自己做PM(其实当初就很想做PM,但是队友希望我写代码),并且使所有人都参与进来,充分发挥每个人的作用,而不是现在的只有几个人在写代码。但就算按我的想法重头来了一遍,一定还会遇到各种新的问题。不管怎么样,已经积累到了一份宝贵的经验。

时间: 2024-10-11 01:54:21

[读书报告]构建之法(二)的相关文章

[读书报告]构建之法(三)

今天读了<构建之法>的第八章. 第八章讲需求分析.需求分析有以下几个步骤: 1.获取和引导需求 找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求. 2.分析和定义需求 对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化. 3.验证需求 通过分析报告.用户调查等形式向利益相关者验证团队对需求的认知. 4.在软件产品的生命周期中管理需求 在软件的声明周期中不断对需求进行重新审核并作出调整 需求分为以下几个方面: 1.对产品功能性的需求 要求产品必须实现

[读书报告]构建之法(八)

今天读了<构建之法>的第15章:稳定和发布阶段 Alpha:指集成了主要功能的第一个试用版本. Beat:功能基本完备,稳定性较Alpha版本高,用户可以在实际工作中小范围使用. ZBB:某天的版本把在之前记录的Bug都解决掉 RC:发布候选版本 RTM:最终发布版本 RTW:和RTM类似 会诊小组 软件团队的各个角色代表组成了会诊小组,处理每一个影响产品发布的问题. 决定对每一个Bug采取以下哪一种行动: 1.修复 2.设计本来如此 3.不修复 4.推迟 复杂项目的会诊 第一步:开发者提交惨

[读书报告]构建之法(五)

今天读了<构建之法>的第十一章和第十二章 第十一章,软件设计与实现主,要讲了以下几个问题: 1.从规格到实现 主要要经历以下阶段: 1.估计开发所需时间 2.写一些原型代码,看看效果 3.写设计文档 4.按照文档写代码 5.对照设计文档和代码指南进行复审 6.创建或更新单元测试 7.进行单元测试 8.得到一个可以的测试版本 9.修复测试人员发现的问题,请同事复审 10.根据代码复审意见修改代码,签入代码 2.开发阶段的日常管理 一个比较重要的问题是实现每日构建. 书中宣称,经调查,成功的公司中

[读书报告]构建之法(一)

今天我阅读了邹欣老师的<构建之法>从前言到正文的第66页,一些思考和体会如下: 1.前言 从前言可以看出邹欣老师对软件工程课的定位和对这本书作为教材的评价还是很高的.从前言可以知道这本书是邹欣老师结合了在一些高校的软件工程授课经验和自己的心得体验,写出的一本强调通过动手实践学习软件工程的教材. 2.给任课老师和助教的建议 这部分可以看书邹欣老师对同学们的要求很高,预期每个学生需要每周花费8个小时在这门课上.我个人而言,在个人项目和团队项目中每周花费的时间要超过8个小时.在团队项目中如果算上开会

[读书报告]构建之法(七)

今天读了<构建之法>的第十四章,这章讲质量保障. 软件质量=程序质量+软件工程质量 程序的质量体现在软件外在功能的质量.衡量程序的质量,基本的判断可以用“是|否”来判定. 软件工程的质量与“快”和“省”相关,主要体现在以下方面: 1.软件开发过程的可见性 2.软件开发过程的风险控制 3.软件内部模块,项目中间阶段的交付质量,项目管理工具的因素 4.软件开发成本的控制 5.内部质量指标的完成情况 衡量软件工程质量的方法——CMMI(能力成熟度模型集成) 一级:初始级.在这一水平上,企业项目的目标

[读书报告]构建之法(四)

今天读了<构建之法>的第10章 这章讲典型用户和场景. 定义典型用户,需要全面考虑.软件系统中有受欢迎的用户,但也有不受欢迎的用户. 典型用户可以包括以下内容: 1.名字 2.年龄 3.收入 4.带便的用户在市场上的比例和重要性 5.使用这个软件的典型场景 6.使用本软件/服务的环境 7.生活/工作情况 8.知识能力层次 9.用户的动机.目的和困难 10.用户的偏好 需要注意:一个软件不是为所有人服务的 有个典型用户之后,还要决定每一个典型用户的目标——使用系统想要达到什么目的.对每一个目标,

阅读报告--构建之法

软件工程是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及程序设计语言.数据库.软件开发工具.系统平台.标准.设计模式等方面.软件工程牵涉的范围很广,对于即将投身IT业的学生而言,软件工程的内容又非常重要.典型的软件有电子邮件.嵌入式系统.人机界面.办公套件.操作系统.编译器.数据库.游戏等.同时,各个行业几乎都有计算机软件的应用,如工业.农业.银行.航空.政府部门等.这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 . 一.软件=程序+软件工程 正如书中所言,

构建之法读书报告

这学期的软工课上接触到了构建之法这本书, 这本书语言轻松愉快,读起来就像读小说一样适合年轻的学生阅读,从中学到知识.所以老师推荐给了我们并让我们写读书报告. 首先拿起这本书,封面简介但不失设计感,引起了我的兴趣.翻开它读起来其中的语言让我非常舒服.第一章概述讲的是什么是软件工程,不用多说,软件工程就是从拿到需求开始的到运营维护一个系统的一系列设计,从需求到架构到实现.第二章,讲的是单个设计人员如何提高自己的技术和单人开发的流程这也是很重要的,开发以人为单位每个人的能力决定了了团队的能力,学习个人

《构建之法》读书笔记二

这周读了<构建之法>的第二章.第二章主要讲到了个人技术和流程. 软件是由多人合作完成的,不同人员的工作相互有依赖关系.一个团队需要一定的流程来管理开发活动,每个工程师在软件生命周期所做的工作也应该有一个流程.所以就引进了一个新的名词叫做PSP--个人软件开发流程.但是要做到每个人的模块的质量得到稳定.量化的保证,单元测试就是一个很有效的解决方案.我们可以用vsts写单元测试,这是一个新的软件,我从来没有接触过,所以也不会用.只看了一下代码. 好的单元测试应该准确.快速地保证程序基本模块的正确性