上个星期,老师给我们布置了个课堂小作业:
某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:
•Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…
看到这个问题,我是觉得很简单,随机去重OK了,但是优秀的编程大神室友就考虑到接口的扩展,输入的各种判断等等,说的好专业,我竟无言以对。可是我想这个题目可能那么复杂,因为按照学霸说的,这简直要编出一个完美的计算器+随机出题系统啊。光是编一个计算器建类的过程也超过一袋烟的工夫了。于是我就找了老师说这个问题要不要考虑这些,老师说只是做一个简单的四则运算,两个运算数一个运算符。学霸恍然大悟,原来这么简单。
其实看到这个题目的时候,我打算自己编一下,但是打开Eclipse,突然发现刚上学期学的Java,竟然忘得差不多了,吓得我回去赶紧复习了下Java。
通过这次结对项目我的体会是:
结对编程的优点:
1.一个人的想法有限,两个人可以发散思维。
2.老马也有失前蹄的时候,两个人可以更全面的发现漏洞,减少代码的Bug,提高代码质量。
3.结对编程是一个合作的过程,可以更快更有效地解决问题。
4.合作过程中有利于相互学习,共同提高。
当然,它也有些不好的地方:
1.编程习惯不同,统一起来比较麻烦,所以得规范代码格式。
2.对于有的不确定问题,可能没有具体的解决方案,导致争论不休。
3.如果两个人的经验和实力差距很大,结对编程其实基本和一个人编程效果差不多。
综上,我觉得结对编程适用于两个水平相近的志同道合者,而且是得虚心听取他人意见的,适用范围也不是很广,适用于小项目或者大项目里的特殊模块。整个大项目的编程,两个人,也还是心有余而力不足的。