您的位置:首页 > 其它

我的CSDN情结--工作一年总结

2013-05-14 20:45 218 查看

我的CSDN情结--工作一年总结

工作一年了,我记得特别清楚,2012年3月22号开始实习,6月29号毕业典礼,7月1号我就正式上班了吧,算是正式工作了,工作一年的时间里,迷茫,彷徨,抱怨都有过,甚至想过交钱离职,但这些都是暂时得,首先想对自己说的是,对得起自己,时间没有浪费。自己也成长了很多,想想去年的这个时候,再想想现在,一切都在不言中。

首先大致回顾下一年来自己学到的知识和做过的东西吧:

实习的时候(2012年7月前)

做了NGOD的客户端和服务端程序,基本算是socket的入门吧,了解NGOD视频点播的基本流程;作为一个在学校没做过什么项目的童鞋,不是科班出身,没正儿八经学过什么编程语言的我来说,虽然难度不大,但是对于那时候的我来说也不轻松;公司的开发平台是linux,之前linux这玩意也只是听说过,没有用过,连基本的cd 命令估计都不知道,其实那时候自己的C++水平也只是看了几本书,把书上的例子自己跑了几遍,孙鑫的VC++深入详解看过2遍,经常看些面试题而已,没有什么实际的经验。最后能完成这个实现的项目自己还是蛮有成就感的,哈哈。

正式毕业后:

在CDN组的时间(2012年7月-2012年8月)

1. 同步的客户端及服务端对大文件传输的支持;

这个算是我的第一个正式任务吧,之前目的是想取代SYNC使用自己的同步软件,我做到的程度也仅仅是几百M级别的文件同步,算是个小工具吧,但是基本上是不能使用到具体环境中去的,作为一个新手,2周时间肯定做不好,其实再多的时间也不行,哈哈,第一次也只能做到这个程度了,不过算是开始做东西了吧,开始真正使用C++编程了吧,其中也学到了关于文件操作的很多知识,还有自己最深刻的体会就是自己的想法,想法很重要,做一个东西,自己的设计思路很重要,记得当初自己修改了很多种方案,还有那时候,在开发的过程中遇到了什么问题,自己都记录了下来,虽然这些成长笔记现在看起来觉得很傻B,但是那时候的确对自己帮助很大。这是一个很好的习惯,可惜后来没坚持下来;

2. 无缝时移连续调度index文件工具实现;

这个工具历时3周,最后算是完成了。具体就是模拟VSS调度时移节目的index文件,即将播完当前4小时的节目时,先调index文件根据index文件去播放下一个4小时的节目。它的机制是:向CLS发起C2定位请求,请求成功后,再向CDS发起传输请求,获取index文件并保存在本地。

记得那时候连抓包都不会,不过后来就是学会了抓包也不怎么会分析,里面涉及最多的就是接收数据,先接收HTTP头,接收多少个字节,怎么解析chuck的大小,不过现在也不怎么记得了。那时候很多就是问的小崔,一个爱好编程的小伙子。那时候了解了CDN产品的机制,不过并不是很熟悉,那时候因为公司的原因,各种苦逼,是挺痛苦的一段时间。还有那时候加班比较多,因为自己还基本是什么也不会,不会咋办,不会就问呗,这是个痛苦的过程。不管怎样,成长是关键。

3. 后来还做了一个多核超线程使用性能测试。

对开启超线程和不开启超线程的测试做了比较。

今天就写到这里,有时间继续写……

接着上次的继续写……

在VSS组的时间(2012年8月-2012年底)

首先想说的是在VSS组的时间是我最舒服,成长最快,充满动力,最幸福的一段时间。

感谢VSS组的所有成员,特别是组长,倩姐,邱姐,对我的帮助值得我一辈子感激。

刚到VSS组,做一个NPVR(内容剪辑系统)的东西,邱接给了我一个接口让我实现时移接口截取文件模块,具体是什么现在已经忘记的一干二净了,不过给我的体会是,那时候关于C++类之前的调用,类之间怎么new,怎么调用函数,自己那时候挺迷糊的,刚开始的时候真是无从下手,可是慢慢的,基本都掌握了。

后来还编写了ERM测试工具,仿照IPQAM向ERM发送消息;

还有内存测试工具的测试,每次以4M或者1314字节拷贝1G的内存,分为随机拷贝和一次拷贝两种方式计算带宽;

