C++程序员工作1年的总结与思考

      还有4天就是我进公司满一年的日子,想想一年前的稚嫩,到现在的稚嫩,只能说,越学习越觉得自己的卑微。

      我准备从多方面来回顾与总结这一年的工作。由于是公司内部有保密协议,只能是笼统的总结。

      公司主要是做CDP备份业务。我主要负责的是客户端C++这块。


一、工作任务:

1. 独立开发了一个类似于进程管理器的简易版(记录特定进程的CPU, MEM, IO)。【练手项目】

2. 客户端代码的维护,主要以解bug为主。

3. 客户端模块的开发。

4. 客户端安装包的打包。

二、涉及技术:

1. windows win32. 开发, Linux 开发。

2. windows, linux跨平台。 Cmake。

3. Inno Setup脚本。

4. Linux的shell脚本,windows的.Bat脚本

5. 客户端状态机异步模型、多进程通信模型、多线程模型、socket编程。

6. UML建模,需求分析

7. 项目管理, WBS

三、遇到的问题及解决对策:

1. 如何快速阅读大段代码并了解其内容

      第一次阅读客户端代码的时候,所有代码加起来有接近4万多行,瞬间感受到自己陷入一片汪洋大海中。后来通过调试、画UML时序图和状态图、问原作者,逐渐知道了代码的各个模块的内容,并通过解决BUG增加了自己的掌握代码的信心。

2. 如何进行开发和安排任务

       遇到一个新需求要进行开发时,如何进行开发,这个问题很重要。

       最重要的是做好需求分析,明白为什么要有这个需求,现有的业务能不能覆盖这个需求?如果能覆盖,就不需要再造轮子。如果不能覆盖,就要思考这个需求的核心是什么。明确核心之后,下一步就是进行技术预研,选择好想用的技术,然后就是设计和WBS了。当然如果有条件的话最好有技术和设计评审阶段。设计的时候要将可扩展性考虑进去。

3. 编码中遇到问题时怎么解决?

       我一般的解决方式是先找文档,一般是

·http://www.cplusplus.com/

·http://stackoverflow.com/

·MSDN

·google

       文档还解决不了或者搜索的时间超过2个小时还没有头绪,就只能问同事了。

四、工作1年的反思

1. talk is talk, code is code.

       工作中代码很重要,沟通交流也非常重要,能节省很多时间。

2. 慢就是快

       花时间做好设计比一上来就直接编码虽然看起来费工夫,但是这种设计一旦做好了,后期出bug的可能性小,bug即使出现修复也很容易,而且便于新同事接手及培训新人。

3. 模块化很重要、重构的力量

       重复造轮子是很没有必要的。如何把已经有的轮子很好的组装起来,如何把之前复杂的逻辑拆成模块便于可以任意组装,这些都是需要思考的。这点也是需要做的。

4. 定位问题、调试的能力

     遇到问题时,资深的工程师能够凭借经验直接猜测可能问题出现的地方。我只能根据现象,通过排除法单步调试,逐步解决问题。这个方法很笨,效率也很低下。下一阶段,解决bug之后,要进行总结,如果遇到相同的bug要找到共性,以后遇到问题了,就可以进行类似的推断,这样就不必每次从头开始单步。

     调试能力很重要,windows与linux都需要掌握,尤其是多线程、内存泄露方面的调试。

5. 学好英语写作

      一手的资料大多数都是英语,目前自己能够做到在阅读英文材料的时基本了解作者的思想。但是如果让自己写出来,你能重新写出来这个资料么?如果有问题想请教这个作者,能用英语准确的写出你的问题放在论坛上或者写在邮件里么?

      做技术不是闭门造车,是需要交流的。缜密的逻辑、好的文笔是很重要的。如果遇到大牛,在与他沟通时还要靠翻译,这不是很可笑的事情么!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容