Java Concurrency 发表于 2016-09-13 | 分类于 Tech Java 并发一谈起并发,就离开不了同步机制、线程安全。 同步机制Java常用的同步机制有: volatile , synchronized volatile用volatile修饰的变量就拥有2个特性: 可见性、禁止指令重排序优化。 可见性保证变量对所有线程的的可见性,普通变量无法做到这点,只能通过 ... 阅读全文 »
Java Memory Model 发表于 2016-09-12 | 分类于 Tech Java 内存模型Java不像C++由程序员直接管理内存,而是由虚拟机内存管理机制管理。 以JDK1.7为例子,内存模型如下: 内存模型 程序计数器 (Program Counter Register) Java虚拟机栈 (Java Virtual Machine Stacks) 本地方法栈 (N ... 阅读全文 »
JVM Class Loader 发表于 2016-09-09 | 分类于 Tech 浅谈类加载机制本文以JDK1.7为例子,简单地介绍一下类加载的原理。 类生命周期说起类加载,就不得不先谈一下类的生命周期。主要有以下7个阶段: 加载(Loading) 连接 (Linking) 验证 (Verification) 准备 (Preparation) 解析 (Resolution) ... 阅读全文 »
Four-quadrant diagram and ROI 发表于 2016-09-02 | 分类于 Tech 四象限图与ROI读完这本《敏捷软件测试》,印象最深刻莫过于测试的象限图。 四象限图 从象限图里,可以知道测试的类型有多少种,什么时候应该执行那种测试。什么样的时候应该自动化,什么样的时候不应该测试。 ROI (投资回报率)衡量某种测试是否值得去做自动化的关键指标就是ROI (投资回报率)。A ... 阅读全文 »
NoSQL Distilled 发表于 2016-02-15 | 分类于 Tech NoSQL 精粹Martin Fowler和Pramond(《数据库重构》作者)联合出品的这本书,为了我们如何看待、使用NoSQL数据库,提供了一个很好的起点。 为什么要用NoSQL?关系型数据库有很多优势,但绝非完美。对开发者来说,最令他们失望的就是: 关系模型和内存中的数据结构存在差异 ... 阅读全文 »
Building MicroService 发表于 2015-11-24 | 分类于 Tao 构建微服务 微服务向来是我个人更倾向的一种架构风格,它具有更加开放的技术姿态。通过阅读这本《Building MicroService》,让我对微服务有了更深入的了解,同时也发现了它与DDD、CD是完美契合的。 康威定律任何设计系统的组织,最终产生的设计等同于组织之内、之间的沟通结构。系统架 ... 阅读全文 »
First Try of Gatling 发表于 2015-09-28 | 分类于 Tech 次时代压力测试工具:Gatling初体验 为什么用Gatling?因工作需要,要对HTTP接口进行专门的压力测试。经过一番考虑,我选择了 Gatling 。 Gatling 作为次时代的压力测试工具,具有高性能,结果报表友好,支持DSL等特点。 不同于它的前辈JMeter, Gatling 是基于S ... 阅读全文 »
Speak like TED 发表于 2015-08-20 | 分类于 Other 像TED一样演讲 《像TED一样演讲》是属于提升软技能技巧的书,遵循其中的技巧能让你的演讲别具一格。 一个让人难忘的演讲,是有情感的,让你感到新奇和难忘的。 #情感 有情感的演讲,是有热情的,融入一个故事里的,又像跟好友交谈一样自然。 ##热情热情将帮助你最大限度地施展自己的才能。 有热 ... 阅读全文 »
The Art of Unit Testing 发表于 2015-08-03 | 分类于 Art 单元测试的艺术 所有程序员都知道应该做单元测试! 然而很多人却没有做,原因是各式各样的。就如Uncle Bob之前提到过的 The Little Mocker 中介绍Mock和Stub的关系一样, 这本书对一些容易混淆的概念作出了解释,也解释了实现的单元测试的难度和好处。 优秀单元测试的特质 自 ... 阅读全文 »
Cucumber-BDD 发表于 2015-07-15 | 分类于 Tech Cucumber : 行为驱动指南 为什么要用Cucumber?Cucumber是一个实现BDD(行为驱动指南)的工具,为什么要使用它呢? 软件始于一个想法。 但是,如果一个开发人员误解的一个想法,然后花了2周的一次迭代实现了它,那么他不仅仅浪费了2周的时间,还引入一些误解最初想法的概念和功 ... 阅读全文 »