真正开始成长的时候是在倩姐的指导下做了一个模仿一个bo_qam的测试工具,记得那时候组长要求必须先把设计思路弄清楚,画出类图后才能开始编码,现在具体怎么做的也忘记的一干二净了,但是依稀还记得几个大类:有配置管理类、WEB页面管理类、信息临时存储类、和发送消息管理类,那时候各个类之间的依赖关系是怎么样的,现在不记得了,不过我昨完这个之后感觉收获蛮大的。做这件事给我的体会就是多听,多问,不要根据自己的想法瞎弄,因为刚开始没经验,听听老人的建议会使自己走很多弯路。

自己感觉做的最好的是和倩姐一起做了一个NGODMAN存储一致性工具,该工具是因为广州现场存在相同片源在不同VSS服务器上点播内容不一致。需要对中央和地方的文件进行校验,倩姐做中央部分,我做缓存部分,做完之后,我又做了一个第三方校验工具对中央和缓存产生的校验文件进行对比,然后记录下哪个文件那一块不同。这个东西貌似做了将近一个月吧,具体记不太清楚了,缓存测试工具就是遍历MASS盘上的文件,以文件名生成校验信息。其中里面做了增量检测,为了校验效率使用MD5肯定不合适,采用了简单的打点算法,还有就是对磁盘做了速率控制,在测试过程中,发现lseek很浪费时间。还有在测试过程中改了好几次校验算法。由于那时候做完没来的及写文档,现在好多都忘记了。哎,有点杯具,要想重新捡起来,还得好好看看自己以前写过的代码,我发现公司一般很少有文档,可能是开发任务紧还是其他原因,反正就是没有文档,我觉得自己重新看自己以前写的代码都得浪费不少时间。做这个存储一致性工具,我感觉是我自工作以来收获最大的,也是我觉得挺开心的一件事。

后来,做了一个STB的测试工具,该工具模仿机顶盒向SM发送setup、ping、teardown消息,向SM发送play和getparam消息,这个工具的目的是测试SM,SCI处理并发的能力,里面用的是异步的机制,使用的是epoll,关于异步飞阻塞的网络编程,我到时候会以一篇博客的形式写出来,因为epoll真的很强大,在研究nginx测试大并发的时候深有体会epoll的强大威力。这个测试工具用到了状态机,用到了处理时间的CPU心跳。在控制每秒钟连接用户数的时候做的比较好。该工具性能做的我感觉不错,里面没有C++里面使用的set,map之类的东西,都是用的C语言,做这个东西的时候发现自己C语言真的挺烂的,也好好弥补了下知识。做这个工具的收获是明白了epoll的使用方法,算是比较深刻的理解吧,后来在测试nginx的时候就用了该测试工具,测试2W的并发是没有问题的。这个工具算是自己独立完成的。自己不满意的是这个东西还是没有文档,哎!没安排时间,自己也懒得写。在测试nginx的时候,修改过该工具,不过虽然完全是自己写的代码,过了个年自己还是忘得一干二净。

今天就写到这里,有时间继续写吧。下面就是2013年的事了,2013年重点在于nginx,初衷是想做一个SM的集群(cluster)。

接着上次的继续写

在互动开发组(2013年至今)

一、 Nginx源码开发

作为源码开发,因为没有经验,最起码我是一点经验也没有,C语言的回调函数会看的我崩溃,还有指针,各个模块之间的关系,庞大的结构体。最起码刚开始应该把nginx装好吧,.configure,make && make install。一般源码的安装都是这样的,现在研究node.js也是如此。开发nginx源码的初衷是想利用nginx中的负载均衡,想做一个SM的集群。现在说说自己开发的心得吧,其实我是跟着邱姐一起做的,说白了,就是个打杂的。由于刚过完年,对公司各种不满意,也没有太多的心情去做,因为对公司太失望了。不过抱怨归抱怨,东西还得做不是,刚开始加上自己很少研究过源码,还第一次上这么大的源码,搞得我都想砸键盘,不过后来随着慢慢的进入状态,竟然喜欢上这个玩意了,后来了发现了一个本新书《深入理解NGINX》觉得很不错。毫不犹豫的买了,有了这本书,开发起来有很多帮助,不过刚开始的时候多难啊,都是一点点啃的。等发现这本书的时候,其实已经算是入门了。现在简单罗列下用nginx都做了哪些工作吧:

1. 使用nginx第三方模块ngx_http_qos_module,该模块是从网上下的,但需要修改部分源代码;

nginx本身不支持消息队列,可以在配置中配置连接数,超过该连接数,多出的连接会失败,这是经过自己测试的,经过第三方模块,可以将多出的连接放入消息队列中,这样在不超时的情况下,客户端请求不会出错。

2. nginx支持RTSP。

nginx本身是只支持HTTP的,经过修改源码后添加对RTSP消息的支持;

3. nginx支持长连接。

