一周三个A7项目小结

来源:互联网 发布:淘宝主图视频制作软件 编辑:程序博客网 时间:2024/06/11 02:52

上周的三个A7项目小结

   

前周的三个A7项目结果都出来了,一次性成功了两个,另一个重提交后也成功了。先写点小结先,那一周最大的感觉就是眼睛好累,宿舍睡觉很舒服...

    一直人品巨低,投标屡次不中,那个批次投了四个A7use case都中了,全是一周的项目,获悉后于晚上十点多又将电脑拿到了东七海外实验室,开始了那周的海外组的传统“包夜”生活。考虑到一周做四个相互间没任何关联的项目对于我这个半新半旧的人来说有一定难度,于是转手了一个给晓龙,一周做三个,对我来说也是一个不小的挑战。

    第一个项目的需求是更新help text,即当用户点击程序的一些tab时,程序下方的导航条会显示该tab的标签。后来看了一些代码后发现这些help text是通过获取当前panel的标题得到的,因此想到了一个方案:要想更新程序下方导航条信息的help text,首先要更新标题。但需求里并没有说标题也要同时更新,于是向对方提问,对方同意了这个方案,但对方在回复的同时又增加了一些需求,就是要对整个A7 Applet里所有tab都要实现这样的功能,这样的话工作量就太大了,我当时按照需求里提到的去做就已经修改了20多个文件,如果全部做的话估计要修改40左右个文件,而且更新help text的这个方法在基类里是没有的,必须单独修改各个类。最复杂的是写UI测试,如果要把所有的tabs都遍历一次,那这个测试是有点恐怖的。于是我又向对方提问说我只按照需求里提到的那部分做,并询问对方在写UI测试时是否只需遍历一部分tab就行了,最后对方也同意了这个方案。但在最后的实现中,我发现这个项目的代码修改很繁琐,不知道是不是因为我的方法有问题。当时对这个项目的结果不是很乐观,但是这个项目还是一次性成功了,从这个项目里我发现和对方的交流沟通是很重要的,有时候对方给了一个需求,其实他自己都不太明白需要最终达到一个什么效果,和对方交流了很多次,由于我们和美国的时差,为了及时得到答复,一般都是在半夜给对方发邮件,就算这个项目失败了,至少从中锻炼了自己的英语交流能力,呵呵~

   第二个项目需求是在一个筛选对话框里增加一项功能,即在筛选resources的同时也要将与其关联的tasks筛选出来。这个筛选对话框是可以在很多panel里点击出来的,但只有在Resources Load里才有resourcestasks的对应关系,所以我想这个有特殊功能的筛选对话框只能在Resources Load这个panel里点击的时候才会出现,因此可以通过一个内部类继承那个普通筛选对话框的类来实现,这一点要感谢何理的指导。但是对于那个筛选功能也需要重新实现,因此还需要一个内部类继承于实现筛选功能的那个类并覆盖其方法。但是,这两个内部类需要用到父类的某些变量或方法是私有的,不能访问或覆盖,因此只能修改父类里相应变量和方法的的访问权限,将其修改为protected,我认为这种修改并不会造成其它的副作用,我想可能是因为设计者最开始设计这个类的时候没有考虑到这些因素。但是要实现这个需求,我认为必须得这样改。后来的结果是这个项目第一次被判失败,是因为一个很小的失误,粗心所致,后来不到10分钟就修复了这个问题,重提交,success!

   第三个项目是我做的三个项目里价格最高的,但我却认为是最简单的,我想这就是海外项目的偶然性,在项目难度相差不是很大的情况下,价格有时候并不能说明什么。这个项目是要求改进一个功能,原有功能是在一棵树中只能选择一个节点添加到另一棵树中,现在要改为可以添加多个节点,并且两棵树可以相互添加。check单个节点的方法是在父类里实现的,因此要在子类里将其覆盖以实现check多个节点的需求。而且还要在子类里添加一个数组,用来存储check的多个节点,由于将一个节点添加到另一个节点需要经过好几个方法,因此修改的部分还是挺多的,但基本上是遍历数组中存储的节点。当然由于单个节点的存储添加有特殊性,所以在处理多个节点的时候还有一些其他的细节,但都不是很难。

   实验室做海外A7项目的xdjm们都知道,功能的实现离曙光还很遥远,后面的UI测试往往让人内牛满面...个中体会我们都有感受,就不多说了。由于这次三个项目的代码修改量都很大,所以在checkstylefindbugpmd时也让我花了不少功夫,但这些功夫让我在编程规范方面有一定收获,相信很多人也已有体会,不多言了...

原创粉丝点击