高级软件工程的第一次作业要求我们采访前一届的学长学姐,从而对这门课程有一个初步的了解,于是我们联系到了前年项目的成员陈凯学长。考虑到时间问题,我们只提的问题不多。陈凯学长为我们做了耐心的解答,同时我也附上了我对部分问题的一些感受。
Q1:项目简介。
A1:主要做的是学术家族谱,当时是邹欣老师推荐做的这个项目,和微软的产品结合比较密切。而且这个项目有很好的user scenario:比如想申请出国的人可以由此看一个教授的圈子,以此得知他是否活跃,还可以知道每个教授在研究哪些领域,根据这个判断自己是否对这个圈子感兴趣。
Q2:做这个项目的挑战和乐趣。
A2:挑战有三点:
1.家族谱如何展示,有的人资历比较老,一个家族谱几百人,所以很难找到合适的表示方法。
2.数据源太少,无法获得大量数据。
3.涉及到一些网络编程,本科生对这个不太熟悉。
乐趣:做的过程中意外的发现了很多人之间的关系,各种八卦。。
Q3:成功的经验。
A3:这个项目说不上成功吧。这里可以谈一些失败的教训:一方面是一开始的方案不好,但是后期改要花大量时间,大家比较懒得改。。另一方面是数据源不足,这个之前提到过了。
Q4:工作量如何,代码水平差距很大怎么办。
A4:这个工作工作量很大,几乎每天都要一直投入到上面。除了code,还有其他的工作,比如找数据,学知识(c#等工具都是现学的)。
代码水平的话,大家都是之前只学过c,没有开发经验,要求并不高,可能只是越熟的人写得越快。
感受: 一直听说这个课程是十分有挑战性的,也与学校里的课程有很大区别,但据邱老师介绍,一些国外著名大学的计算机相关课程是比这门高级软件工程更加tough的。但是我相信,正是这种课程,可以让我们真正学到东西,锻炼自己。
由于本班成员并不是都是计算机专业的(比如我),因此code水平参差不齐,这也是我的一个担忧。但是似乎学长不认为这是一个problem,我也就放心了。
Q5:结对编程的好处。
A5:结对编程效率比较高,虽然花了两个人的时间,但是由于有人盯着你写错误会比较容易查出来,写出来代码质量很高。还有就是由于两个人都看了写代码过程,调试起来也方便。
感受:以前从没接触过结对编程这样的东西,现在看来还是有很多好处的,值得一试。
Q6:ase的code和research的code之间的异同。
A6:两个的目的不同,ase是面向产品的,所以要考虑时间复杂度,用户体验。不能放过任何一个bug,而且可读性要好,因为后面的人很可能接手你的工作,代码写的太难看会影响整个队伍。Research就大不一样,目的是验证自己的算法,所以就会宽松很多,达到自己的目的就好。
感受:确实原来在自己编程的时候,只会去想实现自己的idea,没有考虑更多code规范性,可维护性的东西,而这些在软件工程中都是很重要的,也希望能在这门课程中提高自己此方面的能力。
最后感谢陈凯学长抽出时间为我们做耐心的解答。