天涯小站 2.0

 找回密码
 注册
搜索
天涯小站 2.0 首页 拾萃 科技网络 查看内容

cleosong:瞎子摸象,自顶向下和面向目标

2009-7-3 04:15 AM| 发布者: 星光| 查看: 641| 评论: 0

摘要: 头两天为生计所迫,改别人写的代码改得头疼,终于忍无可忍,推翻了重来
头两天为生计所迫,改别人写的代码改得头疼,终于忍无可忍,推翻了重来。回头看
看,从来米国上学那天起,写代码已经写了二十多年,其间所见的怪事怪人,算起
来也真不少。

到硅谷后的第一个上司是个学硬件出身的英国人,他的口号是:代码谁都能写,代
码携带的技术才是真正有价值的。他雇用的一个硬件工程师,根本没有FUNCTION的
概念,两百行就能解决的问题,他弄出了一千多行,里边大部分是重复的代码。那
时候面向目标技术还没诞生,但是他至少应该有点模块的概念。此公的另一绝活是
变量名都用得特神秘:XYZ用完了,便是ABCD,要不是我们逼着他加上了IN-LINE COMMENTS,
谁也看不懂他那充满XYZ的天书,他还振振有词:短的变量名占内存小。这是1992年,
几千个BYTE就算大内存了,我们一时还真驳不倒他。

苏联人的教学方法和教科书组织影响了我们至少两代人。我们的教科书总是以系统
的、结构严谨的方式出现的。目录本身就是一个大纲,教学大纲基本就遵循目录。
曾经有几个懒蛋老师,就是这么做的,抄目录给我们。到了美国,我才发现,目录
完全可以以另一种面貌出现。一本程序员熟知的书,Programming Pearls的目录就
是这样,让人完全不知所云,彻底淹没在程序设计的汪洋里。请看:
Column 1: Cracking the Oyster
Column 2: Aha! Algorithms
Column 3: Data Structures Programs
Column 4: Writing Correct Programs

作者本人可能对程序设计概念很清楚,也不是成心让读者坠入五里云雾之中,只是
不喜欢板着面孔教训人式的系统方法,就别出心裁地弄出这样一本艺海拾贝式的拼
图游戏。可怜我们这些初学者,只好跟着他老人家瞎子摸象,好在坚持不懈地摸下
去,终将摸遍象身上的每个部分。

循着这样的教学方式,我的美国同事把艺海拾贝也带到工作场合里来,结果只能是
一盘毫无头绪的意大利面条。

大约在1999年,我见到了平生所见最漂亮的代码,是两个莫斯科大学物理系的博士
共同写的。巧合吗?当然不是。只有我们的“老大哥”才能写出那样的代码,也只
有我这个“小弟弟”才能欣赏它。那段程序美极了。标准的自顶向下的设计,从一
个树根开始,分出两三个树叉,然后再分,变量名都是有意义的,加上适当的IN-LINE
COMMENTS和文件,非常易于弄懂和维护。他们两人合作紧密,连FUNCTION名都采用
统一的规则,长度都弄成一样的,眯缝起眼睛来看,一排排的代码长短划一,好像
一篇漂亮的乐谱。那时面向目标的技术已经开始推广,但是那家公司仍旧采用C。我
以为,单用C一样也能写出漂亮的易于维护的程序,两个老大哥就是明证。

然后面向目标的罐头盒打开了,什么虫子都跑了出来。有些人天生就缺乏系统性和
组织能力,可惜这些人也牙缝里夹着面向目标的菜叶, 混进了程序员的队伍。结果就是
脱裤子放屁的一大堆CLASS的定义,毫无用处的FUNCTION名OVERLAPPING,定义了却
从来不用的OPERATIONS,庸才穿上了面向目标的外衣也还是庸才,只是危险性更大
了。

最新评论

手机版|天涯小站

GMT-5, 2026-7-12 03:54 PM

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部