大家好,我们又见面了。谁预见到了今天啊?哈哈,我就预见到了!一旦步入步入婚姻的殿堂,就相当于过上了“土拨鼠日”。如果还没有看过那部电影,就去看看吧。看了之后,就会明白为什么自己老是犯同样的错误。当Jeff说他不再写书的时候,我就知道这是一个“瘾君子”开的空头支票。Jeff不可能停止写书。就在今天,我们还在说起他“绝对”不可能写的另一本书呢(实际情况是,有一章已经在写了)。写书已深入到他骨子里面去了。千里马生来就是要奔跑的,Jeff生来就是要写作的。
Jeff太有规律了。他就是离不开硬盘里那些小小的0和1。忽视它们是不可能的。凌晨3点,我们睡梦正酣的时候,Jeff的生物钟就在催促他起床了(巧合的是,我们4岁大的小儿子也恰好在这个时候爬到我们的床上。爷儿俩的行为模式我都理解不了啊)。一股神秘的力量促使Jeff的大脑自动释放出解决方案、头脑风暴和臭虫之类的东西,迫使他跑到办公室把这些问题——就像一个神秘的网络超级英雄,防止线程又成为薄弱环节。[^saving the thread from becoming just another loose end,直译就是“防止线头儿又松了”]
但积累这些知识供自己使用,这对Jeff来说远远不够。好东西不该独享。所以必须把它们传播开来,必须把它们写下来。知识像电波,有心人能接收得到。这就是他为你所做的,亲爱的读者,是他热爱微软技术的证明。
本书还有另一层意义在里面。Jeff每次绕着太阳“公转”一圈,都会变得更老一些。经过多年的积累,他也学着“向后看”了。由于看事情的方式变得更成熟,所以他重写了讲反射的那一章。或许你也应该跟他一起回顾一下这个主题。可以学到怎样让代码自个儿询问关于代码的事儿,进而更深入地思考为什么反射要那样工作。穿上便服,找一把舒服的皮椅子坐下,花些时间想想自己的代码以及它们生命中更深层次的意义。
本书还讲了一样有趣的东西,就是异步/等待[^ async和await是C#的两个关键字,允许用顺序编程模型执行异步操作]。和我老公以前鼓捣过一阵子的AsyncEnumerator相比,这个东西显然进步了不少。哎,我还以为今后离不开它了呢!事实上,虽然他跟我讲了好多次AsyncEnumerator,但这个东西根本就没有在我的脑子里“阻塞”嘛!于是我窃想,如果知道什么是enumerator是人口普查员的意思。这一章难道是讲人口普查员怎样协调工作的事儿?太浪费纳税人的钱了吧!不过,我相信它在计算机里面的意义比我查到的好。Jeff和微软的团队一起工作,将异步/等待打磨得很完美。你现在通过这本书就能舒舒服服地享受他们的成果了。我建议你好好读一下。嗯,要顺着读。[^Kristin 用“sequentially”一词来吐槽顺序编程模型]
本书的另一个重头戏是我感觉最兴奋的。希望你们都来看看关于WinRT的内容。这个术语太书呆子气了,我的理解就是“马上为我无敌帅气的平板搞一些很酷的应用出来!”你猜得没错,新的Windows Runtime就是围绕无敌帅气的触摸屏展开的。孩子喜欢小鸟飞向小猪,我则喜欢跟鲜花有关的东西,而你完全可以用平板做其他事情。没有做不到,只有想不到!去折腾出一些“奇思妙想非常牛掰”(Wondderful Innovative Nifty Really Touchy,WinRT)的东西出来。就当是为了我,好好看看这一章。否则的话,我对Jeff和他无休止的写作事业可能真的会失去耐心,会把他关到一间只有枕头线脑[^Kristin 又在吐槽“thread”了。]而且没有电的小黑屋里面。你们程序员看着办吧,是用WinRT写一些很酷的应用,还是再也没有Jeff的新书看!
总之,在你们的力挺之下,Jeff的又一部大作诞生了。我们的家庭貌似又可以回归正常状态了。但真的正常吗?或许他不停写书才是真的正常吧。
让我们耐心等待下一本书的神秘召唤。
Kristin Trace(Jeffrey的妻子)
2012 年 10 月
土拨鼠日这个电影我看了,重复的过着一天的生活,虽然是循环,但是主角也在慢慢的改变,也在做自己的努力去改变这个循环,结局是美好的,可能有些人会希望像男主人公一样,循环往复吧。
看看人家的老婆写的序,是不是有些羡慕,真好,真香。好好过好每一天吧,无论快乐和不快乐,逝者如斯夫,不舍昼夜,懂得珍惜当前,眼前人,手中事,做到无愧于心。