最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Unix哲學(xué) A Quarter Century of Unix,Notes on Programming in C,Mike

2021-12-24 11:14 作者:信號(hào)再生中  | 我要投稿

Mike Gancarz的《UNIX哲學(xué)》[編輯]

1994年,X窗口系統(tǒng)開發(fā)組的成員Mike Gancarz根據(jù)他自己的Unix系統(tǒng)經(jīng)驗(yàn)以及和其他領(lǐng)域使用Unix系統(tǒng)的資深程序員們的討論結(jié)果,寫成了The UNIX Philosophy,提出了9條訓(xùn)格之言:

  1. 小即是美。

  2. 讓程序只做好一件事。

  3. 盡可能早地創(chuàng)建原型。

  4. 可移植性比效率更重要。

  5. 數(shù)據(jù)應(yīng)該保存為文本文件。

  6. 盡可能地榨取軟件的全部價(jià)值。

  7. 使用shell腳本來提高效率和可移植性。

  8. 避免使用可定制性低下的用戶界面。

  9. 所有程序都是數(shù)據(jù)的過濾器。

此外還有十條原則則并不為所有人認(rèn)同,甚至還是爭論的焦點(diǎn)(如宏內(nèi)核和微內(nèi)核之爭):

  1. 應(yīng)該允許用戶定制操作環(huán)境。

  2. 讓操作系統(tǒng)核心小而輕。

  3. 使用小寫字母并盡量簡短。

  4. 節(jié)約紙張,保護(hù)樹林。

  5. 沉默是金。

  6. 并行地思考。

  7. 部分加部分大于整體。

  8. 尋找問題的帕雷托法則。

  9. 程序隨需求而增長(更糟就是更好)。

  10. 層級(jí)地思考。

Unix哲學(xué)是一套基于Unix操作系統(tǒng)頂級(jí)開發(fā)者們的經(jīng)驗(yàn)提出的軟件開發(fā)的準(zhǔn)則和哲學(xué)。

UNIX 哲學(xué)由?Doug McIlroy?在1978年的《Bell System Technical Journal 》中發(fā)表:[1]


McIlroy:A Quarter Century of Unix[編輯]

道格拉斯·麥克羅伊是Unix系統(tǒng)上管道機(jī)制的發(fā)明者,也是Unix文化的締造者之一。他歸納的Unix哲學(xué)如下:

程序應(yīng)該只關(guān)注一個(gè)目標(biāo),并盡可能把它做好。讓程序能夠互相協(xié)同工作。應(yīng)該讓程序處理文本數(shù)據(jù)流,因?yàn)檫@是一個(gè)通用的接口。

更加簡化的版本是:做一件事,做好它。雖然只有第三條是特指Unix系統(tǒng)的,但Unix開發(fā)者們常常同時(shí)強(qiáng)調(diào)這三個(gè)信條。

Pike:Notes on Programming in C[編輯]

羅勃·派克在他的《Notes on Programming in C》中提到了以下格言。雖然這些規(guī)則是關(guān)于程序設(shè)計(jì)的,但作為Unix哲學(xué)絲毫不為過:

  1. 你永遠(yuǎn)不會(huì)知道你的程序會(huì)在什么地方耗費(fèi)時(shí)間。程序的瓶頸常常出現(xiàn)在意想不到的地方,因此在你確信找到瓶頸后再動(dòng)手優(yōu)化代碼吧。

  2. 測試代碼。只有在你詳細(xì)測試了代碼,并且發(fā)現(xiàn)一部分代碼耗費(fèi)了絕大部分的運(yùn)行時(shí)間時(shí)再對程序作速度優(yōu)化。

  3. 功能全面的算法(fancy algorithm)在處理小規(guī)模問題時(shí)效率很低,這是因?yàn)樗惴〞r(shí)間效率中的常量很大,而問題往往規(guī)模很小。除非你知道你遇到的常常是復(fù)雜的情況,否則就讓代碼丑陋但是簡單而高效吧。(即使問題規(guī)模確實(shí)很大,也首先嘗試第二條規(guī)則。)

  4. 功能全面的算法比簡單的算法更容易產(chǎn)生bug,更難實(shí)現(xiàn)。盡量使用簡單的算法和數(shù)據(jù)結(jié)構(gòu)。

  5. 數(shù)據(jù)決定一切。如果選擇的數(shù)據(jù)結(jié)構(gòu)能很好的管理數(shù)據(jù),算法部分往往不言自明。記住,數(shù)據(jù)結(jié)構(gòu),而非算法,才是編程的關(guān)鍵。

  6. 沒有第六條規(guī)則。

Pike的第一、二條規(guī)則重申了高德納的著名格言:“過早的優(yōu)化是一切罪惡的根源?!盵2]?Pike的第三、四條規(guī)則被肯·湯普遜改述成:“疑惑不定之時(shí)最適合窮舉?!笔聦?shí)上,這兩條規(guī)則也是KISS原則的具體表現(xiàn)。規(guī)則五在之前Fred Brooks的人月神話中也被提及。Jon Bentley的《Programming Pearls》中也有一章闡述了相同的設(shè)計(jì)哲學(xué)。此規(guī)則作為“如果你的數(shù)據(jù)結(jié)構(gòu)很好,那么控制它的算法就無關(guān)痛癢了”的例子常常被簡化成“簡約地寫代碼,聰明地用數(shù)據(jù)”。第六條規(guī)則當(dāng)然只是Pike針對蒙提·派森之小品Bruces sketch的幽默發(fā)揮而已了。


Unix哲學(xué) A Quarter Century of Unix,Notes on Programming in C,Mike 的評(píng)論 (共 條)

分享到微博請遵守國家法律
聂拉木县| 邢台市| 三台县| 奉贤区| 黄石市| 平邑县| 巨鹿县| 南乐县| 嘉黎县| 平度市| 武川县| 南汇区| 安远县| 尖扎县| 安庆市| 黄龙县| 清徐县| 格尔木市| 河池市| 东山县| 进贤县| 淅川县| 阜城县| 清水县| 文登市| 新源县| 镇赉县| 盐亭县| 岳池县| 乌兰浩特市| 龙泉市| 苏尼特右旗| 祥云县| 海宁市| 武邑县| 深泽县| 泗洪县| 永宁县| 兰州市| 浦江县| 轮台县|