OO第三次博客

Posted .Stay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OO第三次博客相关的知识,希望对你有一定的参考价值。

调研


??随着社会上各公司业务的发展,项目越来越多,越来越大,复杂性也越来越高。查找一个BUG变得越发抓狂;新人熟悉一块代码也变得越发困难。有的时候顺手写下的一行充满坏味道的代码,可能当时不会出现什么影响,而且当事人也十分清楚自己写的东西。但是,当日积月累之后,这种坏代码越来越多,整个项目就变得混乱不堪,牵一发而动全身,各种错误,修复了这影响了那。久而久之,规格化代码就成了不可或缺的一部分,其重要性不亚于代码本身。
??而要解决前面说的这些情况,必须要有一个规范来进行约束。不以规矩不成方圆,而且,这些规范必须也要有比较持续稳定的代码审核机制来支持。所以,当下规格化设计越来越受到人们的重视。

规格bug以及原因


??三次作业下来,总共被挑出1个规格相关bug。这个bug其实跟规格本事关系不大,如下:

\*
 *@overview:
 *\ 

??帮我测试的同学认为这里要写在同一行,而不是三行,理由是课件上是写在同一行的。其实当时的初衷是这样写能够让对面看的时候轻松一些,岂料想被报了一个bug……言归正传,虽然jsf规格方面没有被挑出过多bug,但这并不意味着自己的jsf足够规范

前置后置例举及改进


前置条件相关

名称 Before After
??尽量使用布尔表达式?? [email protected]:long类型的wait_time?? [email protected]:wait_time== long type
?? 过多使用自然语言 ?? ?? @REQUIRES:int类型的pos_x ?? ?? pos_x == int type ??
??缺失?? [email protected]:None?? [email protected]:sc!=null??
??考虑当前方法所使用的某个属性的范围?? [email protected]:this.state == int type,this.id==int type?? [email protected]:0<=id<=99,0<=this.state<=3??
??构造方法中传入的某些对象型参数应有效?? ??略?? [email protected]:taxi_gui has been initalized??

后置条件相关

名称 Before After
??布尔表达式?? [email protected]:\result为long类型?? [email protected]:\result == long type??
??从未使用谓词逻辑?? ??以出租车数组的初始化为例?? [email protected]:\all car[i].stats;0<=car[i].state<=3??

功能性bug


??这几次作业功能性方面一共被挑了三个bug。

  • Loadfile文件由于在读文件内容时用得while(true)循环,没有控制好跳出循环的条件导致crash
  • Loadfile内的出租车位置初始化没有readme说明清楚只能在程序开始时使用,导致在程序开始后使用时出租车随机走的下一地点已经确定,即出租车被设定在指定位置后仍旧会按着上一次确定的下一地点走。
  • 第十一次作业由于内存问题无法实现可追踪出租车行驶关闭道路。对于这一bug,需改变程序结构,改良一些不必要的数组的大小 。

心得体会


??在写每个方法前,都会先确定该方法需要的参数,由此便确定了前置条件;接着,思考该方法的目的,进而确定modifies;最后思考该方法执行后的效果来确定effects。三次作业写下来,不再有前两个月的写代码时那种山一般的感觉;反之,这三次的代码更注重培养对于细节把控的能力,以及对规范化设计思想的理解。

以上是关于OO第三次博客的主要内容,如果未能解决你的问题,请参考以下文章

OO第三次博客

oo第三次博客

oo第三次博客

OO第三次博客

OO第三次博客

oo第三次博客