网络编程:
- redis是单线程异步网络编程的范例
- nginx是多进程网络编程的巅峰,模块化
- memcached虽然是C++,但是C style的,多线程网络编程的巅峰
数据结构&数据库:
- SQLite,数据理论的范例。注意要去读非合并源文件版的(为了方便编译器优化,有个单文件版的)
大杂烩类型:
- Coreutils - GNU core utilities,大多数Linux系统命令的实现
- Python源代码(CPython,注意不是Cython),多少次遇到百思不得其解的问题,我都是去看看Python是怎么封装成简单可靠的接口的,比如我回答的Linux TCP connect with Select() fails at testserver,还有怎么实现一个可靠的带自定义超时的connect(),你都可以从Python源码里找到答案。
找虐:
- The BIRD Internet Routing Daemon Project,宏玩得飞起
- Kernel,很容易挫伤初学者积极性
- glibc、ssh,这类程序都是上个世纪的大神们的作品,从编程风格和整体架构上都属于晦涩难懂的,代码风格也是现代编程所不推荐的,建议初学者远离。