应该阅读的开源代码

应该阅读的开源代码

 

读代码可能有两种原因,一是对这个东西某处不满意想改,二是想学习其中的设计实现思路,前者动力更直接一些,后者则不好选,
因为纯粹泛泛地看跟你实际环境关系不大的代码,其实不太容易学到东西。而且现代软件设计其实也充满了许多妥协和折衷,大家最常
用的软件,往往不是代码最干净的,而是做了许多妥协折衷的。比如最明显的有 Linux Kernel,有很多风格不一致的代码 (但这并不减
弱它的学习价值);mplayer 的代码是我见过的最丑陋但又非常实用的,在这样的代码基础上为啥能够活跃发展到今天,也很值得研究;
vim 代码打满了各种 #ifdef,你看了也会很惊讶为啥一个人能维护如此错综复杂的代码这么多年。我们有句老话,叫做水至清则无鱼,
软件设计其实很多时候是在受限的条件下解决问题的本事。
Beautiful Code [1] 介绍了很多精彩的代码;
Beautiful Architecture [2] 介绍了很多值得学习的架构。下面还可以补充一些:

git
FreeType
fontconfig
cairo
NetBSD 的用户空间代码
DTrace
WebKit
Mac OS X 的 launchd

从扩展思路的角度来说,一个程序员应该好好读过这样一些代码:

一个操作系统内核
一个编译器
一个解释器
一个数据库
一个 Web 服务器
一个 Web 浏览器
一个编辑器
因为这些都是几十年来被频繁地反复实现的代码,无数天才的程序员在这些领域发挥智慧,所以在它们各自领域“state of the art”
的代码,可想而知质量是很高的。

 

posted @ 2015-08-27 13:05  eric0803  阅读(254)  评论(0编辑  收藏  举报