原名:The Architecture of Open Source Applications
链接:http://aosabook.org/en/index.html
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.
Our goal is to change that. In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.
If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, these books can help you too.
建筑师们在他们的训练过程中观察了成千上万的建筑,并对大师们所写的评语进行了研究。相比之下,大多数软件开发人员只了解少数几个大型程序——通常是他们自己编写的程序——而且从来没有研究过历史上的伟大项目。因此,他们重复别人的错误,而不是建立在彼此的成功之上。
我们的目标是改变这种状况。在这两本书中,近50位开源软件的作者解释了他们的软件是如何构造的,以及为什么这么构造。每个程序的主要组件是什么?它们如何相互作用?他们的建设者在他们的发展过程中学到了什么?在回答这些问题时,这些书的作者提供了独特的见解,他们如何思考。
如果你是一名初级开发人员,想要了解你的经验丰富的同事们的想法,那么这些书就是开始的地方。如果你是一名中级或高级的开发人员,并且想看看你的同行是如何解决设计难题的,这些书也可以帮助你。
500 Lines or Less
经验丰富的开发者解决有趣的问题Introduction Michael DiBernardo
介绍
1 Blockcode: A visual programming toolkit Dethe Elza
块代码:可视化编程工具包
2 A Continuous Integration System Malini Das
持续集成系统
3 Clustering by Consensus Dustin J. Mitchell
集群的共识
4 Contingent: A Fully Dynamic Build System Brandon Rhodes and Daniel Rocco
特遣队:完全动态的构建系统
5 A Web Crawler With asyncio Coroutines A. Jesse Jiryu Davis and Guido van Rossum
一名网络爬虫,带着asyncio coroutines
6 Dagoba: an in-memory graph database Dann Toliver
dagoba:一个内存中的图形数据库
7 DBDB: Dog Bed Database Taavi Burns
dbdb:Dog Bed数据库
8 An Event-Driven Web Framework Leo Zovic
事件驱动web框架
9 A Flow Shop Scheduler Dr. Christian Muise
10 An Archaeology-Inspired Database Yoav Rubin
11 Making Your Own Image Filters Cate Huston
12 A Python Interpreter Written in Python Allison Kaptur
Python编写的解释器
13 A 3D Modeller Erick Dransch
14 A Simple Object Model Carl Friedrich Bolz
15 Optical Character Recognition (OCR) Marina Samuel
16 A Pedometer in the Real World Dessy Daskalov
17 The Same-Origin Policy Eunsuk Kang, Santiago Perez De Rosso, and Daniel Jackson
18 A Rejection Sampler Jessica B. Hamrick
一个拒绝的人
19 Web Spreadsheet Audrey Tang
网络电子表格
20 Static Analysis Leah Hanson
静态分析
21 A Template Engine Ned Batchelder
一个模板引擎
22 A Simple Web Server Greg Wilson
一个简单的Web服务器
The Performance of Open Source Applications
1High Performance Networking in ChromeIlya Grigorik
2From SocialCalc to EtherCalcAudrey Tang
4Parsing XML at the Speed of LightArseny Kapoulkine
6Applying Optimization Principle Patterns to Component Deployment and Configuration ToolsDoug C. Schmidt, William R. Otte, and Aniruddha Gokhale
8TalosClint Talbert and Joel Maher
9ZotonicArjan Scherpenisse and Marc Worrell
10Secrets of Mobile Network PerformanceBryce Howard
11WarpKazu Yamamoto, Michael Snoyman, and Andreas Voellmy
12Working with Big Data in BioinformaticsEric McDonald and C. Titus Brown
The Architecture of Open Source Applications Volume Ⅱ
IntroductionAmy Brown and Greg Wilson
1.Scalable Web Architecture and Distributed SystemsKate Matsudaira
2.Firefox Release EngineeringChris AtLee, Lukas Blakk, John O'Duinn, and Armen Zambrano Gasparnian
5.The Glasgow Haskell CompilerSimon Marlow and Simon Peyton-Jones
8.The Dynamic Language Runtime and the Iron LanguagesJeff Hardy
9.ITKLuis Ibanez and Brad King
11.matplotlibJohn Hunter and Michael Droettboom
12.MediaWikiSumana Harihareswara and Guillaume Paumier
17.Processing.jsMike Kamermans
The Architecture of Open Source Applications Volume Ⅰ
IntroductionAmy Brown and Greg Wilson
3.The Bourne-Again ShellChet Ramey
4.Berkeley DBMargo Seltzer and Keith Bostic
5.CMakeBill Hoffman and Kenneth Martin
8.The Hadoop Distributed File SystemRobert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko, and Suresh Srinivas
9.Continuous IntegrationC. Titus Brown and Rosangela Canino-Koning
13.The NoSQL EcosystemAdam Marcus
14.Python PackagingTarek Ziadé
15.Riak and Erlang/OTPFrancesco Cesarini, Andy Gross, and Justin Sheehy
16.Selenium WebDriverSimon Stewart
18.SnowFlockRoy Bryant and Andrés Lagar-Cavilla
21.Thousand ParsecAlan Laudicina and Aaron Mavrinac
23.VisTrailsJuliana Freire, David Koop, Emanuele Santos, Carlos Scheidegger, Claudio Silva, and Huy T. Vo
24.VTKBerk Geveci and Will Schroeder
网友评论