Unix哲學(xué)
摘選自《Linux程序設(shè)計(第三版)》
許多很有用的Unix工具是非常簡單的,因此也是很小并易于理解的。“小而簡單”是值得學(xué)習(xí)的,更大、更復(fù)雜的系統(tǒng)注定包 含更大、更復(fù)雜的bug,而調(diào)試是所有人都想避免的。
通常,讓一個程序很好地執(zhí)行一項任務(wù)要好過把所有的功能都亂七八糟地堆在一起。功能腫脹的程序難于使用和維護。單一目標(biāo)的程序更容易隨著更好的算法或界面被開發(fā)出來而得到改進。在UNIX中,當(dāng)用戶出現(xiàn)新的需求時,通常是把小工具組合起來已完成更復(fù)雜的任務(wù),而不是試圖將一個用戶可能期望的所有功能放在一個大程序里。
將應(yīng)用程序的核心實現(xiàn)為庫。具有簡單而靈活的編程接口、文檔齊備的庫可以幫助其他人開發(fā)出同類程序,或者把這些技術(shù)應(yīng)用到新的應(yīng)用領(lǐng)域。
許多Unix程序可用作過濾器。也就是說,它們對輸入進行轉(zhuǎn)換并產(chǎn)生輸出 。正如我們將在后面看到的,Unix提供了一些機制,讓我們可以把一些Unix程序通過一種新穎的方式組合起來,以開發(fā)出相當(dāng)復(fù)雜的應(yīng)用程序。當(dāng)然,這種類型的作用是靠前面提到的開發(fā)方法支撐的。
比較成功并流行的Unix程序都使用純ASCII碼的文本文件作為配置文件和數(shù)據(jù)文件。如果你在開發(fā)程序時采用了這種做法,那你就對了!它使用戶可以用標(biāo)準(zhǔn)工具修改和搜索配置項,并且可以開發(fā)出在數(shù)據(jù)文件上執(zhí)行新功能的新工具。
你不能期待用戶都能正確地使用你的程序。所以,在編程時要盡量考慮到程序的靈活性;盡量避免對字段長度或記錄數(shù)目作人為地限制。如果你能做到的話,則你編寫的程序既能在單機上運行,也能跨網(wǎng)路運行。永遠(yuǎn)不要認(rèn)為你知道用戶想做的一切事。
網(wǎng)站欄目:Unix哲學(xué)的理解
本文地址:
http://weahome.cn/article/jpijje.html