为什么常识

你认为哪个项目的源代码最值得阅读?

生活词典 changshi.cidiancn.com

阅读: 122

你认为哪个项目的源代码最值得阅读?14 个答案

答案 1:

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

git

FreeType

fontconfig

cairo

NetBSD 的用户空间代码

DTrace

WebKit

Mac OS X 的 launc-d

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

一个操作系统内核

一个编译器

一个解释器

一个数据库

一个 Web 服务器

一个 Web 浏览器

一个编辑器

因为这些都是几十年来被频繁地反复实现的代码,无数天才的程序员在这些领域发挥智慧,所以在它们各自领域“state of t-e art”的代码,可想而知质量是很高的。[1]oreilly/catalog...[2]oreilly/catalog...

答案 2:

如果对erlang感兴趣,想从代码角度熟悉下dynamo,riak的代码值得一读

答案 3:

个人感觉redis和lua的代码都不错.据说nginx也很好.

答案 4:

不限语言的话,Minix 值得一读。无论如何,坦尼鲍姆(Andrew S. Tanenbaum)那几本讲操作系统的书籍应该读一下。对源码有大量的注解。

答案 5:

只看过c的开源代码,这里最推荐nginx和lua,他们不管是组织,风格还是性能,都可以说是登峰造极了。而且代码都不是怎么长,特别lua,只有几万行代码。话说最好的代码,一般来说开发者都是很少的,或者说只有一个人的。

答案 6:

postfix 的代码很干净漂亮; Mozilla 的代码因为群体太大所以很混乱了但是结构还清楚; Linux 的代码质量远不如 FreeBSD; apac-e 其实也很乱; reactOS 的代码值得一读; 应该还有不少, 只是想不起来了, 想起来的时候再来加吧...

答案 7:

你的工作和技术兴趣是什么?以此为方向去读相关领域中最优秀的开源产品的代码吧。比如搜索领域的经典项目Lucene的代码很值得一读。如果要用到一个新的开源产品,我都会扫一边它的核心代码。

答案 8:

My-L源码和Apac-e的源码都是值得阅读的

答案 9:

如果你是java工程师,spring的源码一定要读!个人感觉可以让你上一个档次!

答案 10:

有些开源软件的代码很乱,比如net-snmp,当年看疯了。现在看My-L的,组织的也不好。反而个人主导项目的代码nice一点,比如redis,nginx。

答案 11:

Lua的代码很好。但是问题也是太好,太干净。就Lua要解决的问题来说,这是很好的:有良好边界的纯符号问题或者纯策略配置(说白了,前者就是数学,后者就是胶水)。不过我推荐看脏一点的代码,也别太脏。Linux kernel就行。

答案 12:

Lua, Pyt-on, Nginx..代码有序结构良好,值得一看恩

答案 13:

java方面的如下:struts,spring,acegi,tomcat,java自身的源代码学习以上代码,对WEB开发应该很有帮助!android平台提供的源代码.javascript:我只部分学习过jquery,protype

答案 14:

别忘了unix

分享常识给亲友.

下一篇:在知乎回答问题的时候会有人去搜索-的答案吗?理由是什么? 下一篇 【方向键 ( → )下一篇】

上一篇:有支持多个账户切换的 C-rome 浏览器的书签插件吗? 上一篇 【方向键 ( ← )上一篇】