碰巧读过之前大家提到的一些开源项目
网络编程:
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源码里找到答案。
Varnish,大名鼎鼎的Varnish缓存服务器,每个线程处理一个连接的架构。但这货的配置文件处理方面做的很优秀,想要研究DSL的同学可以看一下。
找虐:
The BIRD Internet Routing Daemon Project,宏玩得飞起
Kernel,很容易挫伤初学者积极性
glibc、ssh,这类程序都是上个世纪的大神们的作品,从编程风格和整体架构上都属于晦涩难懂的,代码风格也是现代编程所不推荐的,建议初学者远离。我建立了一个C语言学习交流群,在群里有很多新手教程和大神交流q群,怎么找到先搜索178在加上923最后还有056,这样你就可以找到组织一起学习,群里人很多都是新手在大神的帮助下,已经成长为高薪工程师,你不来对我们没有任何损失,但是只要你来了基本可以有很多的收获。