相关博文目录:
说明:随机挑选20组点评,大家可以看看blog名字,github项目名字,看看那种是更好的,可以学习,每个小组都会反应出一些问题,希望能取长补短,改进自己的项目,所有贴出来的各种信息都可以自己做下横向对比,自(主动)学(别人好的地方)哈
第一组:取款机项目
组员
- 1121:负责功能代码编写
blog:取款机项目实验报告
code:joanyy/ATM - 1125:负责单元测试编写
blog:结对项目:ATM
code:tpp531853660/ATM
点评
- 有简单的ATM基本功能代码以及简单的单元测试
- ATM基本操作代码的改进,参考袁颖的点评,
- 单元测试的改进,参考两位博客的点评
- github使用的改进,参考两位博客的点评
第二组:五子棋项目
组员
- 1175:代码实现
blog:结对项目:五子棋游戏
code:long0123/test/blob/master/WuZiGame - 1184:调试和诊断
blog:结队作业实验报告
code:Wangjun593x/teamwork/
点评
- 代码提交要规范,请单独为五子棋项目创建github仓库
- 请做单元测试,需要对五子棋功能函数的测试
- 代码核心功能、难点应该在博客里写出,而不只是截图
- 调试过程做了什么,怎样解决问题的?
第三组:五子棋项目
组员
- 1122:GUI设计以及代码规范
blog:Pair Project
code:ChittyCui/Partner - 1140:负责棋子胜负判断部分
blog:结对项目:用Java写的五子棋
code:Max577769190/test/tree/master/Work_3/Code
点评
- 两个人都有代码贡献,做了随机落子的"AI"(太简单了点,AI这样是很难战胜人类的吧)
- 有为项目创建了独立的仓库,不过没提交elipse工程文件,希望能补上,另外不需要把代码拷贝到txt文件里再提交上去
- 不知有没有人有好奇心去点击下项目右上角的
Fork
按钮,然后看看自己的账户里多了什么呢?
第四组:五子棋项目
组员
- 1135:五子棋算法,判断胜利,悔棋,地方游戏中吃对方的棋、移棋、判断胜利
blog:软件工程——结对项目
code:JiaDianDuo/java_core/blob/master/FiveChess - 1150:主要做五子棋的界面
blog:软件工程——结对项目
code:Yuanjiaying/FiveChess
点评
- 这组在结对中体现了编码基本功差异导致的一些问题,不过他们还是彼此协作完成了任务,有一定的代码量
- 不过,一个函数里写了太多的逻辑代码,这不利于阅读、维护和单元测试,应该要使用小函数去改进
- 另外得思考下,软件开发过程中,你总不可避免会出现自己编程基本功比队友好一点,或者差一点,这种情况下要如何更好的协作让1+1>2呢,可以结合自己的经验和书上以及课堂上讲的理论改进
第五组:学生管理系统
组员
- 1132:Navigator
blog:结对项目-学生管理系统
code:LiangWeiLong/learngit - 1138:Driver
blog:结对项目——学生管理系统
code:Lendoon/StuManagement
点评
- 这组基本有做到结对编程中的Navigator和Driver的角色切换,其中林栋的完成度应该是更高的
- 代码还是有很多需要改进的地方,在他们的博客点评下有给出建议,希望改进
- 普遍反应了一个问题,大家都习惯在逻辑代码里直接做写交互代码,比如命令行的scanner.nextInt()或者GUI版的控件操作代码等,如果能用两个class,一个class是处理界面交互相关的,一个class专门写和界面交互无关的代码(比如一组函数),这样的话,可能大家就能够利用JUni4框架对那些UI无关的函数做单元测试,目前看来还是没有人能做到真正使用JUnit来辅助开发。希望有人能去好好理解并掌握。
第六组:五子棋项目
组员
- 1124:写出选择性,黑先还是白先;如何去判断整盘棋的输赢
blog:结队作业五子棋游戏
code: loiskris/test/blob/master/Enzit.java - 1123:页面控件的设置;游戏的开始;一局以后的重新开始
blog:结对项目
code: 715lvzhihao/testyou
点评
- 这组的判断输赢可以分离出单独一个class,这样就可以把UI代码和输赢判断模块代码分离,然后对后者做单元测试,建议改进
- 1124说她一个符号搞错了花费了很长时间,这种事在编程初期经常出现的,结对编程的时候,此时恰好可以利用两个人的眼睛以及两个人的大脑对代码做即时的codereview来找到问题,不知这组解决这个问题实际上是靠个人定位还是有两人协作
- 没有为五子棋项目创建独立的github仓库,还是只是把java文件提交到那个test仓库里去了,
- 1123虽然为五子棋项目创建了独立的github仓库,但是名字没起好,叫testyou太随意了,eclipse工程文件也没提交
- 结对编程或者多人协作编程(后面的团队项目),建议采用Fork-PullRequst方式协作开发,也许需要一个案例介绍
第七组:记事本程序
组员
- 1126:实现界面的控件,编辑下的自动换行,记事本的关于下的信息,代码的调试和测试
blog:结对项目实验报告
code:liuzixuan/notepad - 1142:实现文件栏下的新建、打开、保存、退出;和编辑的日期和时间界面的控件
blog:结对作业---简单的记事本
code:wang0202zhu/test/blob/master/MyNotepad.java
点评
- 给自己做个Notepad用挺好的,Notepad也算是出场率最高的简单软件了,据说他们在
学霸
那咨询了很多问题最后完成了项目,不知学霸是谁呢 - 刘同学做的自动换行功能太简单了点,建议多实现点功能代码吧,学编程的一种方式就是先增加代码量,写多了就知道了
- 李同学实现的新建和打开文件的
特性
是不保存已编辑的文本,坑你没商量啊,BUG is Feature.. - 还是要强调下github应该要为独立的项目创建独立的仓库,李同学可以去问那个学霸
第八组:高级计算器
组员
- 1154:
blog:实验报告高级计算器
code:lyn2313121/mm - 1134:
blog:结对项目
code:zhuruichao/Test0/blob/master/Test3(1).txt
点评
- 这个计算器主要是界面设计,代码上转调用Math库的方法
- 1154博客不够规范,只贴了代码和截图以及最后的小结,他的队友的博客相对排版好狠多,建议改进
- 两个人的博客都没说如何协作和分工的(结对编程嘛,当然是两个人的事。。),两个人的github上都没有为项目创建独立的仓库,都只是把代码贴到txt里了
- 说明这组同学还是把github当作一个“网盘”使用了。。建议这组同学重新学习下git以及github,然后写一篇博客说下自己的学习,并重新为项目创建github仓库并提交
第九组:中国象棋:观棋不语真君子,棋死无悔大丈夫
组员
- 1160:
blog:结对实验
code:xiaojibibi/test/blob/master/xiangqi.txt - 1144:
blog:中国象棋小游戏(实验三)
code:CaesarLH/text3/blob/master/Chess.txt
点评
- title起的挺好玩的,然后代码很长,但注释很详细
- 不过1160博客的内容和代码对不上号,有点奇怪,存疑
- 另外,这两人提交github也没学会,只是把代码放到txt里传到github而已
第十组:五子棋
组员
点评
- 代码应该提交到github
- find1到find4可以做单元测试的,请用JUnit做单元测试,名字也可以起的更好点
- 其实总体感觉大家的结对编程有做到了基本的分工和协作,不过对
代码规范和风格
,Driver和Navigator
,沟通等等的训练不够到位,也许需要限时、给定挑战性任务的情况下才能体现掌握了工程方法所带来的好处?
第十一组:Android计算器App
组员
- 1164:数字按钮功能实现,乘法功能实现,除法功能实现,平方功能实现,开方功能实现,正负号功能实现,等号功能实现。
blog:结对项目-使用计算器的设计和介绍
code:marry1234/calculator - 1167:页面布局设计,页面代码编写,逻辑设计,加法功能实现,减法功能实现。
blog:软件工程结对项目--实用计算器的设计和制作
code:zhangtiantian1234/Calculator
点评
- 界面设计、代码实现、博客排版都风格良好,实现了相对完整的Android计算器,
- 这是第一组坐到了
独立为项目创建仓库
+完整提交了Project(不包括bin和obj)
的github用户,github欢迎这样的用户 - 如果能把计算逻辑分离出一个类Calculator就更好了,顺便对Calculator做单元测试
- 这组的项目应该继续迭代改进下去,设计特色功能、发布Adroid apk,寻找客户试用,拓展市场......
- 不过首先还是把模块分离下,单元测试做下,怎样?
第十二组:带禁手的五子棋
组员
- 14063:
blog:结对项目之五子棋游戏
code:xutiantian/test2 - 14064:
blog:结对项目3-五子棋
code:guoleilei/wuziqi
点评
- 这组倒是认真学习了下测试的各种概念:白盒测试、黑盒测试、回归测试。可惜忘记了单元测试是第一个呢。
- 这组做了五子棋禁手逻辑,看代码实现,也估计是在各种测试下不断修订完成的,很是辛苦。
- 首先,建议把UI代码和五子棋逻辑代码分离,两个class
- 但是要是能掌握单元测试的话,那么那些他们设计的测试用例都用单元测试的代码写,则每次修改五子棋的核心逻辑代码都去运行单元测试,如此,就好了
- 越是复杂代码+混乱代码,越能体现工具和方法在其中的作用,掌握了工具和方法的人就会
事半功倍
,我给她们的博客点评里写了下单元测试从函数到类到项目如何一步步保证整个项目正确性的简单说明, - 所以编程还是从小小的函数开始的,设计好函数,以及该函数的单元测试。这就是我认为的程序员新手和入门之间的界限。
第十三组:计算器
组员
- 14103:主要功能预期构思,与实现方式;整理代码,整理出实验报告的大体流程,整理作业提交格式
blog:计算器
code:daishimin/test/blob/master/结对项目_jisuanji2.java - 14105:键盘(Keyboard)手+最后的程序检验与校准
blog:结对项目3-功能增强型带基本函数计算java计算器
code:mengmengda123/text/blob/master/结对项目_jisuanji2.java
点评
- 分工协作不错,不过其实大家都只做到了结对编程中的分工。但是结对编程,特别是坐在一起的结对编程,更多要强调的是协作,目标:最好的项目和代码
- 可惜他们的代码提交到github的时候,也是没做好,这点建议大家都去围观下
刘美思和张甜甜
那组,找她们学习,照猫画虎就行,至少能提交完整的项目 - ps,这组有放结对编程的照片哦,