OO第二次博客总结

四月的面向对象经历了:第一次接触多线程一脸懵逼-->写出第一个多线程开心得像个刚刚学会hello world的孩子-->看着自己乱跑的电梯发愁,每次下楼犹豫要不要等电梯-->紧张刺激的互测与申诉-->天马行空的IFTTT-->终于写了一个看得过去的出租车,经过三次作业和两次OO上机,感觉对多线程的了解是相对越来越清晰了。电梯系列每次指导书出来基本都重写了,因为自己的设计实在糟糕,拓展起来实在是举步维艰;第六次作业IFTTT写的很懵逼,可能是刚从上一个系列出来,虽然看讨论区知道了要做啥,但是那几天一直感觉云里雾里的;第八次作业出租车感觉第一关还是挺友善的,因为不抽象跟现实生活贴近,但是想想接下来的SSR乘客和红绿灯,之后的几周也不会太轻轻松吧。


 

第五次作业:多线程电梯

1. 度量分析与类图

  

 

2. bugs

  回去翻自己的公测结果又被自己蠢哭,光顾着实现功能de捎带的bug了,电梯数忘了限制范围,楼层数忘了限制范围,输入格式上也有一个地方不严谨被机智的测试者抓住了,功能上还被报了俩bug。说实话刚刚看到公测和互测结果的时候很气,感觉自己好亏,冷静下来把自己觉得还能抢救的问题申诉了,其实还是自己程序问题太多,临DDL还在改核心部分代码,说到这里提一下,这次反思自己最大的问题是在还没有对指导书充分理解前就写了好多,虽然跟同学有讨论,但是关键的疑惑还是没搞懂,然而期间用简单样例的输出和其他人一样并看不出来这个问题,到周三用复杂的测时才意识到,慌忙中用git时不知道怎么操作的还把自己的代码覆盖了,直接在代码中插入了一段看不懂的git信息,最后只能把自己的倒数第二个版本交上去emm 准备太不充足所以接二连三出了很多乱子,电梯系列就这么伴随着遗憾结束了。

3. 互测

  “列出自己所采取的测试策略及有效性”,我觉得互测主要有两个方面,阅读对方的代码,不一定是为了找漏洞,学习对方代码也是很重要的;自己构造测试样例。先说前者,我一直以来拿到的作业都没有什么注释啊…对于代码阅读障碍读得很慢的我很不友善…我自己写的时候就喜欢给每个函数前加一段话,每做完一个关键判断时也加一句话解释一下这是进入了哪个分支哪种情况,起初是因为自己笨吧不给自己加注释下次接着再写时忘了上次写到哪了,总之加必要的注释是一个很好的习惯,希望pong友们不妨也多写点,注释不会直接暴露自己的bug的但是对测试者来说方便太多啦

4. 心得体会

  学OO之前,每次等电梯的时候都喜欢盯着屏幕看两眼,以为自己把电梯调度想得挺透了;学OO之后发现原来愚蠢的是我orz


 第六次作业:IFTTT

1. 度量分析与类图

   

2. bugs

  最大的bug是我以为监控目录的时候可以readme不监控子目录下的文件…感谢测试者指出。除此之外我的问题好像还很多,这次作业主要问题是线程安全,也正是由于多线程不安全时的不确定性debug有困难想复现自己一个bug也有困难。经历了一开始的几个版本失败后发现synchronized是个好东西,在不用考虑锁的优先级时,无脑加一堆synchronized就解决了而且加多了也是无害的?

3. 互测

  我测的同学写的风格、思路跟我完全不一样,用到了很多我没有见过的新方法和语句,虽然暴露了自己啃老本只喜欢用自己用过的东西的问题,但是这次互测读代码真的是一个很大的收获。


 

第七次作业:多线程出租车 Level 1

1. 度量分析与类图

   

2. bugs

  在周三有经历了一次大改后终于惊险上线了一个功能正常的版本,但是过程中发现的问题还是很多的,比如我没用gui里的最短路径,自己写的SPFA但是前期bug不断;对gui和map不熟把xy搞反了,周三的大改就是把所有的.java里的xy调整了过来,虽然之前xy反着写我也能将错就错最终让出租车正常跑起来,但是考虑到接下来作业的拓展性和之前在电梯系列吃的亏,还是啥决定大改好了再交上去;日常git出问题,用eclipse提交不行、git bash push -f也不行,还把git branch搞坏了,还好在本地还有备份,把拉取的分支删干净了重新clone终于在DDL前5min交上去了orz,以后再也不在无效的边缘试探了。

3. 互测

  终于遇到了一个佛性而温柔的测试者hhh,我测试的对象和我思路方法都相近,这里读代码理解起来倒是没什么大问题,虽然还是没有注释,但是看看同一个思路两个人实现起来的不同也能学到不少

posted @ 2018-05-02 16:58  nerdary  阅读(144)  评论(0)    收藏  举报