• Home
  • Posts
    • All Posts
    • All Tags
  • Daily Summary
  • Technical Debt
  • Valuable Blog
  • Projects
  • About
    • Robin photo

      Robin

      Write Elegant Code.

    • Learn More
    • Email
    • Github

Daily Summary

22nd Dec 2017

最近高强度的工作了一段时间,暴露了很多问题出来。有专业技能方面的,也有工作方式上面的。

专业技能 这段时间主要的工作是做性能测试以及性能调试,其实就是自己审查自己的代码,看看代码有没有什么问题。这一测还真测出问题来了。

  • 多线程读写
    • 描述:在进行压力测试的时候一直都有 500 的 error。查 log 以后发现有 ConcurrentModificationException
    • 诱因:代码中有一个 static 的 Map 对象,多个线程会同时访问。但是 Map 的实现选用的是 HashMap,就出现了读写问题。
    • 解决:将实现改为了 ConcurrentHashMap
    • 启示:
      • 多线程实践太少,光有理论基础。一到真正上场就掉链子了。多写代码
  • 内存泄漏
    • 描述:在进行压力测试的时候有一次南端没有响应返回了大量的报错响应。然后就发现程序运行速度越来越慢,查了一下发现是程序有非常频繁的 Full GC。
    • 诱因:我在代码使用了一个 Context 对象将所有请求的 Request 存了起来,但是在异常情况下这些资源没有得到正确的释放
    • 修改:移除该 Context 对象,在各个方法中老老实实传递 Request 对象。
    • 启示:
      • Context 对象可以用来保存配置信息这种静态的信息,不要保存业务对象
      • 使用 Collection 的时候要注意释放对象的引用,不然容易造成内存泄漏

16th Aug 2017

前几天给老板做完了年中汇报,这才发现年初定下的目标距离完成还远得很啊。

博客

比如写博客这个事情,每月一篇的要求远远没有达到。其实说起来还是自己对知识的梳理不到位,没有一个清晰的认识,所以下笔就会感到困难。

编程语言

再比如学一门新语言这事,我是把这个加到了工作年度目标里面的:学 Golang。哎哟,给自己挖了个坑,下半年得要使劲填了。毕竟事关自己的 KPI 啊,不努力不行了。

编程之外

关于编程外的技能这件事情倒是真的学会了炒两个小菜。有闲情逸致的时候就可以下个厨。

书

啊,看了好几本东野圭吾的书,加上其他几本。非技术类书籍已经超额完成指标了。至于技术类的书嘛,哼哼哼。


27th Jun 2017

在和其他 team 合作开发的过程中,千万不要一声不吭的自己改东西。否则的话会导致两边对接出现问题。而且自己这边单方面修改,对面不一定是认同的。对于这种团队协作的任务,一定要大家协商好


25th Jan 2017

来了爱立信干了半年了,一直慢慢的修修改改。遇到过各种各样的问题: 比如以前我们经常吐槽的:刚刚在我的机器上还行的,怎么这就不行了? 在这台机器上就可以,怎么在那台机器上就不行了? 手动运行没问题,脚本自动跑就出问题了? 还有很多逻辑正确但是结果完全不符合预期的问题。

从中学到了什么呢?一切看上去毫无道理的事情其实都是有着他的原因的。 原因也许不是清晰可见,但你总可以一步步顺藤摸瓜找出来。

控制变量法是个好方法,想想你把代码玩坏之前都干了啥? 想到了?试试改回去


8th Jan 2017

  1. 想办法降速,对于知识缓慢充分的接收,不要只“已阅”。
  2. 对于知识点,不要写下来就好,要回顾,看吸收了多少。
  3. 不要尝试一次性学习太多东西,容易迷茫