1. 程式人生 > >學習Linux程序設計之路(1)UNIX程序設計哲學

學習Linux程序設計之路(1)UNIX程序設計哲學

文件 系統 領域 mil 自己 編程 代碼 復雜 容易

UNIX程序編程有自己特定的風格,我們在學習UNIX程序設計的時候,應該盡量遵從這種設計風格,它能夠最大限度地幫助我們避免一些問題。

    • 簡單化

      許多有用並且好用的UNIX系統軟件都非常簡單,而且很小並易於理解。“小而簡單”是一個值得學習的技術。越大、越復雜的系統就註定會包含越大、越復雜的錯誤,對於我們調試來說,是一件非常痛苦的事情。

    • 集中性

      讓程序執行一個任務通常要比將所有功能串聯在一起要好很多。臃腫的程序一般很難進行維護與使用,比起單一功能的程序來說,修改該程序的某一個功能很容易引發其他錯誤,並且影響其他功能的使用。在UNIX程序中,當用戶出現新的需求的時候,我們通常將各種小工具組合在一起來實現一個更加復雜的任務,而不是試圖將用戶的需求放在一個程序中完成。

    • 可重用組件

      將應用程序的核心實現為庫。具有簡單而靈活的編程接口、文檔齊備的庫可以幫助其他人開發出同類程序,或者把這些技術應用到新的應用領域。dbm庫就是一個例子,它是一組可重用的函數,而不是單一的數據庫管理程序。

    • 過濾器

      許多UNIX應用程序可用作過濾器。也就是說,他們對輸入進行轉換並產生輸出。正如你將在後面看到的,UNIX提供了一些機制,讓我們可以把一些UNIX程序通過一種新穎的方式組合起來,以開發出相當復雜的應用程序。當然,這種類型的重用是靠我們前面提到的開發方法支撐的。

    • 開放的文件格式

      比較成功並流行的UNIX程序都是用純ASCII碼的文本文件或XML文件作為配置文件和數據文件。如果你在開發程序時采用了任一種做法,那你做對了!它使用戶可以可以用標準工具來修改和搜索配置項,並且可以開發出新工具在數據文件上執行新的功能。ctags源代碼交叉引用系統就是一個好例子,他把符號位置信息以適合於搜索程序使用的正則表達式的形式記錄下來。

    • 靈活性

      你不能期待用戶都能非常正確地使用你的程序。所以,你在編程時應盡量考慮到靈活性,盡量避免隨意限制字段長度或記錄數目。如果你能做到的話,則你編寫的網絡程序既能在單機上運行,也能跨網絡運行。永遠不要認為你知道用戶想做的一切事。

學習Linux程序設計之路(1)UNIX程序設計哲學