冷冻图书馆

也是一封信的代码

技术文字照理是写给机器的,这六篇却是写给人的。读的时候,留意每一篇心里装着的那个读者:握着算筹的人,下一位程序员,熬夜调试的同事,被怀念的朋友,多年以后打开源文件的陌生人。

6 部作品约 13 分钟Claude 选

一位戴白头巾、穿深色上衣的年轻女子坐在红椅子上,一只手搭在桌上一本摊开的大书上;旁边立着插着羽毛笔的墨水台和一只烛台,背后是深色的镶板墙。
埃格隆·范德内尔,《读书人》,17 世纪下半叶,The Metropolitan Museum of Art 图版 G-009039
  1. 第 1 步:九章算术·方田(分数诸术)

    佚名(汉代)约 50

    可半者半之;不可半者,副置分母、子之数,以少减多,更相减损,求其等也。

    早在有人敲出第一行程序之前,《九章算术》就把一个算法写给了人看:能折半就先折半,不能就把分母、分子并排放好,以少减多,更相减损,直到两数相等,整套步骤都是说给手持算筹的人听的;两千年后,一份风格指南也从这份体贴出发。

    阅读 →

  2. 第 2 步:PEP 8 – Style Guide for Python Code (Introduction; A Foolish Consistency is the Hobgoblin of Little Minds) PEP 8:愚蠢的一致性

    吉多·范罗苏姆、巴里·华沙、艾丽莎·科格伦2001

    One of Guido’s key insights is that code is read much more often than it is written.Guido 的一个关键洞见是:代码被阅读的次数远多于被编写的次数。

    PEP 8 的出发点是:代码被阅读的次数远多于被编写的次数;它还告诉你,照着它的规则反而让代码更难读的时候,就别照着做;它引用的那份 PEP,把一整套理念装进了十九行。

    阅读 →

  3. 第 3 步:PEP 20 – The Zen of Python PEP 20:Python 之禅

    蒂姆·彼得斯2004

    Simple is better than complex. Complex is better than complicated.简单胜于复杂。复杂胜于凌乱。

    写下十九条,第二十条留给读者;它最初发在邮件列表上,至今只要在 Python 解释器里敲下 import this,就会印出来;网络那套编了号的备忘录,也给一首圣诞诗留了位置。

    阅读 →

  4. 第 4 步:RFC 968: ‘Twas the Night Before Start-up’ RFC 968:启动前夜

    温顿·瑟夫1985

    I twisted my fingers and counted to ten; an off-by-one index had done it again...我绞着手指数到了十; 又是一个差一的下标惹的祸……

    它和别的 RFC 一样编了号,照例注明“本备忘录可不受限制地分发”;瑟夫这首戏仿的圣诞诗,最后点出了每个程序员都认得的元凶:差一错误;十三年后,他又用同一套文件纪念了编辑这套文件的人。

    阅读 →

  5. 第 5 步:RFC 2468: I Remember IANA RFC 2468:我记得 IANA

    温顿·瑟夫1998

    If Jon were here, I am sure he would urge us not to mourn his passing but to celebrate his life and his contributions.如果 Jon 在这里,我确信他会劝我们不要哀悼他的离去,而要庆祝他的一生和他的贡献。

    波斯特尔编辑这套文件将近三十年,替整个网络管着编号;瑟夫称赞他留下的文件“不只有技术的,也有诗意的、异想天开的”;最后一步,是三行站在许可证位置上的祝福。

    阅读 →

  6. 第 6 步:The SQLite blessing, and “SQLite Is Public Domain” SQLite 的祝福

    D·理查德·希普与 SQLite 开发者2001

    May you share freely, never taking more than you give.愿你自由分享,所取永不多于所予。

    SQLite 的每个源文件开头,没有法律声明,只有一段祝福:愿你行善而不作恶,愿你宽恕自己、也宽恕别人,愿你自由分享,所取永不多于所予;代码也可以是一封信,书架上最直白的证据就在这里。

    阅读 →

下一条书单:雪的七种写法 →