现代软件工程 第三周博客作业
how you collaborate: working separately? pair programming? VS Live Share? other style?
我们采用的是 pair programming的方式,首先是由我完成代码的主要框架,完成作业的最基本的功能。同时由我的小伙伴对于我的代码的基本逻辑功能进行检查,防止我的理解与作业的要求产生偏离,并且对于我的代码进行profiling,做出优化。二者各司其职,同时工作,相互交流。
在两个人的合作的过程中,不断的会对自己已经根深蒂固的编程习惯提出一个新的挑战,经常会有还有这种操作的惊讶,学习到了不少新鲜东西。
how do you discuss design guideline, coding convention and reach agreement?
代码的基本逻辑框架是由我一个人决定的,具体的实现细节由小伙伴profiling之后提出改进意见,再做改变。同时二者也会不断交流想法和意见。
how did the two of you aim high and try to deliver the optimal result with your own time constraints? is this the best your could do? what prevent you from doing your best?
我们的优化主要是另外一个小伙伴做的,他利用Pycharm的profiling工具,对我的代码进行用时测试并进行改进,针对具体问题做出改善,提出了很多由意义的改进。另外在书写最初的代码时,我的一切存储基本都是字典和集合,哈希的存储也会加快我们的存储速度。这也许不是我们的最优的结果。时间和精力限制了我们在上面的努力吧。
list 3 strengths and 1 weak area of your partner
Kai Hu能够掌握各种工具,来促进我们作业的完成。另外对于我脏乱无比没有注释的code也是没有怨言(也许是没有说出来),这或许是我最大的感动(主要是我懒)。另外他已经回学校了,还不忘作业这件事,实在是爱好学习!
how do you use profile tools to find the performance bottleneck and improve speed? show some screenshots of your analysis
我的小伙伴,他利用Pycharm的profiling工具,找到耗时较多的部分,然后针对用时较多的部分做具体优化。具体分析的截图详见github截图