301
社区成员
发帖
与我相关
我的任务
分享首先,什么是正向建模?
一句话,就是”Think twice, code once."
先设计,再开发。这其实是从U1到U4一直强调的。当然,这在U4达到了顶峰。
但是,在具体实践中,也会存在问题:设计出来的架构不是这儿少一块,就是那儿不太对。到最后,还是写完代码重新画UML……
荣老师说:“菜是原罪!”
当然,即使菜,先大致设计一个框架,不要太注意细节,对整体的coding还是很有帮助的(就算这个框架并不太行,也至少有助于清晰思路)

这次的整体架构感觉还是较为清晰的:
Container就是设计的一个辅助类,实现了对books的封装管理。
最终代码设计与UML模型设计,我其实是“同步”实现的。先设计UML,但实现时出了问题,又改代码;写了一些代码再设计UML……可能新手村不得不这样了吧……
U1刚开始当然是“上来就干”,但是由于本身对词法分析那块较为薄弱,所以刚开始做的很惨,一点思路也没有,完全是瞎写一通。
于是不得不进行了设计,才艰难地行进了。
U2是前面就想了很久的架构设计,事实证明架构也是比较好的。但是在细节上设计完全不到位——很多刚开始想的很好、或者压根没想到的,在实际实现中成了拦路虎。
U3JML其实已经完全设计好了,我们压根不用设计。
U4也是很考验设计的,但是我这次还是出现了和U2类似的问题:在细节上设计完全不到位——很多刚开始想的很好、或者压根没想到,不得不又先写代码后改UML。
感觉除了使用JUnit外,主要还得是评测机黑盒测试。
当黑盒测试测不出来,但是又有bug时,就不得不进行“代码审查”了。这个过程……在多线程U2中尤为重要、尤为痛苦……
这一学期的OO,感觉学到了不少,又好像什么都没学到。
学到了不少,在于写了不少代码(虽然可能也没多少),在写代码的时候也知道了不少具体的知识点(词法解析,递归下降,多线程,JML,UML……)
但啥也没学到,感觉也就是写写代码了?多线程学是学了,真学懂了吗?词法解析那些只是一个具体的知识点罢了。JML说是能用到,但是等到真正用到时,也差不多忘光了罢。UML也就是学了starUML怎么画,其背后所包含的“Java设计与建模的集大成者”,真的是没有领会到;过评测,只是不停地从idea到starUML的复制粘贴。
最重要的一点感觉就是,理论和实际脱节了。课上老师讲的很好,也讲了不少思想与实际工作的经验;作业设计的也很好,锻炼设计思维与代码能力。但是,在课堂上学不到有利于完成作业的知识;在作业中体会不到课堂上所讲的思想。
当然,荣老师说“一百万行代码量的程序员和十万行代码量的程序员水平就是不一样”,或许,收获真的都在一行行代码里了……