溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

學(xué)習(xí)Linux程序設(shè)計(jì)之路(1)UNIX程序設(shè)計(jì)哲學(xué)

發(fā)布時(shí)間:2020-07-02 01:38:11 來源:網(wǎng)絡(luò) 閱讀:599 作者:風(fēng)聲少年 欄目:軟件技術(shù)

     UNIX程序編程有自己特定的風(fēng)格,我們在學(xué)習(xí)UNIX程序設(shè)計(jì)的時(shí)候,應(yīng)該盡量遵從這種設(shè)計(jì)風(fēng)格,它能夠最大限度地幫助我們避免一些問題。

    • 簡單化

        許多有用并且好用的UNIX系統(tǒng)軟件都非常簡單,而且很小并易于理解。“小而簡單”是一個(gè)值得學(xué)習(xí)的技術(shù)。越大、越復(fù)雜的系統(tǒng)就注定會(huì)包含越大、越復(fù)雜的錯(cuò)誤,對于我們調(diào)試來說,是一件非常痛苦的事情。

    • 集中性

        讓程序執(zhí)行一個(gè)任務(wù)通常要比將所有功能串聯(lián)在一起要好很多。臃腫的程序一般很難進(jìn)行維護(hù)與使用,比起單一功能的程序來說,修改該程序的某一個(gè)功能很容易引發(fā)其他錯(cuò)誤,并且影響其他功能的使用。在UNIX程序中,當(dāng)用戶出現(xiàn)新的需求的時(shí)候,我們通常將各種小工具組合在一起來實(shí)現(xiàn)一個(gè)更加復(fù)雜的任務(wù),而不是試圖將用戶的需求放在一個(gè)程序中完成。

    • 可重用組件

        將應(yīng)用程序的核心實(shí)現(xiàn)為庫。具有簡單而靈活的編程接口、文檔齊備的庫可以幫助其他人開發(fā)出同類程序,或者把這些技術(shù)應(yīng)用到新的應(yīng)用領(lǐng)域。dbm庫就是一個(gè)例子,它是一組可重用的函數(shù),而不是單一的數(shù)據(jù)庫管理程序。

    • 過濾器

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

    • 開放的文件格式

        比較成功并流行的UNIX程序都是用純ASCII碼的文本文件或XML文件作為配置文件和數(shù)據(jù)文件。如果你在開發(fā)程序時(shí)采用了任一種做法,那你做對了!它使用戶可以可以用標(biāo)準(zhǔn)工具來修改和搜索配置項(xiàng),并且可以開發(fā)出新工具在數(shù)據(jù)文件上執(zhí)行新的功能。ctags源代碼交叉引用系統(tǒng)就是一個(gè)好例子,他把符號(hào)位置信息以適合于搜索程序使用的正則表達(dá)式的形式記錄下來。

    • 靈活性

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

         

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI