结对编程:中小学自动试卷生成程序分析
相较于个人项目着重培养独立解决问题的能力而言,结对编程提供了一个共同进步的机会。通过分析对方的代码,我们可以经由对方的优点而见贤思齐,可以经由对方的不足而互助共勉。现在,我想谈一谈我对志豪同学工程文件优缺点的理解。
我认为,实现需求是软件开发的第一步,在这一点上志豪同学几近完美。他不仅仅是实现了逻辑层面上的出题功能,也没有满足于不够便利的命令行输入,而是做出了友好度更高、可用性更好的图形用户界面。密码输入时做暗文处理、切换类型时按钮“三选一”、一键切换账号、“生成试卷”按钮提示试卷类型、console同步输出、使用相对文件夹输出txt文件,这些细节无一不体现出他的设计之用心。也正因于此,软件的使用体验很是出色。金无足赤,我认为如果生成试卷之后程序能够弹框提示,那么会更加完美。txt文件中题目没有标明题号,也是一个小小的不足。
谈完使用体验,现在回到代码本身。我认为代码所体现的面向对象的编程思想很值得学习。用不同的类分别表示登录窗口、账号匹配功能、出题功能、出题窗口与类型切换窗口,通过创建对象、事件处理、方法调用等方式实现功能之间的切换,这是非常棒的设计理念。gui各类组件的合理使用与调用同样体现了设计者设计之巧妙,程序中的异常处理体现出设计者扎实的java编程基础。很惭愧,我没有设计图形用户界面,而是在代码美化、性能优化上多下了一些功夫,所以我或许更能注意到一些细节并提出一些改进建议。希望共同学习进步,取长补短,力争在接下来的结对编程中设计出更加出色的项目。
对《java编程思想》的研读帮助我养成了比较规范命名习惯,习惯上类的首字母大写,变量与方法的首字母小写,辅以驼峰式命名法,即用大写字母标记每一个逻辑断点。尽量取有意义的名字,比方说实现账号匹配功能的类我更倾向于取名“accountsmatch”,实现出题功能的函数我更倾向于命名为“setquestion”。此外,我认为仅处理error而不去重视warning是一个比较不好的编程习惯,考虑到代码中仍未处理的warning大多是一些无用的import,我更推荐删去这些import。同时,我建议在代码中添加更多注释以增加可读性,这样在结对编程时会更加顺利。除此之外便是一些算法与数据结构上的完善,比如,在出题功能的实现过程中,我更推荐使用数组存储操作符,出题时取随机数作为索引会更加方便。
希望我们能在结对编程的学习过程中相互学习、共同进步。志豪同学编程习惯上的优点与出色的逻辑思维能力值得我认真学习,我也会不吝自己所学,提供最用心的建议。加油!
上一篇: string类