开源应用程序的架构

建筑师在培训期间会查看数千座建筑,并研究大师对这些建筑的评论。相比之下,大多数软件开发人员只精通少数几个大型程序——通常是他们自己编写的程序——并且从未研究过历史上伟大的程序。结果,他们重复彼此的错误,而不是在彼此的成功基础上进行构建。

我们的目标是改变这一点。在这两本书中,来自四打开源应用程序的作者解释了他们的软件是如何构建的,以及原因。每个程序的主要组件是什么?它们如何交互?以及它们的构建者在开发过程中学到了什么?在回答这些问题时,这些书籍的贡献者提供了对他们思维方式的独特见解。

如果您是一名初级开发人员,并且想学习更资深的同事是如何思考的,那么这些书籍是您的起点。如果您是中级或高级开发人员,并且想了解您的同行是如何解决复杂的设计问题的,这些书籍也能帮到您。

AOSA 第 1 卷

Volume 1 cover

购买第 1 卷

简介 Amy BrownGreg Wilson
1. Asterisk Russell Bryant
2. Audacity James Crook
3. Bourne-Again Shell Chet Ramey
4. Berkeley DB Margo SeltzerKeith Bostic
5. CMake Bill HoffmanKenneth Martin
6. Eclipse Kim Moir
7. Graphite Chris Davis
8. Hadoop 分布式文件系统 Robert ChanslerHairong KuangSanjay RadiaKonstantin ShvachkoSuresh Srinivas
9. 持续集成 C. Titus BrownRosangela Canino-Koning
10. Jitsi Emil Ivov
11. LLVM Chris Lattner
12. Mercurial Dirkjan Ochtman
13. NoSQL 生态系统 Adam Marcus
14. Python 打包 Tarek Ziadé
15. Riak 和 Erlang/OTP Francesco CesariniAndy GrossJustin Sheehy
16. Selenium WebDriver Simon Stewart
17. Sendmail Eric Allman
18. SnowFlock Roy BryantAndrés Lagar-Cavilla
19. SocialCalc Audrey Tang
20. Telepathy Danielle Madeley
21. Thousand Parsec Alan LaudicinaAaron Mavrinac
22. Violet Cay Horstmann
23. VisTrails Juliana FreireDavid KoopEmanuele SantosCarlos ScheideggerClaudio SilvaHuy T. Vo
24. VTK Berk GeveciWill Schroeder
25. Wesnoth 之战 Richard ShimookaDavid White
参考书目

AOSA 第 2 卷

Volume 2 cover

购买第 2 卷

简介 Amy BrownGreg Wilson
1. 可扩展的 Web 架构和分布式系统 Kate Matsudaira
2. Firefox 版本工程 Chris AtLeeLukas BlakkJohn O'DuinnArmen Zambrano Gasparnian
3. FreeRTOS Christopher Svec
4. GDB Stan Shebs
5. Glasgow Haskell 编译器 Simon MarlowSimon Peyton-Jones
6. Git Susan Potter
7. GPSD Eric Raymond
8. 动态语言运行时和 Iron 语言 Jeff Hardy
9. ITK Luis IbanezBrad King
10. GNU Mailman Barry Warsaw
11. matplotlib John HunterMichael Droettboom
12. MediaWiki Sumana HarihareswaraGuillaume Paumier
13. Moodle Tim Hunt
14. nginx Andrey Alexeev
15. Open MPI Jeff Squyres
16. OSCAR Jennifer Ruttan
17. Processing.js Mike Kamermans
18. Puppet Luke Kanies
19. PyPy Benjamin Peterson
20. SQLAlchemy Michael Bayer
21. Twisted Jessica McKellar
22. Yesod Michael Snoyman
23. Yocto Elizabeth Flanagan
24. ZeroMQ Martin Sústrik
参考书目

开源应用程序的性能

POSA Cover

购买 POSA

简介 Tavish Armstrong
1 Chrome 中的高性能网络 Ilya Grigorik
2 从 SocialCalc 到 EtherCalc Audrey Tang
3 Ninja Evan Martin
4 以光速解析 XML Arseny Kapoulkine
5 MemShrink Kyle Huey
6 将优化原理模式应用于组件部署和配置工具 Doug C. SchmidtWilliam R. OtteAniruddha Gokhale
7 Infinispan Manik Surtani
8 Talos Clint TalbertJoel Maher
9 Zotonic Arjan ScherpenisseMarc Worrell
10 移动网络性能的秘密 Bryce Howard
11 Warp Kazu YamamotoMichael SnoymanAndreas Voellmy
12 在生物信息学中使用大数据 Eric McDonaldC. Titus Brown

500 行或更少

500Lines Cover

购买 500 行

简介 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,如果您想开始新的翻译或自己编写章节。