《移山之道》第十一章:两人合作 读书笔记 PB16110698 第六周(~4.15)
本周在考虑阅读材料时,我翻阅了《移山之道》,正好看到这一章:两人合作,心想:正好,我们正值结对作业的紧要关头,书中两人合作的宝贵经验和教诲应当对我们有很大帮助。于是,我开始一边在ddl苦海中扑腾挣扎,一边抽空读完了这一章,确实受益匪浅。
这一章首先由一个时间估计的小故事引入:从北京火车站到八达岭长城需要多久。书中两位同学分别考虑不同情况,给出了截然不同的估计,由此引出项目管理要素三角形:功能、资源和时间。这三者在项目中相互制约,维持其平衡方能做好项目。回想这一周我们奋战的经历,首先时间方面紧缺,我接到班里团支部申优的大锅,要花很多时间收集、撰写材料;张行健同学则有期中考,需要全力复习。同时,我们都有满满当当的课业虎视眈眈地盯着我们,实在是脱身不易。想到班里大多数同学也都是这样的情况,不免轻叹。其次,功能方面又是一大难点。结对作业中的需求总有些朦胧,在群里大家提问后又一步步将要求具体化,还有一些要求是在群里提、很快被水掉的。这要求我们在尽快满足现有功能需求的同时,时刻注意有没有新的功能需要实现,而功能的实现都需要时间。最后是资源,这方面主要在于我们的知识水平。我们对c++的一些使用有基本的了解,也都学过点数据结构,翻着“栈”那一章的书敲敲OPTR\OPEN还是能做的。但dll封装方面我们事前都没涉及过,网上的教程也非常垃圾,耗费了我们许多时间,最终在同组马同学的帮助下磕磕碰碰地实现了。平衡这三方面,确实说来容易做来难。
随后,书中又谈起了单元测试的重要性,坦白说从上一次个人作业开始,我就一直在尝试做单元测试,但始终没能掌握带全局变量的单元测试如何进行。总而言之单元测试的重要性和快速、覆盖广等原则,我大致是体会得真切了,今后有机会一定系统学习。
最后,是与我们结合最紧密的话题:结对编程。正如邓老师所说,结对编程分为领航员和驾驶员的角色,一者负责监督、检查,一者负责实际编码,两者身份定时互换。结对编程的好处主要有合作、信心和交流,且能让代码处于不断“复审”的状态,大大减少bug率。回想这一次编程经历,我们一起讨论架构、轮流实现具体模块,虽然刚开始工作时还不太适应,但渐渐习惯后就能体会到结对的益处。有时某个相似的变量引用出错,或者某个条件分支判断出现了逻辑漏洞,队友之间能很快相互提醒,规避了许多大坑。虽然我们并没有像书上那样严密地分工,实际上我们的分工还是相当随意的,但仍旧感觉很棒。书中将结对编程的过程比作舞蹈,我感觉还是挺恰当的,不过由于课业繁重的原因,我们合作的时间还比较短,从磨合到创造的过程还是有点雷厉风行,希望日后还有机会继续合作。
总而言之,这一章让我加深了对单元测试重要性的认识,了解到项目管理的三角平衡哲学,也体会到了结对编程的优势,希望本次结对编程能画下圆满的句号吧。
《移山之道》第十一章:两人合作 读书笔记 PB16110698 第六周(~4.15)的更多相关文章
- 《移山之道:VSTS软件开发指南》读书笔记
这两天看了<移山之道:VSTS软件开发指南>,对团队软件开发又有了新的认识.也许对于我们这些软件开发的新手来说,最重要的是具体技术与应用框架,但读了这本书后我感觉到,实际团队项目中工具的使 ...
- 《软件调试修炼之道》Part 1(CH1~5)读书笔记 PB16110698 第八周(~4.26)
编程中,调试几乎是必不可少的,一劳永逸.一次完成预想功能而完全不出bug的情况凤毛麟角,出现bug→调试→再出现bug→再调试……基本是软件工程中的常态.可以说,软件调试是每个coder的必修课,而& ...
- 读《移山之道——VSTS软件开发指南》
读<移山之道>这本书差不多用了一个星期的时间,感觉还是收获了一些知识的,以前只是会简单地编个小程序(虽然现在也是这样),但看过这本书之后我对软件开发这个概念的认识度有了从一片模糊到了解大体 ...
- 读《移山之道-VSTS软件开发指南》
首先,我选择<移山之道>有几个原因.第一,书的名字给我一种新鲜感,而不是像另外两本书那么平常:第二,作者邹欣是老师推荐的,看一看他的书或许能让我发现老师对他推崇备至的原因,而实际上,读完这 ...
- 开发之道——读《移山之道——VSTS开发之道》后感
开发之道——读<移山之道——VSTS开发之道>后感 <移山之道——VSTS开发之道>(下简称<移山之道>)是邹欣老师的另一本书.相传很有名的<构建之法> ...
- 《移山之道》Reading Task
老师布置的阅读任务虽然是附加的作业,但是对我来说是个很好的学习机会.软件工程主要是对工程的开发进行学习,毕竟在学校老师教了那么多的知识,我们课下做了那么多的练习并没有提高我们做一个工程的能力.一个项目 ...
- 第三章 Git的入门 - 读书笔记
Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- 《代码整洁之道》ch1~ch4读书笔记 PB16110698 (~3.8 第一周)
<代码整洁之道>ch1~ch4读书笔记 <clean code>正如其书名所言,是一本关于整洁代码规范的“教科书”.作者在书中通过实例阐述了整洁代码带来的种种利处以及混乱代码 ...
随机推荐
- flex上下、左右居中
tip:1)flex是用于div布局用的,作用于一级子元素(父元素写样式,作用于子元素) 2)弹性盒模型 3)英文解释justify-content: 对齐内容(内容一般写在主轴上)align-ite ...
- Pandas之read_excel()和to_excel()函数解析
read_excel() 加载函数为read_excel(),其具体参数如下. read_excel(io, sheetname=0, header=0, skiprows=None, skip_fo ...
- 总分 Score Inflation
题目背景 学生在我们USACO的竞赛中的得分越多我们越高兴. 我们试着设计我们的竞赛以便人们能尽可能的多得分,这需要你的帮助 题目描述 我们可以从几个种类中选取竞赛的题目,这里的一个"种类& ...
- hdu 3486
题意:n个人,每个人的价格a[ i ] ,求最少分几组,每组取一个人,多出来的人就不考虑,使得这取出人的价格大于k.(每组人数一样) 分析:每组取一个人,那这个人肯定是这组最大的,枚举多少组就可以 ...
- Use on Git
Preface The document is about to introduce some specialties on PLM development and mainte ...
- java中Class.getMethods()和Class.getDeclaredMethods()的区别
在java中,可以根据Class类的对象,知道某个类(接口)的一些属性(成员 ,方法,注释,注解)等.由于最近的工作中用到了这些,其中需要在代码中格局反射知道某些类的方法,查看文档的时候,看到了get ...
- Dijkstra算法举例分析
题目如下: 如上图,设A为源点,求A到其他各顶点(B.C.D.E.F)的最短路径.线上所标注为相邻线段之间的距离,即权值.(注:此图为随意所画,其相邻顶点间的距离与图中的目视长度不能一 一对等). 解 ...
- vue之自定义指令
1.自定义指令的作用 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件.然而,有的情况下,你仍 ...
- 使用Git 上传文件到云端(版本库)
第一步:本地初始化Git版本库 git init 第二步:链接码云(云端) git remote add orgin "你的远程仓库地址"(复制链接后结尾是.git,如果没有记得加 ...
- 1、Go语言的介绍
一.概念 Go语言(Golang)是云计算时代的C语言,使用Go编译的程序可以媲美C/C++代码的速度,而且更加安全.支持并行进程. 二.Go语言的优势 1.部署简单.可以直接编译成机器码,不依赖其他 ...