结对编程初识,怎么着产生编制程序速度越来越快的程序员

文章翻译自:HOW TO BE A FASTER PROGRAMMER: 7 HELPFUL TIPS FOR BEING
FASTER & MORE SUCCESSFUL.

按照敏捷开发的要求,我们测试小组开始了第二个story。我领到了结对编程和跟着江霄一起完成关于.Net下对具体的项目代码写出测试Demo的task。

在结对编程的task中,主要又分为了概念性认识和具体推行两个子任务。这次主要还是单元测试理论性的一些基本认识吧。

如果转载请注明。

定义:

结对编程就是两位程序员坐在同一工作台前开发软件。也就是说,两位程序员来完同一个设计,一个作为领航者在后边说代码怎么写,另一个作为实施者写代码。

当我读到在Quora上读到“如何成为速度更快的程序员”这个问题的时候,我的第一反应是:更快速的开发究竟意味着什么?

优势:

对项目:

(1)两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决
方案
。人多力量大,人多点子多。(可能会出现过度讨论,浪费时间;当然,也可能创新出更好的方案)

(2)如果程序员的经验积累足够,是很容易看出存在潜在问题的代码的,即表面上实现了功能,但实际上是一种糟糕的做法。

(3)两个有经验的程序员同时在一起工作,看起来好像浪费了一个人的时间:但实际上的效果确实完成了更高质量的代码,程序不那么容易出BUG。

(4)一定时期内打乱配对。好处:促进交流,融洽关系;每个人更熟悉具体模块和整体项目;不再为人员流失而过度困扰;不再维护繁杂文档。

对程序员:

(5)它可以促进参与项目的程序员自身水平的提高,一对程序员工作的时候,水平较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西。而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路。

(6)提高效率,尤其是遇到困难时,两个人回去积极解决,而不是有时候的走神、跑偏、私人聊天等。真心是压榨呀~

(7)更少的受到打断。人们更不愿意打断两个结对编程的人,而单独工作的人却容易被打断。

如果你很像我的话,你有可能会说,开发速度快对成为一个成功或是高效的程序员好像不是一回事。是吧?

劣势:

可能出现的问题:(1)、过度讨论,浪费时间;(2)、水平高低不齐,效率低下;(3)、想法过多,思路“跑偏”;(4)、领航者:过度关注细节;一意孤行,默不作声,心不在焉等;(5)、实施者:深藏不露;目中无人;不知所措;思维跳跃;工具不熟悉等。

请容我讲的更直白一点。我将不会向你展示如何成为一个程序员以及如何成为一个牛逼的程序员。因此,如果你是在寻找如何成为一名程序员的手册,我建议你去看这篇文章:7条有用的方法使你成为全栈工程师

要求:

水平差的不太远的程序员和自己配成一对;只用一台计算机;大家选一个人坐在键盘前面负责输入,另一个人坐在后面口述(会不会造成一个人不思考了?不会,因为一个人停顿的时候另一个人会主动的去继续思考;会不会一个人思路太快,另一个跟不上?不会,因为第一个人听不懂他就写不下去,会问)。

两个人要不断的交流,频率不应低于一分钟一次。整个的设计思想由后面只动口不动手的人主导,而由操键盘的人做实现。由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题。

可以两个人分时交替角色。

虽然编码通常比一个程序员单独工作更快地完成,但是总的程序时间(程序员数目×花费的时间)增加了。管理者需要在工作更快的完成以及缩减测试和调试时间和更高的编码成本之间平衡。对于那些程序员没有完全理解的任务上,程序员期待更多的创造性,挑战,以及高复杂度,此时使用结对编程最有帮助。在简单的,程序员都完全了解的任务上,结对编程导致生产力的净下降。

图片 1

发展:

远程结对编程,就是共享桌面,拓展硬件、解决地域限制;但不利于协作,比如有延时键盘控制混乱等、乒乓结对编程,就是观察者和驾驶者(操作者)测试用例的编写和修改(了解即可)。

总结:对于结对编程还需要进一步的认识和探究,这里只是粗略的介绍。尤其是在项目中怎么推行和解决推行过程中的问题,才是这个课题的重中之重。

在过去的很多年,在参与过的很多的开发项目里,我看到过类似的三角关系。(译者注:事实上,作者是想说三者不可兼顾,你只能选择其中两个,好处不可能占全了)

图片 2

当我们考虑速度的时候,代码的价格和质量会扮演很重要的角色。同时,在很多软件开发项目中,为了更快完成开发任务,会去走很多的捷径。

现在,我想要给你一些关于如何成为开发速度更快,并且更成功的程序员的灵感。

让我们开始吧!

当我们深入的去分析程序员的时间分配,会发现,其实程序员们并未将大部分时间花在编码上,事实上,花在其它事情上的时间有可能更多。

以下我列举了很多会花费时间的事情:

1 重构和修改bug;

2 写一些实验性的代码用于验证你的想法;

3 google你所面对的问题;

4 编写测试测试并且测试它们

编程是有很多的套路。熟悉套路的过程被称为练习。

多练习会使得你:

1 更快速的找到思路;

2 更快速的阅读

3 更快速的把你所遇到的问题串联起来;

4 更快速的寻找到解决方案;

多练习,会让你称为开发速度更快的程序员。

编程过程里,会有很多的时间花费在思考上。作为真正程序员的我们,会更倾向于深度思考(作者用的词是over-think,意思是宁可想得过度),同时还会花费很多时间去担心和思考问题和解决方案。

发表评论

电子邮件地址不会被公开。 必填项已用*标注