通过前面的描述你已经对重构中“小步快跑”的开发模式有了一个清楚的认识。学会和习惯小步快跑的开发模式,对于重构工作极其重要,因为它让这种大范围、大幅度修改代码的重构工作变得不再像以往那样让人胆战心惊。究其原因,虽然从结果上是在大范围、大幅度调整,但每一步却是小范围、小福度调整,并且能保证每一步都是正确的。
然而,这里有一个非常重要的假设条件,那就是“保证每一步都是正确的”,这是怎么保证的呢?就这个问题,我们需要展开来认真讨论讨论。...
分类:
其他好文 时间:
2014-09-08 07:29:56
阅读次数:
170
通过前面的描述你已经对重构中“小步快跑”的开发模式有了一个清楚的认识。学会和习惯小步快跑的开发模式,对于重构工作极其重要,因为它让这种大范围、大幅度修改代码的重构工作变得不再像以往那样让人胆战心惊。究其原因,虽然从结果上是在大范围、大幅度调整,但每一步却是小范围、小福度调整,并且能保证每一步都是正确...
分类:
其他好文 时间:
2014-09-08 07:29:26
阅读次数:
175
上周从同事那里搞到一本大话设计模式的书,便看了起来,对于我这种非科班出身的人来说,还是很有用处的。这些设计模式的终极目的都是让代码更好看,更好用,更好拓展,在需求变化的时候,尽可能少的改动代码先记录自己已经学到的几个部分:1、开放——封闭原则 软件实体对于拓展的开放的,对于修改时封闭的。及对已经写....
分类:
其他好文 时间:
2014-09-05 18:09:41
阅读次数:
144
IGMP(Internet Group Management Protocol)作为因特网组管理协议,用于多播。
与ICMP一样, IGMP也被当作 IP 层的一部分,IGMP报文也通过IP数据报进行传输。
IGMP 在TCP/IP中负责局域网IP多播组成员管理的协议。用来在多播路由器与其局域网中的主机建立、维护多播组成员关系(组...
分类:
其他好文 时间:
2014-09-03 16:54:57
阅读次数:
316
socket 系统调用在linux内核中的实现:...
分类:
系统相关 时间:
2014-09-03 13:07:06
阅读次数:
280
TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文,这一经时重申了很多遍了。
...
分类:
其他好文 时间:
2014-09-02 22:53:45
阅读次数:
321
//链栈的实现 --大话数据结构99页#include using namespace std;//链节点定义typedef struct stacknode{ int data; struct stacknode * next;}StackNode, *LinkStackptr;//...
分类:
其他好文 时间:
2014-09-02 17:14:35
阅读次数:
262
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计...
分类:
编程语言 时间:
2014-09-02 09:00:34
阅读次数:
370
TCP连接的状态图
TCP建立连接的三次握手过程,以及关闭连接的四次握手过程
贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图。
1、建立连接协议(三次握手)
(1)客户 端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和S...
分类:
其他好文 时间:
2014-09-01 22:45:43
阅读次数:
303
1. 实际问题
初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。
TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这...
分类:
其他好文 时间:
2014-09-01 21:13:53
阅读次数:
9542