編寫Linux實用程式的藝術(轉)
Linux 和其他類 UNIX 系統總是附帶了大量的工具,它們執行從顯而易見的到不可思議的廣泛功能。類 UNIX 程式設計環境的成功很大程度上歸功於工具的高品質和選擇,以及這些工具之間相互銜接的簡易性。
作為開發人員,您可能會發現現有實用程式並不總是能夠解決問題。雖然能夠透過結合使用現有實用程式來容易地解決許多問題,然而解決其他問題卻至少需要一些實際的程式設計工作。這些後面的任務通常是建立新實用程式的候選任務,結合現有實用程式來建立新實用程式可以透過做最少的工作來解決問題。本文考察優秀實用程式所具有的品質,以及設計這種實用程式所經歷的過程。
優秀的實用程式具有哪些品質?
Kernighan & Pike 所著的 The UNIX Programming Environment 一書中包含了對此問題的精彩討論。優秀的實用程式是把自己的工作做得儘可能好的實用程式。它必須與其他實用程式配合融洽;必須能夠容易地與其他實用程式結合使用。無法與其他實用程式結合使用的程式不是實用程式,而是應用程式。
實用程式應該允許您根據手邊的材料廉價而容易地構建一次性的應用程式。許多人認為實用程式就像是工具箱中的工具。設計實用程式的目標不是為了讓單個工具來做所有事情,而是為了擁有一組工具,其中每個工具都儘可能好地做一件事情。
有些實用程式自身就是相當有用的,而其他實用程式則必須與一系列實用程式配合使用。前者的例子包括 sort 和 grep。另一方面,xargs 除了與其他實用程式(最常見的是 find)配合使用外,很少單獨使用。
使用什麼語言來編寫實用程式?
大多數 UNIX 系統實用程式都是用 C 語言來編寫的。本文中的例子使用 Perl 和 sh。應該使用恰當的工具來做恰當的事情。如果您對某個實用程式使用得足夠頻繁,那麼用編譯型語言來編寫它的成本也許能透過效能提升來獲得回報。另一方面,對於程式的工作負荷很輕這種相當普遍的情況,使用指令碼語言也許會提供更快的開發速度。
如果無法肯定,您應該使用自己最瞭解的語言。至少當您在對某個實用程式進行原型化,或在弄清它是如何有用時,程式設計師效率將優先於效能調整。大多數 UNIX 系統實用程式都是用 C 編寫的,這只是因為這些實用程式使用得足夠頻繁,以致考慮效率比考慮開發成本更加重要。Perl 和 sh(或 ksh)可能是用於快速原型化的很好語言。對於與其他程式配合實用的實用程式,使用 shell 來編寫它們或許要比使用更傳統的程式語言來編寫它們要容易一些。另一方面,當您希望與原始的位元組互動時,C 或許就是最好的選擇。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940248/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用C語言編寫Linux實用程式的藝術(轉)C語言Linux
- 編寫可讀程式碼的藝術
- 讀《編寫可讀程式碼的藝術》
- 編寫可讀性程式碼的藝術
- 『No22: 編寫可讀程式碼的藝術(1)』
- 為Linux 應用程式編寫 DLL(轉)Linux
- 編寫小而美函式的藝術函式
- 掌握編寫有效的GitHub提交資訊的藝術Github
- Linux Kernel 程式碼藝術——編譯時斷言Linux編譯
- 編寫適用於模擬器的 Linux 程式碼(轉)Linux
- 用Delphi編寫DelTree程式 (轉)
- 如何提高程式碼的可讀性? - 讀《編寫可讀程式碼的藝術》
- 用VC++編寫CGI程式 (轉)C++
- 用VB編寫抽獎程式 (轉)
- Linux 用彩色的vi寫程式(轉)Linux
- 用Delphi編寫安裝程式(1) (轉)
- 用VB編寫標準CGI程式 (轉)
- 用 C++Builder 編寫 Tray 程式 (轉)C++UI
- 編寫可讀性程式碼的藝術--萬字總結,看到即學到
- 《編寫可讀程式碼的藝術》讀書筆記(上)表面層次的改進筆記
- 用VC++6.0編寫撥號程式 (轉)C++
- 用 Delphi 編寫 VxD 裝置驅動程式(轉) (轉)
- Linux網路驅動程式編寫(四)(轉)Linux
- Linux網路驅動程式編寫(三)(轉)Linux
- Linux網路驅動程式編寫(二)(轉)Linux
- Linux網路驅動程式編寫(一)(轉)Linux
- 編排的藝術|K8S中的容器編排和應用編排K8S
- 編寫高效的MySQL應用(轉)MySql
- 用匯編編寫DOS下的記憶體駐留程式(5) (轉)記憶體
- 用匯編編寫DOS下的記憶體駐留程式(3) (轉)記憶體
- 用匯編編寫DOS下的記憶體駐留程式(4) (轉)記憶體
- 用BCB編寫身份證號識別程式 (轉)
- 用Delphi編寫塗鴉桌面的小程式 (轉)
- 編寫易讀的程式碼 (轉)
- 程式碼的藝術:如何寫出小而清晰的函式函式
- 在linux下用vim編寫一個C程式LinuxC程式
- VC在windows下編寫用於序列通訊的程式 (轉)Windows
- 用Java編寫ASP元件 (轉)Java元件