《移山之道》第十一章:两人合作 读书笔记 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>正如其书名所言,是一本关于整洁代码规范的“教科书”.作者在书中通过实例阐述了整洁代码带来的种种利处以及混乱代码 ...
随机推荐
- 2019牛客多校第二场A-Eddy Walker
Eddy Walker 题目传送门 解题思路 因为走过所有的点就会停下来,又因为是从0出发的,所以当n>1时,在0停下来的概率为0,其他的为1/(n-1); 代码如下 #include < ...
- PAT_A1023#Have Fun with Numbers
Source: PAT A1023 Have Fun with Numbers (20 分) Description: Notice that the number 123456789 is a 9- ...
- 数据挖掘Aprior算法详解及c++源码
[算法大致描述] Aprior算法主要有两个操作,扫描数据库+统计.计算每一阶频繁项集都要扫描一次数据库并且统计出满足支持度的n阶项集. [算法主要步骤] 一.频繁一项集 算法开始第一步,通过扫描数据 ...
- Laravel/php 一些调试技巧
1. 模型属性不知道哪里修改? 直接覆盖模型的 setAttribute 方法,监测到某一个属性改动的时候,抛一个异常就可以看到堆栈了 use Illuminate\Database\Eloquent ...
- &与&&,|与||的区别
今天在做leetcode的时候,遇到了运算符的不同而导致结果不一致的问题.记录一下提醒自己 中文名称与英文名称 &:按位与(Bitwise and) &&:逻辑与(logica ...
- Ubuntu18.04 一键升级Python所有第三方包
一.pip是什么 pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 二.升级pip版本 1.默认Ubuntu自带的pip (pip 9.0.1)是基 ...
- Vultr账户充值需要注意的事项
一.Vultr充值注意事项 1.选择适合自己的充值工具.我们可以使用支付宝.信用卡.PAYPAL等支付方式,需要我们注意的是充值方式不要来回切换充值,如果我们有多账户的时候一定不要相互使用,以免导致账 ...
- 使用net模块创建tcp服务器
demo /** * Created by ZXW on 2018/4/6. */ var net=require('net'); ; const HOST='localhost'; var clie ...
- vue 中使用 lazyload 插件 数据更图片不更新 的原因 及解决方案
在使用lazyload插件的img标签上,加上:key标识即可
- 安装监控MongoDB的Python安装包时候报错:HTTP Error 403: SSL is required
安装pymongo-2.3.tar.gz,执行命令python setup.py install报错: HTTP Error 403: SSL is required 分析原因:安装需要下载这个dis ...