目标
或许在有像nmap这样功能强大的扫描工具的今天,我们根本没必要考虑再设计一个功能可能不成熟的扫描工具。但是当你希望做到下面的几点时你就有必要进一步思考一个扫描工具的设计过程或者继续阅读这篇文档。
- 我希望这个扫描工具的开发过程是易理解的,我即使不用阅读文档都能完全看懂源代码。良好的设计是可以做到这一点,这也是这个项目的主要目标之一;
- 我希望了解扫描技术,操作系统的安全策略,防火墙针对扫描的安全策略。虽然这一系列的文章目标不在于提供安全策略的详细描述,但是只要是与项目有关的技术,文章中都会有所介绍。
- 我希望低成本地定制自己的开发环境,以简化我的开发过程。系列文章中会介绍一些作者认为较好的开源框架在针对该项目的应用。
如果你有上述的需求,我强烈建议阅读这系列的文章。而且,我希望你能随时向作者提供反馈,只有大家的反馈,作者才会有继续写下去的动力。
适宜读者
很遗憾,这一系列的文章不是所有人都适宜阅读的,作者假设你具备下面的基础。
- Java语言及面向对象技术
- 设计模式,UML
- TCP/IP协议簇,接入互联网技术
- 操作系统,尤其是Windows系统
- 常见防火墙
不过,绝对不要认为你需要一下子精通上面的所有的基础知识,作者会在不同的文档中要求读者有不同的相应技术基础,你可以在每篇文档的“适宜读者”一小节中获取该文档的知识基础。而且,针对那些不同需求的人阅读这一系列文章中,可能只会对特定的文档感兴趣。对于他们,具备的基础知识只要是他感兴趣的就可以了。
开发前的几句话
测试驱动开发与模型驱动开发
我们是采用极限编程中推荐的测试驱动开