英文时态详解

来 ThoughtWorks 两年了,英文使用也两年了,日常和工作中的交流几乎是没有问题,但是在说和写的时候总还觉得不地道,要么太啰嗦,要么说着说着逻辑就乱了,有时甚至感觉说英文像是在堆砌单词。最近补了一下英文语法,发现用错时态是我日常交流中最容易犯的错误,特此组织成文,方便日后查阅。

阅读更多

在 AWS 流水线中使用 CodeDeploy

AWS 为开发者提供了 CodeCommit -> CodeBuild -> CodeDeploy 三个服务分别用于管理应用的代码库、构建、部署三个环节,并使用 CodePipline 编排流水线,以及使用 CodeStar 以快速构建模板项目。

阅读更多

使用 Kcptun 加速 Shadowsocks

搭建完加强版 Shadowsocks后如果希望进一步减少延迟,或者在网络比较差的地方也想流畅使用代理,这篇文章会对你有帮助。笔者亲测可观看 Youtube 2K 视频。

阅读更多

Java系列(五)——UML类图和面向对象五大原则

最近在项目上经历了一次比较大的重构,把之前不太清晰一些类关系梳理了一下,突然发现 UML 图是个很好用的东西,特此温习一下。顺便复习一下面向对象五大原则,对 clean code 可以说是有很大的帮助。

阅读更多

Java系列(四)——类的加载与执行

清楚了 JVM 内存结构、GC、类结构,上篇文章我们知道了字节码是 JVM 实现无关性的重要设计,这篇文章我们来看一下这些字节码文件是如何被虚拟机加载和执行的。

阅读更多

Java系列(三)——类文件结构

JVM 的一大成就带来了平台无关性和日益凸显的语言无关性,而字节码(ByteCode)作为语言与平台的“中间代码”,正是构成这种无关性的基石,不同的语言经过各自的编译器编译后形成相同格式的字节码,再被 Java 虚拟机解释为平台相关的机器码并执行,从而实现了一次编写,到处运行(Write Once, Run Anywhere)。

阅读更多

Java系列(二)——JVM内存回收

GC(Garbage Collection 垃圾回收)使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。

阅读更多

Java系列(一)——JVM内存分配

成都近日气温已逾零下。让我想起在赤峰拍戏的日子,八月凌晨三点,茶水车结出一道冰溜子,18 个人抢 8 件军大衣,有人要去扒箱车,制片大喊:“别动!那是给领导穿的” —— 生活如此不易。如今我更加体会到“平凡的生活也要靠努力去争取”。

阅读更多

细说HTTPS

最近客户公司经历了一次大的证书升级,内网许多服务之间的调用出现了证书过期或是不授信的问题。前面我写过两篇文章介绍HTTP协议以及一次完整的HTTP事务是怎样一个过程,这篇文章主要介绍一个大家日常工作中都在打交道但却不一定很熟悉的协议 —— HTTPS。

阅读更多

再见 2017, 你好 2018

阅读更多