北航oopre课程总结反思

架构解释

这是最后一次迭代结束之后较为概括的一个框架。

在前几次迭代作业中,由于对层次化架构缺乏较深的理解和掌握,导致整体的结构并未成功实现层次化管理。比如在Adventure类中,并没有实现其所拥有的Bottle、Equipment以及Food,而是将这四个类单独分开来。所以在之后几次的迭代中都难以继续高效且正确地完成迭代任务。在最后两次作业中,考虑到最初架构的错误,难以实现继承和接口的操作,所以在各自的类中加入了新的属性来区分不同的类。例如在Bottle类中,用kind变量来区分Bottle的具体类,0代表RegularBottle, 1代表ReinforcedBottle, 2代表RecoverBottle。同时其特殊属性ratio则按照输入设置,RegularBottle没有ratio则将其设置成0。这样导致了整体代码复杂冗长,可读性差。其他类的是实现方法与Bottle类似。

junit心得体会

junit是自己输入相应的数据点来测试代码的正确性,并在错误的情况下,找出bug所在。但是,junit写起来较为繁琐,需要自行构造数据来测试代码,并用assert将自己算出结果与代码运行的结果相比较。如果是调试一些大问题,junit有着明显的效果,可以很好的判断出代码bug所在的大致范围和操作。但是对于一些细小的bug,junit需要编写规模大、数据点大的测试样例才可以测出来,需要投入较多的精力才能构造出来,性价比不高。当然,我们也可以通过junit来确定代码正确的部分,来排除bug的范围,以减小debug的工作量。总体来说,junit是有助于我们调试代码,帮助我们较快地找出代码上的逻辑问题等一些大问题。

oopre心得体会

从面向过程到面向对象编程之初,我对于二者之间的区别没有太多清晰的认识。起初只是认为面向对象就是将不同的对象分开处理,所以在最初的代码架构中将Adventure、Bottle、Equipment等全都分开处理,并未实现层次化。在之后的学习中,逐渐认识到了什么是面向对象编程,将操作行为归类到不同的对象当中。比如添加新的药水、新的装备等操作都应该是在其对象所属的类中,建立相应的添加方法,将其存入到各自的容器中。这是面向对象与面向过程最大的区别。

当然,在学习oopre的过程,深有体会的就是代码框架的合理性和高效性在迭代过程中的重要之处。没有合理的面向对象框架,使得在迭代的过程中,拓展新的功能十分繁琐复杂,难以避免代码复用等导致出现一些细枝末节的bug,给调试带来了极大的困难。所以好的代码框架可以让迭代事半功倍,高校高质量完成迭代任务。

同时,在最初设计框架的时候就要思考到以后的迭代,不要每次迭代都要将之前的代码全都推翻重来,这样的话,在之后的每一次迭代中,任务压力会越来越大。所以,要为迭代思考好合理的代码框架。

在迭代debug中,junit起到了很大的帮助,可以快速地帮我们找出大部分bug,极大地节省了调试的时间。

简单建议

1.在最初的oopre中,我觉得还是有一部分人对java完全不熟悉(比如我自己)。这样在第一次上课时,希望可以简单介绍一下java的基本语法和基本概念,否则第一节课难以理解,也可能会导致最初代码框架的设计出现大问题等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值