2023秋OOPre总结


一、作业架构设计

1.1 作业最终形态

  • 省略版UML类图
    在这里插入图片描述

  • src文件夹
    在这里插入图片描述

1.2 迭代中的架构调整

  • 说来惭愧,我在历次迭代中并没有进行重构,主观原因当然是因为我比较懒,但也存在客观原因,在于我是在 hw5 的 debug 作业中,才第一次对重构的必要性以及代码的可读性有了一份直观的认识,但这时只剩下两次迭代,综合考量重构的时间成本及其带来的收益,我放弃了重构。我相信也有部分同学也是因此与我做出了同样的选择,因此这一点我也会在建议中提出。
  • 历次迭代中的调整如下:
  1. 在 hw3 中新增 Bag 类。
  2. 在 hw4 中新增 FightLog 类。
  3. 在 hw6 中新增 Commodity 接口和 Bottle 、Equipment 方面的继承关系。
  4. 在 hw7 新增 Shop 类。

二、junit使用心得体会

  • 直到 hw7 ,也即最后一次迭代之前,我都一直本着“代码和人能跑一个就行”的准则,向来不惮以最懒的心态去完成作业,对 junit test 都是敷衍了事。但在最后一次作业 hw7 中,我在 op23 买食物的处理时不留神将(price >= money)打成了(price > money),最终还是挂了强测的一个点,给这门课程以一个小小的遗憾作结。这份遗憾给予我对 junit 全新的思考。
  • 随着迭代的进行,代码行数越来越多,也越容易出现一些小错误;而若这项迭代的工程由多个人戮力而成,一些代码思路及实现上的前后冲突更是在所难免。此时便是junit的用武之地了。当然,若是迭代的次数不多,我们可以只对代码的关键部分进行junit测试,同时用一些特殊的数据来检验代码的整体功能,从而达成时间成本和测试收益之间的一个微妙平衡。

三、OOPre学习心得体会

  • 首先,是对面向对象思想的体会。在一些工程庞大或是要求多次迭代的应用场景下,面向对象结构清爽、易扩展、易封装的特性绝非面向过程的方法可比拟的。
  • 再者,是迭代开发这一过程的收获。关键在于编程伊始对迭代中可能出现的架构进行预判和接口的预留,达到“A good beginning is half done”的效果。而如果预判失误,我们也要勇于重走来时路,及时进行代码的重构。

四、简单建议

  • 希望课程组能越早呈现类似于 hw5 的结构清晰代码越好,尽早给同学以重构的动力。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值