BUAA-2023秋季OOpre-课程总结

一、架构设计

二、架构调整及考虑

       从第一次作业到最后一次作业,我对代码的主体架构并没有进行大的调整,主要是通过新增类以及在原有的类中新增方法或修改方法来满足作业的需求。之所以这样做是因为单就作业而言,不调整架构仍可以满足作业要求。当然,原来的主体架构并不完善,其在后几次作业中开始显现出一些不足之处如以下几点:

       1、没有充分运用接口,导致在处理与价值体相关的指令时,对于不同的价值体的有些相似度很高的代码重复写了几遍。

       2、对代码的层次化管理做的不是很好,整个代码的组织架构可能不是很清晰。

       3、一些类的功能重复度较高,可以将其抽象出来以减少重复叙述,提高代码可读性。

三、使用junit的心得体会

      刚开始使用junit主要是为了通过作业对于测试代码的检测,但随着作业的不断推进,代码规模、方法数量和分支数量等都有了很大的增长,而在这个过程中我逐渐认识到了用junit写测试程序对于debug的重要性。

       由于junit可以具体细化到对某一个方法进行测试,因此如果在debug的过程中无法确定是哪个方法出了问题的话可以通过运用那些已被验证无误的方法来进行junit测试以观察哪个方法的结果出现了错误。只要测试的数据足够全面,可以覆盖方法的所有分支,那么通过assert的判断来确定bug所在位置还是比较容易的。而在写junit测试程序时,一定要注意分支覆盖率,因为错误代码很有可能就隐藏在没有被测试到的那些分支当中。总而言之,使用junit编写测试程序来检查代码在大多数时候还是比较高效的,只要能熟练运用就会对debug大有帮助。

四、学习oopre的心得体会

       在oo先导课中,我初步了解了面向对象程序设计的核心理念和基本原则。通过与之前所学的面向过程语言如C语言进行对比,我初步理解了面向对象编程与面向过程编程的不同。首先,面向对象程序设计以现实世界中的对象为基础,将数据和操作封装在一起,形成具有特定属性的对象。这种模型更接近现实世界,有助于提高代码的可读性和可维护性。其次,面向对象程序设计鼓励开发者使用类和对象来组织代码,通过继承、多态等机制实现代码的重用和扩展,提高了程序的复用性和灵活性。而这些都与之前所学的面向过程语言有很大不同。

       而除此之外,对作业进行迭代开发让我深有体会。以前的编程作业都是一次性的,不需要考虑新增需求,因此只要能解决问题需求即可。但oopre的作业却是在上一次作业的基础之上新增指令,这种迭代开发使我明白了在写程序时一定要考虑代码的可扩展性,不能只考虑眼前,要为之后可能的扩展做好准备。我觉得这种思想在将来的工程实践中也是很重要的。

       通过这几周每周的作业,我初步感受到了这门课的压力。不过我觉得这种每周进行迭代开发的方式可以帮助我们更快掌握面向对象编程的方法,同时对面向对象编程有更深刻的认识,虽然确实有一点累。

       最后,写测试程序是很重要的,我程序中的很多bug就是在用junit编写测试程序的时候测出来的。但构造一个好的数据样例也很重要。

五、简单建议

       在课上可以对之前的作业进行一些讲解或者展示一些优秀代码,这样有可能会帮助学生更好地完成之后的作业。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值