JavaScript全局优化带来的负面效果……

读者在China-pub中指出《JavaScript语言精髓与编程实践》的一个示例在FF上不正常。具体来说,就是第“4.6.6 语句或语句块中的闭包问题”中的第二、三、四三个示例。这个问题我反复测试过,只出现FireFox(SpiderMonkey JavaScript)中。我当时意识到是SpiderMonkey特殊的全局变量引用机制导致的,但因为没有切实地、在源代码级别观察过,因此我没有立即回答这个问题。 这些天有点时间了,把这个话题拿出来重新讨论。代码是这样子的: var obj ...

对JavaScript的eval()中使用函数的进一步讨论~

《JavaScript语言精髓与编程实践》的读者I22141提出了一问题:为什么下面这段代码在JScript和SpiderMonkey中表现不一样: var func = eval("(function(){})"); alert(typeof func); 更进一步的问题是,书中对匿名和具名函数在JScript与SpiderMonkey中的表现解释得不够清楚。好的,这篇文章就这个问题深入讨论,不单涉及书中的内容,也更深入地讲述一下JS的解释与执行过程——其实所有的内容在书中都有涉及,但过于分散,不便于专门地来分析一个具体问题。 首先,应该明确表达式与语句。对于JS来说,eval()总是试图执行一个语句, ...

纪念际强

突闻海浩网于际强兄噩耗,遂匆匆作文,以此纪念。 于际强, 男,汉族,河南人,后定居新疆克拉玛依 生于1974年腊月23,1975年2月3号, 逝于2007年腊月24,2008年1月31号,遭遇车祸不幸离去.年满33岁. 生前为海浩网创办人. 在来海浩之前,我就知道际强兄,但来了海浩之后,我反而不知道了。 我可以算是个疯狂的下载者,因此我的印象中有一些与下载站相关的名字,例如最早的高春辉、华军乃至于天网,也有于际强。至于这个名字是什么时候进入我的脑海里的,我却不得而知, ...

标题党的进步:道字大旗不再扯,美为号召又开张

标题党的进步:道字大旗不再扯,美为号召又开张 —— 我读《编程之美》 题记 为拟这篇读后的标题,我花费了不少的功夫,最终我想起邹欣先生在他的博客上的一段文字,说的是上次博客堂年会上的预测之TOP(在这里)。其中就有这样的一个关于书名的观点,正好引来作本文的开题。再加之本就是邹先生所述或所认可的观点,固而必当切合其书的本旨。 0、引子 有一天,我问了方志远兄一个问题:有没有一本书,是有一个主标题,而有两个副标题的。志远兄答我说,明清或民国时期的书里可能会极偶然地有过,但那种做法在现在的书中,是找不到的。 ...

思考才是进步本质——近期文章回顾

到底是什么让我在进步?这个话题很久以前我就拟过,却一直没有作答。我总是把这样的一些问题拟给自己,这个过程,在我看来就叫反思。 我不停地反思,反思这个过程本身,反思“反思这个过程”本身,如此递归往复下去。如同李维先生说的,思考才是进步本质,我找到了不停催促自己前行的动力。 自去年来,我有些文章是发在BLOG之外的,因为受了人家所托的缘故,所以不是太方便在自己的博客上发布。现在,过去了很长的时间,网上的转载也不少了。因此今天把这些再贴了过来,也是一段经历的回顾。 工程方面,近些年来我的思考已经渐渐地少了。 ...

旧文重发:做人、做事,做架构师——架构师能力模型解析

这篇文章发表于《程序员》2008.04期。其中有关模型图参见: 架构师的能力模型(图),有关该模型的另一个讨论参见:能力要成体系。 引子 究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年或者更久,而仍然得不到任何的发展空间?你觉得自己已成为技术圈中的大牛,并信心满满地去拿明天就要颁发的某某大奖,然而却仍然停留在同样的技术职位上,去年到今年涨的薪水甚至填不平物价升幅?于是,你开始对老板不满,对员工不满,对昨天升职的那个同事不满……你开始计划明天就要跑单,或者准备考虑提出加薪却又心怀忐忑。 如果技术人员有发展的轨迹, ...

旧文重发:苹果是怎么吃到的?

苹果是怎么吃到的? ——职业规划,从了解自己开始 注:这篇文章发表于《程序员》2008.03期。 克里希拉穆提有一本著作,名为《重新认识你自己》,我每每读起,都汗如雨下。克氏的每一句话,每一个发问都直刺人的内心,其目如炬如电。克氏的作品大多如此:不停地陈述、不停地发问。 引子 ……路人甲抬头的时候,看见一棵巨大的苹果树,他想,我如果能吃一个苹果就好了…… 面临需求 你感到饥饿了? ...

旧文重发:剑走偏锋:非主流的程序员

