1. GIT本地仓库与远程仓库

    很多初学GIT的同学对GIT的本地仓库和远程仓库无法做到很好的区分,我就画了一张图,来阐明他们之间的关系:

    2017/02/27 Tool

  2. 看见自己的成长

    时光飞逝,光阴荏苒,似水流年的岁月一去不复返,工作四年多的时光犹如白驹过隙。回顾这四年的路程,有过为焦虑而做的职业改变,有过为梦想的拼搏,也有经历暴风雨后的顿悟和反思。经过四年时间的磨砺,我变得成熟、自知,习惯性的自省和逐渐培养的自律,让我从随波逐流的少年成长为了拥有个体思想的青年。

    2017/02/27 Think

  3. ThreadLocal 原理探究

    ThreadLocal 的作用: This class provides thread-local variables. 提供了线程级别的本地变量。

    2017/02/16 Java

  4. MapStruct 代替BeanUtil 和ModelMapper

    Object mapping 的技术分类: 运行期 反射调用set/get 或者是直接对成员变量赋值 。 该方式通过invoke执行赋值,实现时一般会采用beanutil, Javassist等开源库。这类的代表:Dozer,ModelMaper 编译期 动态生成set/get代码的class文件 ,在运行时直接调用该class文件。该方式实际上扔会存在set/get代码,只是不需要自己写了。 这类的代表:MapStruct,Selma,Orika 主要框架性能对比: 每秒钟执行的object mapping越多越好。 明显可以看出通过在运行期进行反射的方式执行,性能远不如编译器生成class的方式;

    2017/02/15 Java

  5. 我对负载均衡演变过程的理解

    之前看到SLB、VIP、LVS、VIPServer这些很相近的名词总不能很好的进行区分,不知道这些在负载均衡领域具体的使用场景,我期望通过这篇文章,帮大家梳理一下这些名词的区别。我们从一个域名的访问开始,挖掘一下我们的访问链路上到底出现了什么,如果业务更复杂,我们的系统改怎么演变。

    2017/02/10 Middleware

  6. 追求精致生活

    精致生活与金钱无关,避免懒惰,加强自律,拜托穷人思维,提升品质,体面生活。

    2017/01/02 Think

  7. 创业,离别

    今天2016年8月19号,我结束了为期657天的上海创业旅程,但今后无论在什么环境从事什么岗位,我的创业心态不会变。这次的离别没有来时的兴奋与激动,也没有不解和埋怨,一切都显得那么平静,宛如无风的湖面。也许是我该反思的都反思过了,也许是经过了阅历而让自己有所成长。依稀记得上一次因离职的呈现出悲情满面的场景,凄凄地写下了离别书以慰藉我视如珍贵的友情,现在看来当初略显稚嫩,但一切都是真实情感的表露,也许是我因为多情,有道是“多情自古伤离别”;而如今,没有了这种眷恋之意,经历了创业的风风雨雨,让我的生活变得略显粗糙和沧桑,不过能遇到一对不多的朋友,为真正梦想无私付出的人,还是挺值得敬佩的。

    2016/08/19 Think

  8. Task混用ThreadPool导致无限等待

    现象: 生产环境商品打标异步任务提交任务后,任务没有被执行;查看日志,没有异常日志抛出。 初步猜测: 可能是队列出现了饱和或者死锁,但是如果出现了饱和,我们设置的线程池设置的饱和策略是通过主线程去执行,为什么主线程也没有执行呢?

    2016/08/17 Java