正交性

如果你想要制作易于设计、构建、测试及扩展的系统,正交性就是一个十分关键的概念,但是正交性的概念很少被直接讲授,而常常是你学习的各种其他方法和技术的隐含特性。这是一个错误。一旦学会了直接应用正交性原则,你将发现,你制作的系统的质量就得到了提高。

阅读全文>>

软件的熵

“熵”是一个物理学的定义,指的是某个系统中的”无序”的总量.热力学定律保证了宇宙中的熵倾向于最大化.当软件中的无序增长时,程序员们称之为”软件腐烂”

阅读全文>>

Java NIO

Java NIO 是 IO复用模型在Java平台的实现 , 针对Java BIO在高并发情况下的缺点 1.4之后提供了NIO的实现. 还是以EchoServer为例子.

阅读全文>>

Java BIO

在JDK1.4出来之前,建立网络连接的时候采用BIO模式,下面以EchoServer为例子聊聊Java的阻塞IO.

阅读全文>>

网络IO模型

一次网络IO 的调用涉及到用户进程和系统内核对象 , 以读为例.

  1. 等待网络上的数据分组到达,并复制到内核的缓冲区
  2. 内核缓冲区数据复制到用户进程中,也就是调用网络IO进程的缓冲区.

常见的IO模型有五种, 不同的IO模型在这两个阶段的处理上各不相同.

阅读全文>>