nginx是这样的,在client和nginx之间是长连接,但是nginx与server之间的连接没法区分是哪一个client发过来的,我们实现的目的是使得一个client经过nginx代理之后,对应着一个server。

4. nginx支持server发送消息到client。

nginx是不支持向client发送消息的,当nginx收到server发送的消息后会走关闭,断开连接,这时候作为一个request,向client发送消息。

5. 支持根据发送消息里的TSID,对应经过nginx后去哪一个server。

nginx自身选择server有两种策略,一种是轮询机制,一种是Ip-hash。我们是根据发送的消息去自动选择指定的server。

6. 配置多网卡,nginx根据.消息里的TSID,对应去哪一个server(IP),会根据网卡的端口使用数量进行择优选取,现在nginx已经能测试达到10W的并发量。

二、 Node.js研究:

最近在研究node.js,研究将近一周了,感觉很爽,毕竟有nginx源码研究的经验吧,轻车熟路就上手了,刚发现了一本好书,node.js入门经典,也是今年4月刚出来的,果断购买。哈哈,我还是比较幸运的,关于node.js回头我会总结,以专门的专题写,nginx也一样,感觉学到了很多东西,做了很多东西,解决了很多问题,不过现在nginx有很多东西自己还是有点忘记了,所以关于nginx的博客是必写不可。温故而知新是个很好的习惯。可惜我没做到。

上面说了很多都是自己对自己一年来对自己工作的总结,写的比较笼统,还有好多不太记得了,记得的暂时就这些,由于平时没有及时总结,都有点不知道自己做了些什么。对工作的总结就这些吧,下面谈谈自己的心得。

心得体会:

在一年的工作中,我迷茫过,彷徨过,抱怨过,付出过,也努力过,酸甜苦辣都有,环境就这样,有句话说得好,既来之则安之。还有句话说的好,如果你不能改变环境,你就适应环境。对公司的抱怨,我想任何一个公司的员工都有过这种情况,生活不如意有八九,不可能事事都很顺心。面对这种情况,我应该怎么做?头脑一热,破罐子破摔吗?反正环境就这样,那就混呗,这就如练七星拳,先伤己再伤人,得不偿失。

在一年的工作生活中,明白了很多道理,很多生活体会需要自己去悟。无论自己选择哪一种工作方式,首先我觉得应该对得起自己,在对得起自己的基础上有所收获,那就足够了。还有工作就是工作,不能因为环境的不好而不努力工作,即使受影响那也是暂时的,需要尽快走出来,还是那句话,没有能力改变环境,就适应环境。我对自己的认识是最起码半年内我还没有改变的机会,那就努力适应吧。在做任何事情之前要考虑权衡利弊。

其实任何事情都是两面的,拿游戏来说吧,首先我感谢暴雪,出了那么经典的游戏魔兽争霸,它陪伴我走过很多无聊的时间,但是我也恨他,因为它也使得我浪费了很多时间。周末有时候一天就过去了。这就在于自己把握的度了。拿感情来说吧,它会让你开心的时候很开心,也会让你痛苦的时候痛不欲生。幸福与痛苦都在于你自己。

有很多时候,自己感觉有很多想写的话,写给自己,自己成长的经历,可是那种感觉只有在当时才有,那时又懒得动手写,结果现在什么都不记得了。

2013年已经将近过半了,又到一个一年毕业的时候,又有一大批同学即将毕业,他们将走出校园,走向职场,每次看一些原创的毕业视频自己都会感悟很多,学校的时光已经一去不复返了,那种日子再也回不去了。现在我还年轻,年轻也是有时间,年轻时候真的应该好好奋斗,因为这种时光夜总会过去。

这是我工作一年对自己的初步总结,本想会写很多心得体会的东西,但是现在却词穷,不知道自己都写了什么。本以为这篇一年工作总结,我会写的很认真花费我很多精力,可是我却用了3次晚上的时间草草的就写出来了,哎!虎头蛇尾!

经过一年的工作,自己算是职场入门了,下一年我的计划是提高自己,使得自己在专业领域有很大的提高,同时应该记录下自己学到的东西,温故而知新,拿出来自己的东西给大家分享。工作忙,没时间那都不是理由,因为挤时间就如挤牙膏,在牙膏该扔的时候,我坚持用了一周,知道只要去挤时间,总会有的。以后博客会继续写,从12年5月到现在我就写了一篇博客。一年写了一篇博客,什么事,不要只想不做,咬牙对自己狠一点就做下来了。年轻的时候必须对自己严格点。

总之:对自己以后说的话就是:多看,多听,少说,多做。

我相信下一年我写年总结的时候,我能更上一层楼。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: