|
原帖由 netwinxp 于 2008-6-21 08:49 PM 发表 
作为备份操作却有写入行为不太合适——纯属个人观点。
其实 bean 用 -t 来作为 --read-only 的别名,我觉得不是太好,因为 -t 也可以作为 --time-out 的别名。这样就容易引起理解上的问题。当然加一个等号可以把两者区分开来,机器也就不会出问题了;但毕竟是人最终要看这些命令行,要去理解这些命令行。所以,是否有助于人的理解,那是很要紧的一件事。我在 http://boot-land.net/ 上曾经提过这个问题,但 bean 似乎没有注意到我的帖子。
至于说本线索所讨论的问题,我是这么认为的:在备份操作的同时也进行写入,这就是程序本来的用法。这没有错,如果说有错,那就是使用中的错误,也可以归咎于说明文档的不完善。如果把 -t 写成 --read-only,恐怕就醒目很多了,可能从某种程度上减少此类问题的发生,关键还是在于人的理解,只要人的理解不含糊了,那么人的操作也就不会出错了。
grubinst 本来的语义就是 install,这很清楚,毫不含糊。加上 --save 之后,显然就是在 install 的同时,也保存到文件。如果只是备份到文件而没有 install 的动作,那应该叫做 --save-only 或者 --save-without-install 才合乎语义。还有,如果 --save 本身暗含 --read-only 的话,那么假若有人想在一条命令中同时执行 install 和 save,则又变成不方便、不可能的了。
另外,我觉得这事不能怪 bean 设计得不周全。注意 bootlace 是早就存在的了,为了兼容性,那么 bean 也必须兼容 bootlace 的用法。这样 --read-only 也就成了 grubinst 的一个选项了。而 bootlace 没有 --save 的选项,bean 在 grubinst 中加入 --save 之后,当然不太适合去让 --save 来默认执行 --read-only 的操作。因为“一个开关只管一件事情”,这是程序设计的一个法则,除非还有什么特别的理由,才能执行连带的操作。总之,只要我们想到 --save 是 grubinst 新增的选项,就能理解为什么会是这样了。
[ 本帖最后由 不点 于 2008-6-21 09:58 PM 编辑 ] |
|