• 应该阅读的开源代码


    应该阅读的开源代码

    读代码可能有两种原因,一是对这个东西某处不满意想改,二是想学习其中的设计实现思路,前者动力更直接一些,后者则不好选,
    因为纯粹泛泛地看跟你实际环境关系不大的代码,其实不太容易学到东西。而且现代软件设计其实也充满了许多妥协和折衷,大家最常
    用的软件,往往不是代码最干净的,而是做了许多妥协折衷的。比如最明显的有 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”
    的代码,可想而知质量是很高的。

  • 相关阅读:
    数学系列:数学在计算机图形学中的应用
    数学系列:数学体系概览
    Math: Fibonacci
    算法系列:电磁频谱划分
    计算机系列:CUDA 深入研究
    算法系列:寻找最大的 K 个数
    算法系列:000
    算法系列:三元组和
    算法系列:单链表逆序
    堆栈区别
  • 原文地址:https://www.cnblogs.com/sun-frederick/p/4762984.html
Copyright © 2020-2023  润新知