Unit4 总结 & OO课程总结

李从容-22373301 学生 2024-06-15 09:53:28

Unit4 总结

正向建模与开发

首先,什么是正向建模?

一句话,就是”Think twice, code once."

先设计,再开发。这其实是从U1到U4一直强调的。当然,这在U4达到了顶峰。

但是,在具体实践中,也会存在问题:设计出来的架构不是这儿少一块,就是那儿不太对。到最后,还是写完代码重新画UML……

荣老师说:“菜是原罪!”

当然,即使菜,先大致设计一个框架,不要太注意细节,对整体的coding还是很有帮助的(就算这个框架并不太行,也至少有助于清晰思路)

架构设计

img

这次的整体架构感觉还是较为清晰的:

  • Lib:就是整体的图书馆,其实我的Lib更多是一个领导人派发任务的功能,下面三个就是具体实现
    • AppointOffice:负责预约的具体op
    • BorRetOffice:负责借还的具体op
    • BookDriftCorner:负责漂流的具体op
  • Student: 代表一个学生
  • Book:一本书,包含该书(该copy)的各种操作

Container就是设计的一个辅助类,实现了对books的封装管理。

最终代码设计与UML模型设计,我其实是“同步”实现的。先设计UML,但实现时出了问题,又改代码;写了一些代码再设计UML……可能新手村不得不这样了吧……

架构设计思维的演进

U1刚开始当然是“上来就干”,但是由于本身对词法分析那块较为薄弱,所以刚开始做的很惨,一点思路也没有,完全是瞎写一通。

于是不得不进行了设计,才艰难地行进了。

U2是前面就想了很久的架构设计,事实证明架构也是比较好的。但是在细节上设计完全不到位——很多刚开始想的很好、或者压根没想到的,在实际实现中成了拦路虎。

U3JML其实已经完全设计好了,我们压根不用设计。

U4也是很考验设计的,但是我这次还是出现了和U2类似的问题:在细节上设计完全不到位——很多刚开始想的很好、或者压根没想到,不得不又先写代码后改UML。

测试思维的演进

感觉除了使用JUnit外,主要还得是评测机黑盒测试。

当黑盒测试测不出来,但是又有bug时,就不得不进行“代码审查”了。这个过程……在多线程U2中尤为重要、尤为痛苦……

课程收获

这一学期的OO,感觉学到了不少,又好像什么都没学到。

学到了不少,在于写了不少代码(虽然可能也没多少),在写代码的时候也知道了不少具体的知识点(词法解析,递归下降,多线程,JML,UML……)

但啥也没学到,感觉也就是写写代码了?多线程学是学了,真学懂了吗?词法解析那些只是一个具体的知识点罢了。JML说是能用到,但是等到真正用到时,也差不多忘光了罢。UML也就是学了starUML怎么画,其背后所包含的“Java设计与建模的集大成者”,真的是没有领会到;过评测,只是不停地从idea到starUML的复制粘贴。

最重要的一点感觉就是,理论和实际脱节了。课上老师讲的很好,也讲了不少思想与实际工作的经验;作业设计的也很好,锻炼设计思维与代码能力。但是,在课堂上学不到有利于完成作业的知识;在作业中体会不到课堂上所讲的思想。

当然,荣老师说“一百万行代码量的程序员和十万行代码量的程序员水平就是不一样”,或许,收获真的都在一行行代码里了……

...全文
51 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