现在的位置: 首页 > 综合 > 正文

高级软件工程pair project工作总结 By 何栋梁

2013年06月07日 ⁄ 综合 ⁄ 共 2871字 ⁄ 字号 评论关闭

       高级软件工程的pair project正式结束了。我和徐海峰同学经过一个星期的努力圆满完成了以下任务:

       1、 修改Academic map中代表各机构的圆圈颜色显示模式,将单调的四种颜色模式改 为按照红橙黄绿青蓝紫的颜色变化顺序表示各个机构。

       2、在各个机构中的中心显示区,根据作者数目排序显示出该机构的前三位的研究领域。

       我们预期我们的实验的结果应该是各个机构按照其规模从大到小的顺序,依次显示出由红色到紫色的渐变。另外,当我们点开一个organization的时候,在中心的大圆上显示出该机构作者数目在前三的domain. 那么我们任务完成后的实际效果怎么样?以下两图略做展示:

clip_image002

对机构重新赋上颜色,按从大到小的顺序依次由红色到紫色渐变

 

clip_image003

按作者数目显示每个机构的前三位的研究领域

 

        我们两个以前从来没有接触过silverlight以及C#。一开始我们组队的时候还是免不了对于结对项目的担忧。我记得,当我们拿到Academic Map的代码的时候,我们两个人都颇觉压力。然而,更加让我们窘迫的事情是,我们总共只有两个星期的时间,而上个周五周六徐同学都有丘成桐杯数学竞赛的面试需要应付,从这个周一到周三,我和他两个人都得参加微软亚洲研究院小学者夏令营活动,我们需要准备面试,需要参与团体的活动,而他在这个周四晚上就得启程去考托福,这也需要时间来准备。这一切让我们两个一开始都有点焦头烂额的感觉。我们各自所在的研究小组还会有一定的任务需要我们去完成,当事务如洪水般涌过来的时候,就看谁能激流勇进了。因此,基于这样的客观情况,一开始,我们两个对于项目任务并不乐观,预期的效果也不是很高,给自己定位的任务也并不太艰巨。我们两个讨论后,一致认为,我们做得不多不要紧,只要我们在这个过程中学到了东西就会有收获。于是,项目任务就在这样的前提下开始了。

      时间是如此的有限,我们拿到代码的第一天下午就开始了讨论。晚饭期间,我们就自己使用Academic Map的切身体会交流了各自的看法,最终商量好做排序,我们决定对机构的domain按作者数排序,以显示出来它比较优势的专业领域。然后我们跟唐敖兄弟确定了这个题目。后来,唐敖说我们这个任务相对的轻松,我们应该再做点别的,正好夏睿同学提出很多很好的idea,我们就掠夺了他其中的一个,那就是根据机构的规模将颜色做成渐变的模式,美化界面。

我们两个决定分头行动,我们的任务被分为了几个小部分,简单得说,一个是如何显示结果,一个是如何获取数据。以下是我们将任务的划分和预期及实际的耗时情况:

Untitled

 

       首先我们一起开始看代码,他注重关注silverlight代码部分关于图形界面的代码,找到关键切入点,以实现我们在界面进行处理的目的;而我,主要负责关注C#代码中关于控件的操控以及如何去获取数据部分。我们把任务分成几个部分,各自行动,然后每天晚餐时候,我们一起去吃饭,在饭桌前讨论我们最近的进展和发现,交换一下各自的意见,饭后回来两个人就一起把不能读懂的代码拿出来共同讨论,通过查MSDN和向同学请教等方式,共同学习。此处插入小图一张~

clip_image005

两人共同探讨学习中

 

       现在,任务完成了,当我回过头来想想,两个人一起工作其实与平时一个人完成一个任务还是有很大的不同的。首先,我想就个人的看法说说其优势。

       首先,两个人一起工作,至少,有个心理依靠。尤其对于两个不熟悉silverlight和C#的合作伙伴来说,刚刚看到Academic map的原始代码的时候,如果只有我一个人,我相信我的信心不会那么的足,但是,现在是两个人,我会觉得也许我不明白的地方队友会知道,我们可以一起讨论,也会相互鼓励。这样,其实信心要足一些。我清楚的记得,在我拿到那一堆代码之初,疑惑的问我的队友我们能否按时完成,他的一句“小伙,年轻没有什么不可以。不问结果,每天都能学到东西就值了!”让我无比的兴奋,那一刻,自己真跟打了鸡血一样。

      另外,我觉得两个人工作的另一个好处在于,两个人一起工作是一种鞭策,谁也不想因为自己的不努力而把对方拉下水,那么,在我们想懈怠的时候,就会有种无形的推力在自我推动着。

      还有,我觉得两个人一起工作,能够学到更多,有时候一个人完成一项任务,当你走入到一个死胡同或者瓶颈的时候,容易走入思维定势的怪圈。然而,有两个人,当你遇到麻烦的时候,你可以让另一个人来想想这个问题。这样,更加容易解决问题,而且还能学到别人在处理问题时的思维方式。

       此处插播一则小故事以作说明:

       当我们做颜色修改的时候,我们用一个在0到1之间的数去衡量机构的规模的大小,然后根据这个数去生成颜色。我们发现各机构的颜色中红色居多(也就是接近1的数太多),于是我们想要做下均衡,让各个颜色的数目尽量的均匀。然而,我站在信号处理的角度首先想到的就是在做图像均衡时候用的的直方图均衡算法。而他,作为一个数学背景的学生,他的第一想法就是做一个位于区间[0,1]的下凸函数f,经过映射,使接近1的数变成更小的数目达到均衡的目的。而这个算法实现的复杂度就比直方图均衡要容易,关键在于下凸函数的设计。最后,我们寻找了一个(ax-1)/(a-1) , (a>1) 这样一个函数。集思广益略见一斑。

      当然,两人结对编程也有一些其他方面的影响,我们需要适应彼此的编程风格,当我们在想法上有冲突的时候,需要商量,讨论,最后一方说服另一方或者找到一个折衷点。这样相对来说耗时要多但是个人觉得不能算浪费,因为学会说服一个人也是种不错技能。

       掰扯了这么多,我想,最后我得好好谢谢大家,感谢唐敖同学和夏睿同学的帮助,感谢邹老师能够给我们提供这么好的机会让我们有所锻炼,感谢国斌跟贝哥,在我们两个参加MSRA夏令营期间,鼓励我们俩从忙碌中survive,也很感激他们对我们的信任与支持。

       跟我的队友徐海峰短暂而愉快的合作过程中,我看到了他许多的优点。他是一个很积极进取的人,跟他的合作让我受到了他迎难而上的生活态度的感染,是他给了我不少的信心和鼓励,在纠结的时候,有他的开导,在迷惘的时候有他的鼓励。另外,他是个很善于思考的人。当面对一个问题的时候,他能很快的从数学的角度,考虑找到一个合适的解。还有,他是一个善于和人沟通和交流的人。如果能有下一次合作的机会,我很乐意和他合作,不过我更希望下一次合作的时候,你不会忙碌于丘成桐杯竞赛的面试,也不会要担心TOEFL的考试,也不用应付summer camp的各种活动,我希望我们能全力以赴,做出更好的成果。当然,我也希望给他提点小小的建议,同样这也是我自己需要加强的地方,那就是,对于C#和silverlight的了解需要继续加强。我想,不仅仅是这个项目,以后的团队项目都需要这两个方面的知识。当然,以你那好学进取的态度,我相信这个不是问题。

       期待下一次的合作,期待从你那学到更多……Cheer up, buddy!

抱歉!评论已关闭.