MITBBS.com 首页 分类讨论区 移民专栏 未名形象秀 未名黄页 新闻中心 精华区 未名博客 网络电台
在线[15355]  
 
   首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 阅读文章 首页
那就推荐一本快出版的书吧
[同主题阅读] [版面:葵花宝典] [作者:soldiercrab] , 2007年04月02日14:40:20
soldiercrab
进入未名形象秀
我的博客
[上篇] [下篇] [同主题上篇] [同主题下篇]

发信人: soldiercrab (soldiercrab), 信区: Programming
标 题: 那就推荐一本快出版的书吧
发信站: BBS 未名空间站 (Mon Apr 2 14:40:20 2007)

很难想象钢琴家不用聆听大师的作品;诗人不用揣摩传世的经典;画家不用体会前辈的
佳作;拳手不用参详高人的示范。那我们怎么能想象程序员不用仔细学习性感的代码?
可惜的是,美妙的代码往往有如像Shrek,乍一看也就是面目丑陋的庞然大物。没有
Fionna的聪慧,我们也难欣赏Shrek洋葱一般层次丰富的心灵。再说,代码一旦写成,
我们看到的也就是一段神来之笔。再难体会到作者在难题前内心有如困兽般地冲撞,面
临多种选择时精神的激荡。我们也再难追溯每个数据结构背后的理念,每段算法成型过
程中每一步的由来(顺便说一句。这也是为什么Knuth的书引人入胜的原因。每段算法怎
么从无到有,自粗而细,由慢转快,通通脉络清晰)。就算是理解代码本身,想来每人
的体会也有深有浅。不知道多少老大因为这些困难没能体会到阅读代码时心头肿胀(乱
用冯唐语)的快感?除非,除非有高手引领我们入门,给我们细述经典代码如何玲珑浮
屠,如何眼波婉转。


IBM的Grady Booch也强力推荐程序员大量阅读代码,认为这是从新手到高手的必要手段
。如果喜欢软件开发老大还没有订阅Grady Booch的博客的话,现在是时候了。G老大的
私人项目Architecture Handbook想必更是每位对软件架构有兴趣的老大的必读材料吧
?他在这本公开的手册将归类整理历史上各式架构。虽然这些工作开始还不到四年,但
上面已经有不少高质量的资料。比如以前提到过的Eclipse架构考古。也许用G老大自己
的话最能雄辩地道出软件考古的意义:classical science advances via the dance
between quantitative observation and theoretical construction." The former
is deliberate and intentional; the latter is creative and testable. Computer
science is full of empirical observation and the construction of theories,
but in the world of software we often spend all of time building artifacts
and not enough time doing science. We have our share of theories, about
process and tools, but much of that work is based on anecdote and personal
experience, not the hard, dispassionate data that reflects good empirical
work


G老大的架构手册有一栏read list,目前推荐的两个条目都是代码阅读。一是C++的STL
(设计,源代码)。二是qmail(设计,源代码)。今年的SIGCSE年会上,G老大做了主
题演讲。不,我没去。我也是看别人的博客写的,现在就等Podcast出来了。里面提到
计算机系不仅要交给学生知识,也要让学生领会“激情,美丽,快乐,和敬畏”,真是
深得我心啊。在演讲里,G老大频繁用“正确和高尚”来描述计算机业界众人的努力,
说从事软硬件研发的工作既是特权也是义务。它是特权,因为我们从根本上多方面深刻
地改变这个世界。基于同样的原因,这也是我们的义务。我们应当牢记这点,并让我们
的学生同样明白。不知道G老大和蜘蛛人有什么瓜葛。

又跑题了。还是说回来。

大家都熟悉的Code Reading: The Open Source Perspective是本不错的入门书。不过
作者着眼于零散的代码,注重局部细节的实现(比如第三章第四章),很少分析一段完整
程序:这段程序的动机是什么?解决了什么好玩儿的问题?哪些地方体现了作者的天才
?代码的设计理念是什么?面临选择,怎么做出取舍。。。

令人欣慰的是,人见人耐的老牌geek,资深出版人,Tim O’Reilly终于按耐不住出手
了。今年6月,O’Reilly将推出新书Beautiful Code: Leading Programmers Explain
How They Think。瞧这书名取的,多诱人啊。“Explain How They Think”,啧啧,这
不引诱俺体验一下当Craig Schwartz的经验么?

再看看目录,禁不住口水滴滴答答地流哈。Enough showed. Pre-ordered.
Greg Wilson: Foreword
Brian Kernighan: Beautiful Brevity: Rob Pike’s Regular Expression Matcher
Karl Fogel: Subversion’s Delta Editor: Interface as Ontology
Jon Bentley: The Most Beautiful Code I Never Wrote
Tim Bray: Finding Things
Elliotte Rusty Harold: Correct, Beautiful, Fast (In That Order): Lessons
From Designing XML Validators
Michael Feathers: The Framework for Integrated Test: Beauty through
Fragility
Alberto Savoia: Beautiful Tests
Charles Petzold: On-the-Fly Code Generation for Image Processing
Douglas Crockford: Top Down Operator Precedence
Henry Warren: Accelerating Population Count
Ashish Gulhati: Secure Communication: The Technology of Freedom
Lincoln Stein: Growing Beautiful Code in BioPerl
Jim Kent: The Design of the Gene Sorter
Jack Dongarra and Piotr Luszczek: How Elegant Code Evolves With Hardware:
The Case Of Gaussian Elimination
Adam Kolawa: Beautiful Numerics
Greg Kroah-Hartman: The Linux Kernel Driver Model
Diomidis Spinellis: Another Level of Indirection
Andrew Kuchling: An Examination of Python’s Dictionary Implementation
Travis Oliphant: Multi-Dimensional Iterators in NumPy
Ronald Mak: A Highly Reliable Enterprise System for NASA’s Mars Rover
Mission
Rogerio Atem de Carvalho and Rafael Monnerat: ERP5: Designing for Maximum
Adaptability
Bryan Cantrill: A Spoonful of Sewage
Jeff Dean and Sanjay Ghemawat: Distributed Programming with MapReduce
Simon Peyton Jones: Beautiful Concurrency
Kent Dybvig: Syntactic Abstraction: The syntax-case expander
William Otte and Doug Schmidt: Object-Oriented Patterns and a Framework for
Networked Software
Andrew Patzer: Integrating Business Partners the RESTful Way
Andreas Zeller: Beautiful Debugging
Yukihiro Matsumoto: Code That’s Like an Essay
Arun Mehta: Designing Interfaces Under Extreme Constraints: the Stephen
Hawking Editor
TV Raman: Emacspeak: The Complete Audio Desktop
Christopher Seiwald and Laura Wingerd: Code in Motion
Brian Hayes: Writing Programs for “The Book”
Andy Oram: Afterword

--

※ 来源:·BBS 未名空间站 http://mitbbs.com·[FROM: 199.246.]

 
[上篇] [下篇] [同主题上篇] [同主题下篇]
[转寄] [转贴] [回信给作者] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回]
回复文章
帐号:
密码:
标题:
内 容:
赞助链接
www.jiaoyou8.com
将您的链接放在这儿
 

版权所有,未名空间(mitbbs.com),since 1996

Site Map - Contact Us - Terms and Conditions - Privacy Policy