写在前面
嗯,首先是java,这学期第一次oo作业布置下来的周末才开始看的,第一次作业因此写得有些手忙脚乱。不过大概看了一遍后发现比c好用,入门更简单吧,好多操作直接import一下就能用了,码代码的时候只需大概想想实现思路就好了,还是蛮好用的。
第一次作业
Metric的度量
程序的类图
分析
第一次写得一般般,然后我出的bug是把ERROR复制的时候复制成了ERRO,跪了一个公测点,(我再也不乱复制不检查了)。不过发现别人正则表达式写错了。这些都是些小的细节,注意一点就好。(一定好好检查)我自己写的时候面向对象的思维还不太成熟,只是像之前写函数一样分成了几个class,没完全把多项式封装好。然后通过第一次互测发现测试数据一般找不出什么bug,仔细阅读他人的代码才是最好的方法。。。
第二次作业
Metric的度量
程序类图
分析
第二次作业结合第三次作业来说,没有太好的考虑程序后续的可延展性?就是在做第三次作业的时候发现这次作业不太好进行调度策略的修改。第二次作业我采用的是离散的通过逻辑判断同质请求,因为写着比较快,并未采用时间的模拟。这次作业没出什么大的问题,但电梯类的作用没有体现出来。主要的操作还是在controler里实现的,可以将电梯的状态进行封装,但因为这次电梯的状态的重要性并不能体现出来,而且还是开始的设计不太好,所以做成了这个样子。然后就是为了避免crash和简单的判断error,学了学try catch,嗯,确实挺好用。
第三次作业
Metric的度量
程序类图
分析
这次作业确实吃了很多亏。首先是发现上一次作业的设计思路难以延展,就得重新进行设计。最后我选择了进行时间的模拟,这样的话,程序比较直观。但编写过程中因为对指导书的理解问题,进行了茫茫多的debu和修改才弄出来。稍微有点赶,所以忘了点东西,比如大数输出的处理。其实第二次作业我就做好了,后面写着写着就忘了,直接把时间强制转换成了int,没用printf结果就被找了个bug。还有就是因为和上次比较相似,readme就是大概改了一下,没认真写好。然后就被别人找了INVALID和SAME后输出的request的格式问题(只是把指令处理好了输出,readme没写清楚应该是什么格式。。。)嗯,以后一定认真对待的。还有就是以前一直认为readme是限制测试者的,其实通过别人给我找的一个没有有效输入的情况的bug。我认识到了readme应该写成给一个什么都不明白的人教他使用程序的这种感觉。这次测试起来也确实比较难想数据。除了测试树外,特殊的情况太多了,还是和别人讨论了下可能的情况才弄出的测试数据。经过量化分析,这次的调度类的嵌套太多,以后应该注意。
总结
在写代码前一定得好好的考虑设计的问题,第三次作业就是在实现的时候发现考虑掉了很多的问题,在已经完成的程序中嵌套添加了太多的内容,导致其变得复杂。然后每个项目最好还是有工程化的思维吧,就想第二次和第三次作业,虽然第二次写得很容易,但只能单一的解决特定的问题,到了第三次作业就特别不好修改代码,只能重写大量的方法,修改思路。一定不要立刻上手编码,先好好想想再说吧。。。