共计 10 篇文章

详图实证:再谈JavaScript的语源问题

本文发表于《程序员》2011.03期 有两个错误的观点,其一是“JavaScript在语源上继承自Cmm”。这个错误的观点主要的来自于以下途径(部分): 2002年10月7日的《Wired Magazine(连线杂志)》的一份名为“Mother Tongues”的图; O’Reilly公布的“The History of Programming Languages图; Levenez.com公布的“ ...

旧文重发:行在道上,从局部到全局——与师者高焕堂、赵善中先生谈《大道至简》

本文载于《程序员》2009.10期 行在道上,从局部到全局 ——与师者高焕堂、赵善中先生谈《大道至简》 五年前,因为偶然所得,我画下了一个名为“软件工程层状模型(EHM)”的图。随后,我在这个图的思维框架里面,回顾了自己数年以来的工程与软件开发实践,写下了一本《大道至简——软件工程实践者的思想》。从那时起,我一直徘徊在软件工程与技术研发之间。与大多数人不同的是,这种徘徊不是迷茫的,而是清醒的, ...

本来面目——大教堂、集市,与作坊

本文刊发在《程序员》杂志09年第三期上。讨论了三种不同背景下的软件工程方法。本文恢复了发表时(因为篇幅)删除掉的一些文字内容。 一、两本书 1997年,论文《大教堂与集市(The Cathedral and the Bazaar)》成为一篇挑战教义神权的战斗檄文。从那之后,开源与闭源的战火就从未熄灭过。那些日子里,一些教堂里的圣人也偶尔地裹了头帕,装成市贩的样子到集市中去探探行情;一些小贩们也变成了信众,走进教堂在胸口画下十字。 战场之外的少数鼓号者们, ...

表面的简洁

本文刊发在《程序员》杂志09年第二期上。是讨论函数式语言基本性质和发展方向的一篇文章。 一、把大象装进冰箱 在命令式语言(当然我们可以确指为C、Delphi、Java或C#等等)中,初学者的第一个疑难便是这样的代码(注1): X=X+1 为什么?因为在数学概念中,上述等式是不能成立的。这种表达式是计算机的思维逻辑:当它运算上述表达式(或语句)时,X被作为暂存单元——例如冰箱。 ...

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

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

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

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

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

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

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

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

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

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

旧文重发:程序员的一天

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