我对UNIX的理解
admin
2023-02-04 16:00:06
0

 1994年,X Window系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了《The UNIX Philosophy》,提出了9条训格之言:

一:小即是美。 二:让程序只做好一件事。 三:尽可能早地建立原型。 四:可移植性比效率更重要。 五:数据应该保存为文本文件。 六:尽可能地榨取软件的全部价值。 七:使用shell脚本来提高效率和可移植性。 八:避免使用可定制性低下的用户界面。 九:所有程序都是数据的过滤器。 此外还有十条原则则并不为所有人认同,甚至还是争论的焦点(如宏内核和微内核之争):
一:应该允许用户定制操作环境。 二:让操作系统核心小而轻。 三:使用小写字母并尽量简短。 四:节约纸张,保护树林。 五:沉默是金。 六:并行地思考。 七:部分加部分大于整体。 八:寻找问题的帕雷托法则。 九:程序随需求而增长(Worse is better)。 十:层级地思考。

罗勃·派克在他的《Notes on Programming in C》中提到了以下格言。虽然这些规则是关于程序设计的,但作为Unix哲学丝毫不为过:

  • 规则一:你永远不会知道你的程序会在什么地方耗费时间。程序的瓶颈常常出现在意想不到的地方,因此在你确信找到瓶颈后再动手优化代码吧。
  • 规则二:测试代码。只有在你详细测试了代码,并且发现一部分代码耗费了绝大部分的运行时间时再对程序作速度优化。
  • 规则三:功能全面的算法(fancy algorithm)在处理小规模问题时效率很低,这是因为算法时间效率中的常量很大,而问题往往规模很小。除非你知道你遇到的常常是复杂的情况,否则就让代码丑陋但是简单而高效吧。(即使问题规模确实很大,也首先尝试第二条规则。)
  • 规则四:功能全面的算法比简单的算法更容易产生Bug,更难实现。尽量使用简单的算法和数据结构。
  • 规则五:数据决定一切。如果选择的数据结构能很好的管理数据,算法部分往往不言自明。记住,数据结构,而非算法,才是编程的关键。
  • 规则六:没有第六条规则。

相关内容

热门资讯

终于懂了“欢乐贰柒拾开挂器?”... 网上科普关于“欢乐贰柒拾有没有挂”话题很是火热,小编也是针对欢乐贰柒拾作*弊开挂的方法以及开挂对应的...
玩家最新攻略“中至万年麻将是不... 家人们!今天小编来为大家解答中至万年麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
马斯克:预言AI取代白领,擎天... 【1月11日科技富豪马斯克抛出系列颠覆性预言】在一场长达三小时的深度访谈中,马斯克预言AI发展将先取...
玩家攻略科普“樱花之盛牛牛怎么... 网上科普关于“樱花之盛牛牛有没有挂”话题很是火热,小编也是针对樱花之盛牛牛作*弊开挂的方法以及开挂对...
今日重大消息“微乐南昌麻将开挂... 网上科普关于“微乐南昌麻将有没有挂”话题很是火热,小编也是针对微乐南昌麻将作*弊开挂的方法以及开挂对...
【第一财经】“白金岛歪胡子有没... 【第一财经】“白金岛歪胡子有没有挂?”(确实真的有挂)您好,白金岛歪胡子这个游戏其实有挂的,确实是有...
今日重大发现“方片十三张到底有... 今日重大发现“方片十三张到底有挂吗?”(透视曝光猫腻)您好,方片十三张这个游戏其实有挂的,确实是有挂...
玩家攻略科普“旺旺福建麻将怎么... 家人们!今天小编来为大家解答旺旺福建麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
终于懂了“趣友开挂神器?”(原... 您好:趣友这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏中打...
今日重磅消息“红心自由麻将辅助... 网上科普关于“红心自由麻将有没有挂”话题很是火热,小编也是针对红心自由麻将作*弊开挂的方法以及开挂对...