242
社区成员




迭代过程中的变化:
对整体架构产生较大影响的迭代变化有两类:增加新的类 及 增加接口.
增加新的类:
起初的架构设计中,并没有 Method
类,但随着不断迭代,需要处理的指令越来越多,如果依然选择将处理指令的过程放在 Main
类中,则会导致糟糕的代码风格,降低代码的可读性,拿不到checkstyle的分数,因此笔者选择新增 Method
类;
**后续的迭代中,为满足题目要求,笔者又陆续新增了 RegularBot
、RecoverBot
、ReinforcedBot
、RegularEqu
、CritEqu
、EpicEqu
、Shop
类,值得一提的是,笔者使Bot相关的三个类继承 Bottle
类,使Equ相关的三个类继承 Equipment
类,这有助于减少代码的冗余,且方便统一管理;同时,笔者采用单例模式实现 Shop
类,这可以保证程序执行过程中 Shop实例 的唯一性;
增加接口:
笔者定义了Commodity
接口,并使Adventurer
、Bottle
、Equipment
、Food
实现该接口,这有助于所有价值体的统一管理。
方便更精准地定位Bug位置。通过构造相应的测试用例,可以将Bug位置精确到某个方法;
不可过度依赖Junit。很多时候,Bug是由于编程者错误理解了需求导致的,这靠Junit显然是不可行的;此外,一些很细微的错误,在构造的测试数据覆盖水平有限的情况下,是很难通过Junit发现的。归根结底,提高编程能力才是避免Bug的最佳路径。
第一次接触面向对象类的语言,真的时常惊叹于Java的便捷易懂。面向对象的设计模式,极大地简化了编程者的工作,有助于减少Bug的产生;这种模式也十分方便程序的迭代,不论是同一位编程者在不同时间的迭代,还是不同编程者之间的合作开发,Java的清晰明了的特性都大有裨益。暴打C语言好吧(doge)
架构设计乃重中之重,所以一定要好好设计。一方面,好的架构有助于减少代码量,也有助于使代码模块化,低耦合、高内聚,方便了个人;另一方面,好的架构让人一看就懂,便于后续对代码进行增删修改。具体建议:有意识地将不同的Class分类,比如,管理类、执行类......
引导学生多多使用OO平台的讨论区,而不是在微信课程群里提问,这样有助于统一处理共性问题,方便学生,也方便助教和老师;