Beautiful Code [2]
Section 26.3. Implementing Sequential Logging Servers
Section 26.4. Implementing Concurrent Logging Servers
Section 26.5. Conclusion
Chapter 27. Integrating Business Partners the RESTful Way
Section 27.1. Project Background
Section 27.2. Exposing Services to External Clients
Section 27.3. Routing the Service Using the Factory Pattern
Section 27.4. Exchanging Data Using E-Business Protocols
Section 27.5. Conclusion
Chapter 28. Beautiful Debugging
Section 28.1. Debugging a Debugger
Section 28.2. A Systematic Process
Section 28.3. A Search Problem
Section 28.4. Finding the Failure Cause Automatically
Section 28.5. Delta Debugging
Section 28.6. Minimizing Input
Section 28.7. Hunting the Defect
Section 28.8. A Prototype Problem
Section 28.9. Conclusion
Section 28.10. Acknowledgments
Section 28.11. Further Reading
Chapter 29. Treating Code As an Essay
Chapter 30. When a Button Is All That Connects You to the World
Section 30.1. Basic Design Model
Section 30.2. Input Interface
Section 30.3. Efficiency of the User Interface
Section 30.4. Download
Section 30.5. Future Directions
Chapter 31. Emacspeak: The Complete Audio Desktop
Section 31.1. Producing Spoken Output
Section 31.2. Speech-Enabling Emacs
Section 31.3. Painless Access to Online Information
Section 31.4. Summary
Section 31.5. Acknowledgments
Chapter 32. Code in Motion
Section 32.1. On Being "Bookish"
Section 32.2. Alike Looking Alike
Section 32.3. The Perils of Indentation
Section 32.4. Navigating Code
Section 32.5. The Tools We Use
Section 32.6. DiffMerge's Checkered Past
Section 32.7. Conclusion
Section 32.8. Acknowledgments
Section 32.9. Further Reading
Chapter 33. Writing Programs for "The Book"
Section 33.1. The Nonroyal Road
Section 33.2. Warning to Parenthophobes
Section 33.3. Three in a Row
Section 33.4. The Slippery Slope
Section 33.5. The Triangle Inequality
Section 33.6. Meandering On
Section 33.7. "Duh!"—I Mean "Aha!"
Section 33.8. Conclusion
Section 33.9. Further Reading
Afterword
Contributors
COLOPHON
Index
Beautiful Code
Edited by Andy Oram and Greg Wilson
Copyright © 2007 O'Reilly Media, Inc. All rights reserved. Printed in the United States of America.
Published by O'Reilly Media, Inc. 1005 Gravenstein Highway North, Sebastopol, CA 95472
O'Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safari.oreilly.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com.
Production Editor: Marlowe Shaeffer Cover Designer: Randy Comer
Production Editor: Marlowe Shaeffer Cover Designer: Randy Comer
Copyeditor: Sanders Kleinfeld Interior Designer: Marcia Friedman
Proofreader: Sohaila Abdulali Illustrator: Jessamyn Read
Indexer: Ellen Troutman Zaig
Printing History:
June 2007: First Edition.
The O'Reilly logo is a registered trademark of O'Reilly Media, Inc. Beautiful Code and related trade dress are trademarks of O'Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O'Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
ISBN-10: 0-596-51004-7
ISBN-13: 978-0-596-51004-6
[C]
Dedication
All royalties from this book will be donated to Amnesty International.
Foreword
Greg Wilson
I got my first job as a programmer in the summer of 1982. Two weeks after I started, one of the system administrators loaned me Kernighan and Plauger's The Elements of Programming Style (McGraw-Hill)