Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 1.83 KB

项目目的.md

File metadata and controls

25 lines (13 loc) · 1.83 KB

项目目的

TKeed既是个人网络编程项目,也是一次串联知识结构的过程,在整个开发过程不仅仅是为了做出一个"能用"的Web服务器,也在扩展性、稳定性方面做了很多思考和总结,也给出了测试数据和系统架构,方便别人学习交流。

  • 软件开发流程

    遵循完整开发流程,确定需求 -> 选定服务器模型 -> 定义数据结构 -> 开发辅助工具 -> 单元测试 -> 核心部分开发 -> 集成测试 -> 性能测试。开发环境也统一到Linux环境下,通过git进行版本控制,尽可能模拟真实工作环境。

  • 基础知识

    开发HTTP服务器从宏观上来说会对网络协议TCP及其各个状态理解更深,会对HTTP协议主要字段的功能理解更深,会对操作系统中多线程、多进程并发概念和局限性理解更深刻,会对网络I/O模型认识更深。

  • 数据结构

    通过对场景需求和将来扩展性的研究,需要设计合理的、高效的数据结构,比如在本项目中最核心的tk_request_t、tk_timer_t和tk_pq_t结构考虑到了扩展性和操作高效性(比如tk_time_t中的deleted字段、tk_pq_t中的size字段)。同时根据需求实现了list和priority_queue库并提供统一接口,可以帮助更好地掌握数据结构和设计接口。

  • 编程语言

    项目中涉及C语言中方方面面,比如预定义、typedef、全局变量、静态全局变量、函数指针、位运算、强制类型转换、结构体操作等,很多在调试时候遇到过问题,但也能学到很多。另外,也顺带学些了很多编译和调试的小技巧。

  • 开发工具

    最后,在开发过程中使用到的都是最基本、最常用的开发工具,开发、调试、版本控制都有所涉及,可以更好地利用辅助工具完成开发任务。