建筑师在培训期间会查看数千座建筑,并研究大师对这些建筑的评论。相比之下,大多数软件开发人员只精通少数几个大型程序——通常是他们自己编写的程序——并且从未研究过历史上伟大的程序。结果,他们重复彼此的错误,而不是在彼此的成功基础上进行构建。
我们的目标是改变这一点。在这两本书中,来自四打开源应用程序的作者解释了他们的软件是如何构建的,以及原因。每个程序的主要组件是什么?它们如何交互?以及它们的构建者在开发过程中学到了什么?在回答这些问题时,这些书籍的贡献者提供了对他们思维方式的独特见解。
如果您是一名初级开发人员,并且想学习更资深的同事是如何思考的,那么这些书籍是您的起点。如果您是中级或高级开发人员,并且想了解您的同行是如何解决复杂的设计问题的,这些书籍也能帮到您。
简介 | Michael DiBernardo | |
1 | Blockcode:一个可视化编程工具包 | Dethe Elza |
2 | 一个持续集成系统 | Malini Das |
3 | 共识聚类 | Dustin J. Mitchell |
4 | Contingent:一个完全动态的构建系统 | Brandon Rhodes 和 Daniel Rocco |
5 | 一个带有 asyncio 协程的网络爬虫 | A. Jesse Jiryu Davis 和 Guido van Rossum |
6 | Dagoba:一个内存中的图形数据库 | Dann Toliver |
7 | DBDB:狗床数据库 | Taavi Burns |
8 | 一个事件驱动的 Web 框架 | Leo Zovic |
9 | 一个流水车间调度器 | Dr. Christian Muise |
10 | 一个受考古学启发的数据库 | Yoav Rubin |
11 | 制作自己的图像过滤器 | Cate Huston |
12 | 用 Python 编写的 Python 解释器 | Allison Kaptur |
13 | 一个 3D 建模器 | Erick Dransch |
14 | 一个简单的对象模型 | Carl Friedrich Bolz |
15 | 光学字符识别 (OCR) | Marina Samuel |
16 | 一个现实世界中的计步器 | Dessy Daskalov |
17 | 同源策略 | Eunsuk Kang、Santiago Perez De Rosso 和 Daniel Jackson |
18 | 一个拒绝采样器 | Jessica B. Hamrick |
19 | 网络电子表格 | Audrey Tang |
20 | 静态分析 | Leah Hanson |
21 | 一个模板引擎 | Ned Batchelder |
22 | 一个简单的 Web 服务器 | Greg Wilson |
本作品根据 知识共享署名 3.0 通用版 许可证发布。请查看 许可证的完整描述 获取详细信息。这些书籍销售所得的所有版税将捐赠给 国际特赦组织。
数十名志愿者为创建本书付出了辛勤努力,但仍有许多工作要做。您可以通过报告错误、帮助将内容翻译成其他语言和格式,或描述其他开源项目的架构来提供帮助。请联系我们下面列出的各种翻译的协调员,或直接发送电子邮件至 gvwilson@third-bit.com,如果您想开始新的翻译或自己编写章节。