I/O模型基本介绍

作为后台开发,高并发和高性能问题,是最常需要面对的。而解决高并发和高性能问题,选择合适的I/O模型是必由之路。本文将对各种I/O模型作基本介

天冷讀史

今日的天氣真是冷到了極致,沒有取暖措施,又習慣了暖冬的深圳人,非常不適應,朋友圈都是一片抱怨。我也只好躲在家裡,休息與讀書。心理有個想法,想

模式匹配初析

前几天看到篇C#6.0的draft spec,发现C#6.0里将惊现模式匹配。如是便在做了翻宣讲说“模式匹配”是一个很好用的特性,但是不知道跟

字符编码常识及问题解析

在面试的笔试题里出了一道开放性的题:请简述Unicode与UTF-8之间的关系。一道看似简单的题,能给出满意答案的却寥寥无几,确实挺失望的。

浅谈服务化架构

这两年来,在服务化架构设计上的实践比较多,在此对关于服务化设计一些经验稍作总结,知识经验水平有限,如有欠缺和不准确的地方,还请指出修正! 我在

面对喷子明哲保身

本打算本周继续写关于技术的话题,但是今天碰到一件闲事,让我改了想法!我得写一篇“教化”的文字,你们暂且读读,个人牢骚,慎重评论! 先从今天这件

技术的进化

前几日,吴军博士在微博上转发了王石为其新书《文明之光》写的序言。在序言里,王石提到了达尔文进化论在社会与技术的适应性问题。王石在他短短几句话

不确定性与马尔科夫链

这个月玩公司的世界杯竞猜游戏,期间经历了各种跌宕起伏,有过竞猜游戏币被清零的记录(后来贷款翻身),也有过“一夜暴富”荣登榜首的时候(多亏了乌

可扩展架构设计的三个维度

业界对于可扩展的系统架构设计有一个朴素的理念,就是:通过加机器就可以解决容量和可用性问题。 这一理念在“云计算”概念疯狂流行的今天,得到了广泛

值得借鉴的Google测试经验

近来读了《Google软件测试之道》一书,以下是我从书里得来的两点经验: 一.紧密结合开发过程与测试 测试之难,保证产品开发质量之难,每个公司每

过载保护算法浅析

何为过载保护?所谓“过载”,即需求超过了负载能力;而“保护”则是指当“过载”发生了,采取必要的措施保护自己不受“伤害”。在计算机领域,尤其是

程序员持续学习之道

我其实是一个悲观主义者,从开始成为一名程序员的那一天开始,我就对自己的职业充满着担忧。早期,我担忧的是我刚进入这一行,落后身边从事这一行多年

粗略估算

今天我们以两道可能看起来有点“惨无人道”的题目开始 1.一个长方体的卡车车厢能装下多少个高尔夫球? 2.密西西比河一天流出多少水? 第一个题目据说

程序员的良心

前几日,深圳暴雨,官方说是“xx年一遇”。当大家听到“xx年一遇”这一说时,你肯定猜到了后果就是城市成了一片汪洋,整个城市陷入瘫痪,所有的房

武曌皇帝之路

这周有两个妹子反馈说,上次写的齐桓公的故事,很精彩,她们第一次完整看完了一篇历史文字,甚感欣慰!其中一个妹子还希望我能讲讲她们女人中的“神”

如何阅读一本书

我好读书,读的很繁杂,从计算机技术到历史到国学和哲学,系统方法论等都是我爱好读的。 但平时工作忙,尽管每天都坚持挤出一到两个小时的读书时间(牺

防御性编程小例

今天面试一个人时,突然想起一个话题:防御性编程 。我们先看一个小程序,这也是以前出过的一道简单面试题:写一个函数,可以将一个小写字母转换为大写

对Go的Slice进行Append的一个坑

今天我们说说Go为数不多的一个“坑”。这个“坑”的代码是这样的: func main() { arr1 := [5]int{1, 2, 3, 4, 5} slice1 := arr1[1:2] slice1 = append(slice1, 6, 7, 8) fmt.Println("slice1:", slice1) fmt.Println("arr1:", arr1) arr2 := [5]int{1, 2, 3, 4, 5} slice2 := arr2[1:3] slice2 = append(slice2, 6, 7,

Golang的Slice机制解析

Rob Pike写了篇关于Go的数组与切片的文章:Arrays, slices (and strings): The mechanics of ‘append’ ,介绍了slice的实现和一些常见的操作。其部分内容与我这篇文章是重