这篇文章发表于《程序员》2007.06期。 引子 在冷兵器时代,大概刀剑算是主流的武器,在军营中,则以长枪、弓箭为主。然而我前两天看了一篇文章,说短棍成为现代实战格斗中的主要武器。回望从前,短棍绝对不会成为主流武器,因为相对于长兵器,他实在难于有什么优势。 同样,我们再回望软件界的从前(我是指国内软件这短短的十几年的历史),我们也会发现,很多东西或从主流变为非主流,又或者从非主流晋升为主流。而我们的开发人员,学完短棍再学长枪,然而多是套路不对,不得不感叹: ...

旧文重发:程序员的七种武器

这篇文章发表在《程序员》杂志2007.03期的专辑“程序员的武器大家谈”中。 《程序员》:请谈谈您所定位的优秀程序员应该有哪些技能?您是怎样理解程序员七种武器的? **周爱民:**一般来说,剑客用剑、刀客用刀,所以所谓七种武器,用在手上的,或许也就一件两件。但如果以技巧、技法论,却不是一件两件兵器就可以胜出江湖的。例如不懂刀的剑客,遇到用刀的人时便不知道如何刺击了。因为要先知其长短,才能避强而击弱。 不懂刀的剑客与不懂剑的刀客对打起来,大概会如同演舞一般,各练各的招式。 ...

旧文重发:产品线工程:团队迭代及其问题

这一篇发布于2007.04月的InfoQ首期中文版中。 问题 项目到了末期,总是长期、持续的维护。这种维护的工作甚至占到了整个周期的三分之二以上。而维护工作过程中会发生什么,是少有人讨论的,因为对于多数工程专家来说,这是在“项目结束之后”的事件。 在我看来,维护周期的产出有一种可能:后续版本。这种情况大多数会出现在自主研发的产品上;源于客户需求,也会出现在一些面向客户的项目中。此外,基于客户项目的产品化,也是可能的输出。 这些输出的共同点是:没有改变项目的实质,而是对项目的延续或者完善。因此, ...

旧文重发:谈企业软件架构设计

这篇专访是ZDNET的李宁编辑在2007.03月期间做的。 [编者语] 最近在网上读到了“杀不死的人狼——我读《人月神话》”系列文章。是周爱民关于《人月神化》的读书心得。《人月神化》在软件工程里一本很有分量的书,讲述了Brooks博士在IBM公司 System/360家族和OS/360中的项目管理经验。周爱民在他的这一系列文章中用自己架构师经历为基础,从他的视角重新品读了这本书。而这也使我有了采访下他的想法,从中我们也许可以了解到中国企业内软件架构设计这个环节的现状。目前周爱民是盛大网络架构师。想与ZDNet技术专家一起分享你的智慧吗?请联系我leesbfpsj#hotmail.com. ...

旧文重发:程序员的一天

程序员的一天 (2004.08.23, aimingoo) 这一篇是我曾经写给CSDN的一篇投稿。算是一段个人经历了。 通常,我的一天总是从上一天的午夜零点开始的。如果这一天是周六或者周日,那么情况将变得非常复杂。 很庆幸的是2004.08.23这一天我的作息还是比较规律的。可能因为它是星期一的缘故,也可能是因为它正好是我的另一个阶段性工作的开始。 2004.08.23 00:00 深夜, 工作中 通常在joy正式入睡之前,我是无法做任何有意义的工作的。 joy是我的老婆, ...

老大,我还在卖灯呢……

CodeGear终于易主, 随着Prodox的失败、DBASE的失败、BDE的失败……以及一连串在数据库引擎上的失败,Delphi现在终于跟数据库成了一家人,$3200万,新东家便成了做数据库的Embarcadero了。 转发了N多消息给MSN列表上的朋友——曾经一起战斗在Borland的、Delphi的阵营里的那些朋友们,在等着他们回消息的空档,我在想着会有多少人会捶胸顿足,或惊讶莫名…… 然而,第一个便是程云给我发回来的消息:老大,我还在卖灯呢。 约三年前,程云便离了开发界,为点亮中国的大大小小的乡村城镇、街道集市而努力奋斗了。而此刻,我在回想着曾经的朋友,还有多少人是在开发圈子里呢,还有多少人是在Delphi圈子里呢? ...

朋友们,我的D2之行

D2开始了,然后又结束了。很快,但留给我深刻的印象。这一届D2,我遇到了一些旧的朋友,看到了一个新的开端。一些故事发生了,很快在消失。然而D2,很快的又会到下一届了,我想…… 一、故事的开始 来到北京之后第一次上网,就从我的MSN空间里看到一条消息,是克军发来的。克军,我并不认得,但他在消息中提到一件事:约我做第二届D2的讲师;提到一个人:Hedger Wang。 至于克军是Who,大家去看他的相册好了。 ...