工作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. 编码中遇到问题时怎么解决?

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

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


四、工作1年的反思

1. talk is talk, code is code.

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

2. 慢就是快

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

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

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

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

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

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

5. 学好英语写作

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值