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 a...
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.
This book's goal is to change that. In it, the authors of twenty-five 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 this book provide unique insights into how they think.
If you are a junior developer, and want to learn how your more experienced colleagues think, this book is the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, this book can help you too.
目录 · · · · · ·
Introduction Amy Brown and Greg Wilson 1. Asterisk Russell Bryant 1 2. Audacity James Crook 15 3. The Bourne-Again Shell Chet Ramey 29 4. Berkeley DB Margo Seltzer and Keith Bostic 45 5. CMake Bill Hoffman and Kenneth Martin 67 · · · · · · (更多)
Introduction Amy Brown and Greg Wilson 1. Asterisk Russell Bryant 1 2. Audacity James Crook 15 3. The Bourne-Again Shell Chet Ramey 29 4. Berkeley DB Margo Seltzer and Keith Bostic 45 5. CMake Bill Hoffman and Kenneth Martin 67 6. Eclipse Kim Moir 77 7. Graphite Chris Davis 101 8. The Hadoop Distributed File System Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko, and Suresh Srinivas 111 9. Continuous Integration C. Titus Brown and Rosangela Canino-Koning 125 10. Jitsi Emil Ivov 139 11. LLVM Chris Lattner 155 12. Mercurial Dirkjan Ochtman 171 13. The NoSQL Ecosystem Adam Marcus 185 14. Python Packaging Tarek Ziadé 205 15. Riak and Erlang/OTP Francesco Cesarini, Andy Gross, and Justin Sheehy 229 16. Selenium WebDriver Simon Stewart 245 17. Sendmail Eric Allman 271 18. SnowFlock Roy Bryant and Andrés Lagar-Cavilla 291 19. SocialCalc Audrey Tang 303 20. Telepathy Danielle Madeley 325 21. Thousand Parsec Alan Laudicina and Aaron Mavrinac 345 22. Violet Cay Horstmann 361 23. VisTrails Juliana Freire, David Koop, Emanuele Santos, Carlos Scheidegger, Claudio Silva, and Huy T. Vo 377 24. VTK Berk Geveci and Will Schroeder 395 25. Battle For Wesnoth Richard Shimooka and David White 411 Bibliography Making Software · · · · · · (收起)
原文摘录 · · · · · ·
There will always be browsers that WebDriver can't integrate tightly to, so there will always be a need for Selenium Core. Migrating this from its current traditional design to a more modular design based on the same Closure Library that the atoms are using is underway. We also expect to embed the atoms more deeply within the existing WebDriver implementations. One of the initial goals of WebDriver was to act as a building block for other APIs and tools. Of course, Selenium doesn't live in a vacuum: there are plenty of other Open Source browser automation tools. One of these is Watir (Web Application Testing In Ruby), and work has begun, as a joint effort by the Selenium and Watir developers, to place the Watir API over the WebDriver core. We're keen to work with other projects too, as su... (查看原文)
Building architecture and software architecture have a lot in common, but there is one crucial difference. While architects study thousands of buildings in their training and during their careers, most software developers only ever get to know a handful of large programs well. And more often than not, those are programs they wrote themselves. They never get to see the great pr grams of history, or read critiques of those programs' design written by experienced practitioners As a result, they repeat one another's mistakes rather than building on one another's successes. (查看原文)
The Architecture of Open Source Applications(共4册), 这套丛书还有 《500 Lines or Less》《The Architecture Of Open Source Applications, Vol. 2》《The Performance of Open Source Applications》 。
喜欢读"The Architecture of Open Source Applications"的人也喜欢的电子书 · · · · · ·
1 有用 Samuel 2012-02-18 23:03:31
有点空泛
1 有用 E.T 2015-08-24 11:30:52
还蛮水的……质量参差不齐
0 有用 昨日风 2015-02-18 12:41:03
有趣。比如 generic 和 native 译文成通用和专用,查了下术语 其实是泛型和原生,瞬间就理解了。译文质量参差不齐。但总的说是本开眼界能学习到经验的书
0 有用 Han Xiaogang 2012-02-21 11:14:15
选读了两章。感觉不是特别有兴趣。
0 有用 Locke 2013-01-28 16:00:22
看了正在翻译的部分章节,感觉还不错。