Linux 版 (精华区)

发信人: pangwa (everything will go end?), 信区: Linux
标  题: (Eric Raymond)大教堂和市集(8)
发信站: 哈工大紫丁香 (Mon Jan 24 14:19:41 2005), 转信

八. 从Fetchmail得来的另一些教益

  在他们回到一般的软件工程问题以前,还有几个从fetchmail得到的教益需要
思考。

  rc文件语法包括可选的“noise”关键字,它被扫描器完全忽略了,当你把它
们全抽取出的时候,关键字/值对更具可读性。

  当我注意到rc文件的声明在多大程度上开始象一个微型命令语言时,这是一个
Late-night的体验(这也是我为什么把popclient原来的“server”关键字改成了
“poll”)。

  对我来说似乎把这个微型命令语言变得更象英语可能会使它更容易使用。现在,
虽然我对经过Emacs和HTML及许多数据库引擎所证实的“把它做成一个语言”的设计
方式确信不疑,但是我并不是一个通常的“类英语”语法的狂热拥护者。

  传统程序员容易控制语法使它尽量精确和紧凑,完全没有冗余,这是计算机资
源还很昂贵时遗留下的一种文化传统,所以扫描策略需要尽可能的廉价和简单,而
具有50%冗余度的英语,看来好象是一个非常不合适的模型。

  这并不是我不用类英语语法的原因,我提到这一点是为了推翻它,在更廉价的
时钟周期与核心的时代,简洁并没有走到尽头,今天对一个语言来说,对人更方便
比对机器更廉价来的更加重要。

  然而,有几个原因提醒我们小心一点,一个是扫描策略的复杂度开销——你并
不想把它变成一个巨大的错误来源和让用户困惑,另一个是试图使语言表面上的类
似可以和传统语言一样令人困惑(你可以在许多4GL和商业数据库查询语言上看到这
一点)。

  Fetchmail的控制语法避免了这些问题,因为语言的领域是极其有限的。它一
点也不象一个一般性的语言,它很简单地描述的东西并不复杂,所以很少可能在英
语的一个小子集与实际的控制语言之间发生混淆,我想这有一个更广泛的教益:

 16. 如果你的语言一点也不象是图灵完备的,严格的语法会有好处。

  另一个教益是关于安全的,一些fetchmail用户要求我修改软件把口令加密存
贮在rc文件里,这样觑探者就不能看到它们了。

  我没有这样做,因为这实际上起不到任何保护作用,任何有权读取你的rc文件
的人都可以以你的名义运行fetchmail——如果他们要破你的口令,它们可以从
fetchmail的代码中找到制作解码器的方法。

  所以fetchmail口令的加密都会给那些不慎重思考的人一种安全的错觉,这里
一般性的准则是:

 17. 一个安全系统只能和它的秘密一样安全,当心伪安全。


--
 飞扬的青春
            自由的享受
                      ----欢迎光临Linux版


※ 修改:·pangwa 于 Jan 24 14:22:42 修改本文·[FROM: 210.46.79.57]
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 210.46.79.57]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.372毫秒