十月总结

来源:互联网 发布:php接口开发 编辑:程序博客网 时间:2024/04/20 01:04
 

1用户二层隔离的设计实现,迭代一的一个重要的任务是在AP中实现基于用户的二层隔离。目前的AP中已经实现了基于VAP的二层隔离。在新的AP中添加了用户组的概念,当用户上线以后,通过RADIUS服务器会下发与用户相关的配置。其中包括用户的组ID,组内隔离标志和组间隔离标志。用户隔离在VAP隔离之后实现,上行报文进过了收包流程,进入桥处理函数,在桥中判断该数据包的目的地址是否是发往空口的报文,如果是则要首先进行用户隔离的判断,再选择是丢弃还是发送。对于单播的情况,在隔离的情况下,丢弃该包。对于多播,在隔离的情况该包只发往上联口。这个功能看似简单,在实现的过程中却遇到了很多问题。

   通过这个功能的实现,我对于华为的软件项目开发有了比较深入的了解。首先在迭代开始的前几天首先要进行方案设计和评审,因为我是第一次作项目,对于整个功能还不是很了解,方案设计是由同事来做,并召集测试线的相关人员一起来做方案评审,评审的时候除了专家PL等要参加同时参加的还有测试组的同事,测试组了解方案后,才能充分的了解功能需求,并做相应的测试用例的设计,同时作为功能实现者的我也参加了方案评审。当我理解了整个功能是如何实现的时候,我还要向方案设计者做方案的反澄清,保证自己的理解和方案设计者是一致的,这样才能保证执行不会产生偏差。

   在方案设计完之后,进行详细设计阶段,详细设计完全由我来写,要根据方案设计,将整个设计工作详细说明到伪代码的级别。详细设计写完之后,如果做的足够充分,基本上说只要翻译中实际代码就可以了。在这个过程中要注意了,如果与外界有接口,一定要想清楚,双方的函数是如何交互的,参数应该如何处理更加合理,数据结构都有哪些。在这个阶段一事实上要把接口都定下来,以免以后反复改动,做很多重复工作。当然这个过程不是一蹴而就的,即使再怎么仔细,到了后来发现还是会有改动,这说明当时对需要的理解还不到位,对功能的理解还不够成熟。

   二层隔离的功能都是在原来VAP隔离的基础上做的添加,首先应该对原来的功能进行详细的研究,测试,这样既为自己提供了一种方法,同时也知道了将来功能完成之后该如何测试自己的代码。

   在方案设计,详细设计完成之后就是实际的编码了,有了前面工作的保证,编码过程比较快,但要写出规范的代码,对于新员工来说还是有很多要学习的地方。编码结束之后就是自测了。因为自测的时候外部接口还没有生效,所有的外部接口都要打桩,并且编写sysdbg命令进行自测,自测是个关键的过程,会发现很多问题,有的是功能设计的时候没有考虑到的问题,有的是编码过程产生的错误。编码的问题可能经过多次修改就可以解决,但如果发现设计的时候有问题,那么这个问题就比较难解决。

  我在自测阶段遇到了一个设计上的问题,本来以为所有的空口数据都会经过桥进行转发,后来反复自测发现功能没有效果,经过一步步的跟踪发现实际同一个VAP下的二层转发,数据根本就没有进入桥。这个问题最终影响了整个功能的完成,目前   PL已经将这个问题推到迭代二来实现。

  基于用户的限速功能的实现。AP中原来的限速包括VAP限速,VAP client限速和动态限速,这次增加了基于用户的限速,也即对单个用户进行个性限速,个性限速是在用户上线后由服务器根据配置下发下来。限速的实现也是在桥转发之前进行的,与隔离的位置在相同的位置实现。最终的目的是保留原来的VAP限速,VAP client。动态限速和个性限速三者根据优先级选择其一。

   两个功能的实现中遇到最大的问题是在测试部分,当测试的时候发现发像自己的方法没有问题,但却不能满足功能,这时候该如何解决。首先要保持头脑清醒,不能一遇到问题就乱了方寸,自己将问题描述清楚,发现不能短时间解决问题,要影响任务进度的时候,要马上求助,而不要自己苦苦的思考,有些问题可能别人的一句话就可以解决你一天思考的困惑。工作中在规定的时间内解决问题,完成任务,保证总体进度是每个员工必须遵守的规则。

   工作不是学习,没有上学期间那么多的时间让你来学习。这就是结果导向,这就是企业生存的法则。想一想如果没个员工浪费一个小时,串起来,整个进度可能推迟一个月,两个月,那么产品可能就已经失去了市场。再开发出来也已经失去了意义。

   如何安排工作中待办整改的优先级。在工作中往往要遇到的很多的问题,这个时候如何合理的利用时间,安排工作,提高效率显得格外重要。每天必须做的事情而且花费时间少的工作应该首先做。完成这些工作之后,集中精力完成今天的主要工作任务,然后再处理那些可能需要几天连续做的事情。当遇到问题进行不下去的时候,一定要快速求助,并分析风险,向领导提出。