科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux系统下设计优秀实用程序的艺术 (4)

Linux系统下设计优秀实用程序的艺术 (4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Linux 和其他类 UNIX 系统总是附带了大量的工具,它们执行从显而易见的到不可思议的广泛功能。类 UNIX 编程环境的成功很大程度上归功于工具的高品质和选择,以及这些工具之间相互衔接的简易性。

作者:Peter Seebach 来源:ibm.com 2007年10月16日

关键字: 操作系统 程序 设计 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

虽然这仅比对系统头文件使用 grep 方便一小点,但是它更不容易出错。它不会因为考虑不周的参数而产生无用的结果。另一方面,如果没有从头文件中找到给定的名称或数字,它不会产生诊断信息。它也不会费心去纠正某些输入错误。而且,由于命令行实用程序从来没有打算在自动化的环境中使用,因此它的上述特性无可非议。

另一个例子可能是取消对输入排序的程序(请参阅 参考资料 以获得指向此实用程序的链接)。这相当简单;也就是读入输入文件,以某种方式存储它们,然后生成一个随机顺序来输出那些行。这是一个几乎具有无限应用前景的实用程序。编写这个实用程序也比编写排序程序容易得多;例如,您不需要指定您没有对哪些键排序,或者是您希望按字母顺序、词法顺序还是按数字顺序随机排序。棘手的部分在于读入可能非常长的行。事实上,上面提供的版本在搞欺骗;它假设所读入的行中没有空字节。纠正这个问题要困难多了,我在编写它时懒得去理会它。

结束语

如果您发现自己在重复执行某个任务,可以考虑编写一个程序来完成这个任务。如果事实证明该程序更通用化一点是合理的,那就通用化它,这样您就编写了一个实用程序。

不要在您第一次需要某个实用程序的时候设计它。要等到您具有一些经验之后才着手设计。请随意地编写一两个原型;优秀的实用程序比糟糕的实用程序更能证明所花的时间和研究工作的价值。如果原先设想的出色实用程序最终却在您编写它之后成为无用之物,不要感到遗憾。如果您发现自己对新程序的缺点感到沮丧,您只需再执行另外一个原型化阶段。如果结果证明它是无用的,不奇怪,有时会发生这样的事情。

您要寻求的是这样一个程序,它查找您的最初使用模式之外的通用应用。我编写 unsort 是因为,我希望找到一种从旧的 X11“rgb.txt”文件中获得随机颜色序列的容易途径。从那以后,我将它用于令人难以置信的大量任务中,这些任务都不是为了生成用于调试和基准排序例程的测试数据。

优秀的实用程序能够为您在所有不很理想的作品上所花的时间带来回报。要做的下一件事情是使它对其他人可用,以便他们能够试验它。也要使您失败的尝试对其他人可用,也许其他人对某个实用程序具有您所不需要的用途。更重要的是,您的失败的实用程序也许是其他某个人的原型,从而给每个人带来一个美妙的实用程序。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章