P2P项目总结(三):不断的抽象,不断的重构

来源:互联网 发布:mac 酷狗添加本地歌曲 编辑:程序博客网 时间:2024/05/17 22:22

项目开发也有一个多月的时间了,从刚开始立项到后来的设计修正,几周下来软件的框架也基本上稳定了,剩下的事情就是不断的填写代码,不断的优化程序,不断的测试,但这条路却走的并不顺利。

先说说客户端,由于采用的通信协议是UDP,现在我们想把TCP的通信方式也加进去,可以优先使用TCP协议,于是在UDP的基础上,增加了对于TCP协议的处理,这样就产生了很多的冗余代码,代码需要重构,重新的抽象封装后,形成了一个将TCPUDP通信方式封装的对象,这个对象向外提供接口调用,直接负责网络通信的数据接收和发送。这样原先VOD、直播和转播调用的接口都需要重新改进,还好,这部分不是很难修改,毕竟现在的设计中客户端所需要完成的任务并不是很多,也不是很复杂。

数据服务器端的设计需要配合客户端,网络部分是相同的修改,同样需要修改VOD、直播和转播的发送端所调用的网络接口。除此之外,服务器端加入了对于直播频道和点播片源的管理,直播频道的管理因为频道的个数不会很多,所以在内存中进行了管理,点播片源很多,所以只是对于读取文件的操作做了一些封装,加了一些更适合调用的接口而已,总体而言,数据服务器端的修改也不是很大。

最后说说这个控制服务器,由于加入了TCP的通信方式,这样就需要控制服务器提供一个TCP的接入服务,而且TCPP2P的通信时还需要控制服务器配合打洞,这样修改后,控制服务器的流程变的非常复杂,当一个客户端需要点节目的时候,不仅需要控制服务器进行相应的数据管理,还需要控制服务器配合进行打洞,除此之外,UDP的接入服务,也是需要的,TCP不通的时候,还需要切换到UDP协议,这样一来,除去控制服务器自身的数据管理,单单网络通信这部分就很复杂了。

总的看来,经过一些抽象和重构后,客户端、服务器都有一定的改进,但是无论是客户端也好,服务器也罢,从整个系统来看,流程非常的复杂,有句话说大道至简,所以复杂的东西一定不是最好的,越是复杂的东西,越应该表现的清晰简单,这才是设计的最终目的,如果把一个复杂的东西设计的更加复杂,只能是一个失败的产品,只有简单才是美,抽象、重构、封装,这些都是我们开发过程中每时每刻必须想到的,要不断的修改,不断的优化,才能有最好的产品,从这一点来看,我们的项目就注定还需要修改。

原创粉丝点击