delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

30 Jul 2004

FreeBSD's Architectural Guidelines

Translated from here.

下面这些指导方针大体上描述了我们的观念:

·绝不增加新功能,除非由于缺失它而有人无法完成某个实际的应用。
·确定一个系统“不是什么”,和它“是什么”同样重要。不去满足整个世界的每一个需求,相反地,让系统尽可能地容易扩展,从而使增加的新需求能够以向上兼容的形式添加。
·尽可能用通用的方法来解决问题,当然,从一个实例抽象出来的范型要比闭门造车强。
·如果一个问题没有被完整地理解,那么,也许最好干脆不去解决它。
·如果能用10%的努力完成90%的工作,那么,使用这个更简单的解决方案。
·尽可能隔离复杂性。
·提供机制,而不是策略。特别地,把用户界面策略交给客户去解决。

From Scheifler & Gettys: “X Window System”


Archived: 1 Comment

Howard.W | July 29, 2004 7:17 PM

还是让我来诠释一下吧:

1.决不引进新的文件系统,除非有人能证明我们现有的文件系统无法存储某种文件.

2.看清谁是我们的用户和看清楚谁不是我们的用户一样重要,我们要让我们的用户时刻"充满希望",我们的用户都是乐观向上地,他们只要能看到 将来 我们有可能 在现有基础架构上 实现 和 现在 别人的用户 正在 使用的功能 的希望 就满足了.

3.我们决不会闭门造车,你看,我们要统一"raid frame"的 雄心 就是 被 那个 一直饱受(翻译的话请使用过去将来进行时)“Adaptec SCSI Host raid"折磨的用户 所激励地.

4.如果我们 能 建议用户不加载ACPI模块 并 能让那些 被那个蹩脚的ACPI奴役的 用户们 接受 我们的建议 的 话, 那么我们也许最好干脆不去解决现在的ACPI问题了, 因为我们 需要 再次地 去 完整地 理解 一下新版本的ACPI呀.

5.请看,我们只用了10%的努力去维护几个论坛和邮件列表 就 出色地解决了每个RELEASE版本中90%的默认配制下的BUG, 这是个更多么简单的解决方案啊.

6.我们用PORTS把用户从复杂的第三方软件安装操作中隔离并解救出来,用户只需要简单地make install就可以啦….什么?你想在编译之前加一些配制参数?你完全可以把我们映射过的参数放到环境变量中啊…..什么?我们映射出来的参数不全…这可真是遗憾啊,不好意思啦,没有参考文档,还是请您自己研究一下Makefile文件吧,我们相信你的实力,您是完全可以自己搞明白Makefile文件中的那些变量的.

7.我们提供了很多的功能和机制以及大量的参数,我们相信您可以根据您的实际应用总结出一套配制方案.这样对您是很有好处的,因为通过这个配制过程,您可以总结出一套适合自己的策略,这样您所实现地应用就会比那些不了解您的"策略"的人所实现的应用更加出色,而且您还可以比别人"更会"使用我们的XxxxXXX.