下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件设计:结对编程:中小学自动试卷生成程序分析

作者:乔卿     来源: https://www.cnblogs.com/hnu2017/p/11553475.html点击数:882发布时间: 2020-04-13 15:57:28

标签: java编程软件工程软件开发

  结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。

  结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情--尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

  结对编程:中小学自动试卷生成程序分析

  相较于个人项目着重培养独立解决问题的能力而言,结对编程提供了一个共同进步的机会。通过分析对方的代码,我们可以经由对方的优点而见贤思齐,可以经由对方的不足而互助共勉。现在,我想谈一谈我对志豪同学工程文件优缺点的理解。

  我认为,实现需求是软件开发的第一步,在这一点上志豪同学几近完美。他不仅仅是实现了逻辑层面上的出题功能,也没有满足于不够便利的命令行输入,而是做出了友好度更高、可用性更好的图形用户界面。密码输入时做暗文处理、切换类型时按钮“三选一”、一键切换账号、“生成试卷”按钮提示试卷类型、Console同步输出、使用相对文件夹输出txt文件,这些细节无一不体现出他的设计之用心。也正因于此,软件的使用体验很是出色。金无足赤,我认为如果生成试卷之后程序能够弹框提示,那么会更加完美。txt文件中题目没有标明题号,也是一个小小的不足。

  谈完使用体验,现在回到代码本身。我认为代码所体现的面向对象的编程思想很值得学习。用不同的类分别表示登录窗口、账号匹配功能、出题功能、出题窗口与类型切换窗口,通过创建对象、事件处理、方法调用等方式实现功能之间的切换,这是非常棒的设计理念。GUI各类组件的合理使用与调用同样体现了设计者设计之巧妙,程序中的异常处理体现出设计者扎实的java编程基础。很惭愧,我没有设计图形用户界面,而是在代码美化、性能优化上多下了一些功夫,所以我或许更能注意到一些细节并提出一些改进建议。希望共同学习进步,取长补短,力争在接下来的结对编程中设计出更加出色的项目。

  对《java编程思想》的研读帮助我养成了比较规范命名习惯,习惯上类的首字母大写,变量与方法的首字母小写,辅以驼峰式命名法,即用大写字母标记每一个逻辑断点。尽量取有意义的名字,比方说实现账号匹配功能的类我更倾向于取名“AccountsMatch”,实现出题功能的函数我更倾向于命名为“setQuestion”。此外,我认为仅处理error而不去重视warning是一个比较不好的编程习惯,考虑到代码中仍未处理的warning大多是一些无用的import,我更推荐删去这些import。同时,我建议在代码中添加更多注释以增加可读性,这样在结对编程时会更加顺利。除此之外便是一些算法与数据结构上的完善,比如,在出题功能的实现过程中,我更推荐使用数组存储操作符,出题时取随机数作为索引会更加方便。

  两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。

  在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程