结对编程回顾与收获
写在前面,首先感谢队友能够耐心,坚持和我一起肝代码(bug).
因为这一次结对编程需求又重新进行了变更,之前我和我的队友的个人项目都是采用C++进行编写的,在考虑到要设计UI,一开始尝试使用QT,但是之后发现无法实现短信功能,所以,无奈又重新开始转战JAVA。由于两人代码差异有些大,所以在考虑是否复用c++代码时,一致决定放弃了复用,于是我重新写了关于出题部分的Java代码,并对符号相应的部分进行了相应的优化并考虑了一些相应的特殊情况。
这一次的结对编程,我主要负责了出题部分,计算部分,并对一些UI比如登陆,切换,短信注册,出题界面进行了相应的修改,以便程序对接无误。
其实相比于这一次的结对编程最后结果怎么样,我并不是很在乎,我比较在乎的是在这一次结对编程中自我的学习能力的提升,以及和队友的协调沟通。
说说收获还有教训吧!
1、Java大二的时候刚刚接触,初级的语法以及一些简单的UI设计还都不成问题,但仍旧不够熟练。许多方式思想都不够成熟,以及一些对应的函数调用也不清楚。但是谷歌大法好啊,有不懂上度娘不是靠空穴来风。做中学,学中做,在这一次结对编程中展现的淋漓尽致。比如,在编写计算题目的时候,我看了大量的代码,相应的解决方式有生成树,逆波兰。从这过程中我就学会了使用stack堆栈来解决问题。同时还看到了一个在JavaScript里的一个可以解决简单四则运算的函数eval(),当然这个函数也有一定的局限性,简单的算式是可以处理的,不过考虑到我们这一部分生成的算是都有些变态所以就打消了念头。要不然代码实现应该还会更简单一些。
2、新的需求需要我们进行短信发送功能,这一部分,也让我学会了使用Java的maven指令来下载安装相应的jar包。
-----------------------------------------------------------------------------------------------------------------------------------------------
mavenn安装见: http://blog.csdn.net/pengchua/archive/2007/09/17/1788228.aspx
命令: (参考:http://struts.apache.org/2.1.2/docs/struts-maven-archetypes.html)
mvn archetype:create -DgroupId=tutorial -Dart
ifactId=tutorial -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=s
truts2-archetype-starter -DarchetypeVersion=2.0.5-SNAPSHOT -DremoteRepositori
es=http://people.apache.org/repo/m2-snapshot-repository
------------------------------------------------------------------------------------------------------------------------------------------------
3、再谈一谈Java的异常处理,真的是让人又爱又恨的机制啊,我在这一次的结对编程过程中几乎每一次对接都会遇到一次异常问题,要么空指针,要么空栈堆,要么数据格式异常,不过对于处理这些异常,也进一步的让我感受到要编写一个优雅,正确,健壮的程序代码的艰难,也明白自己的短缺漏洞。
-------------------------------------------------------------------------------------------------------------------------------------------------
https://blog.csdn.net/zx64881926/article/details/52300271
一些对于异常的描述,分类,处理,网上有一大堆,不赘述
--------------------------------------------------------------------------------------------------------------------------------------------------
4、更深的领略了Java的面向对象的思想,构建各种实体类,实例化对象,将其封装等等,一是保证了代码的良好的可读性也让程序相当有层次感。当然还有方法的参数传递也是很美妙的。
5、沟通!沟通!沟通!重要的事情说三遍,三百遍都不够好吧。深刻领悟到匈牙利命名,驼峰格式,正确注释的重要性啊,悔不该啊。一个变量名差点引发一场血案(队友不在,杀他祭天)。团队合作没有好的沟通,不是1+1>2,是1-1=0,晕啊。提前让我熟悉团队合作不得不说是一个非常正确的选择,这一次的结对编程,就让我明白,和队友之间的沟通交流是非常重要的,也是一个项目能够更快速有效的完成的基础,要不然就会应为一个参数传递错误导致debug一个晚上。
6、多学,多看,多做,多问,是一个快速提升代码水平的,也是唯一的方法啊。