项目启动

1 项目和项目管理

1.1 什么是项目

项目是具有下列特征的一系列活动和任务[Kerzner2009]

阅读更多
软件开发过程模型

软件开发各典型阶段

软件开发主要有以下几个过程:

阅读更多
软件维护与演化

1 维护

各个工程领域都会在将产品交付给用户之后进行维护工作:主要是为了保证产品的正常运转而进行使用帮助、故障解决和磨损处理等工作。

阅读更多
软件交付

Overview

  1. 软件交付是软件项目的结束阶段,标志着软件开发任务的完成
  2. 软件交付是软件开发与软件维护两个既连续又不同的软件铲平生存状态的分水岭
  3. 只有做好软件交付工作,才是真正地完成整个项目
阅读更多
RIP Learning

0 Overview

RIP, Router Information Protocol, 是一种根据跳数(hop count,既需要经过多少个中间设备才能够到达目标设备)来进行路由度量(routing metrix)从而在发送方和接收方之间决定最佳路径(best path)的动态路由协议。

阅读更多
UDP Learning

Overview

UDP, User Datagram Protocol,是一种不可靠的、无连接的协议,相比于TCP中的 建立连接/数据传输/释放连接 的三个步骤,在 UDP 中不需要如此麻烦的连接建立来传输数据,而是直接传输,同时 UDP 也没有复杂的报文段首部和控制位,而是仅仅简单的加上了源端口和目标端口和其他一些东西以供数据传输。

阅读更多
TCP Segment

0 Overview

TCP数据段主要有以下的几个特点:

阅读更多
Fail-Fast Iterator in Java

前言

快速失败(Fail-Fast)机制是一种在多线程写入或更新情况下的应对机制,能够在不处理后续操作的情况下先行抛出异常以便后续的处理。为什么会突然来学习快速失败机制呢,主要是在看 ArrayList 的源码的时候看到其有一个成员变量:protected transient int modCount = 0,好奇这个变量是做什么用的,查看了它的调用方法发现其是用于在检查多线程和迭代器写入,于是就去查阅文档和资料。

阅读更多
Cpp Operator Overloading

1 概述

C++Java 最不同的地方在我看来可能就是操作符重载了,Java 对于自定义类的加减法操作可能需要通过使用自定义的 add()sub() 方法来实现,而在 C++ 中,可以通过简单的操作符重载来赋予相同的符号以不同的意义(操作符重载也是一种函数重载)。这是 C++ 这个语言给予开发者的一个极大的权利与特性,让开发者能够根据自己的设想来实现不同的操作符,但是其也有一定的坏处,是否能够很好地使用这种特性考验的还是开发者的水平。

阅读更多
TCP/IP Model

概述

OSI 模型只是一个参考/逻辑模型。它旨在通过将通信过程划分为更小和更简单的组件来描述通信系统的功能。但是当我们谈到 TCP/IP 模型时,它是由美国国防部 (DoD) 在 1960 年代设计和开发的,并且基于标准协议。它代表传输控制协议/互联网协议。TCP/IP模型仅仅包括四层:

  1. Application Layer(应用层)
  2. Transport Layer(传输层)
  3. Internet Layer(网络层)
  4. Network Access Layer(网络接入层)
阅读更多