欢迎来到 常识词典网 , 一个专业的常识知识学习网站!
[ Ctrl + D 键 ]收藏本站
答案 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下一篇:火狐浏览器(firefox)到现在都没有同步几大微博的扩展或插件? 下一篇 【方向键 ( → )下一篇】
上一篇:如何在一个5-7人的团队中,让每个人接受敏捷的概念,并且自主运转? 上一篇 【方向键 ( ← )上一篇】
快搜