新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 軟件設(shè)計之道:簡潔

        軟件設(shè)計之道:簡潔

        作者:areak 時間:2014-02-27 來源:電子產(chǎn)品世界 收藏

          提到,我們搞電子的或多或少接觸了一些,應(yīng)該看到社會對于類人才的需求日益增加,拿華為來說,其中可以說90%以上的工作崗位是招聘軟件開發(fā)工程師的。每個人編寫的都有自己的風(fēng)格,而程序員的差別在于理解能力,差勁的程序員不理解自己做的事情,優(yōu)秀的程序員則相反。如果你的程序還只是拼拼湊湊,毫無章法可言,那么這里的一些建議可能是很有幫助的。

        本文引用地址:http://www.104case.com/article/233945.htm

          我們思考一下,的終極目的是什么呢?是為了幫助其他人,給其他人的生活帶來方便,歸根結(jié)底,是讓復(fù)雜的事情變得簡單。詳細(xì)劃分一下,歸納為以下3個目的:

          1、 確保軟件能提供盡可能多的幫助

          2、 確保軟件能持續(xù)提供盡可能多的幫助

          3、 設(shè)計程序員能盡可能簡單地開發(fā)和維護(hù)的軟件系統(tǒng),這樣的系統(tǒng)才能為用戶提供盡可能多的幫助,而且能持續(xù)提供盡可能多的幫助

          我們現(xiàn)今使用的許多優(yōu)秀軟件,都是滿足這樣的3個條件的,軟件的設(shè)計開發(fā)給人們提供了諸多的幫助,而且每一款軟件都在不斷地更新,在原有的基礎(chǔ)上開發(fā)出更多人性化、更加高效的軟件,而要使這樣的一款軟件具有可維護(hù)性,則需要程序員的編寫的足夠優(yōu)秀,否則,則需要推倒重來,勢必會增加開發(fā)成本和周期。

          沒有東西是永恒不變的,環(huán)境在無時不刻的發(fā)生著變化,軟件則需要適應(yīng)這種環(huán)境,變化必然發(fā)生,所以程序員再設(shè)計時,總是希望預(yù)測未來的趨勢,為了適應(yīng)變化,常常會走進(jìn)誤區(qū),逐一列舉如下:

          1、 編寫不必要的
          2、 代碼難以修改
          3、 過分追求通用

          編寫不必要的代碼

          不要編寫不是必需的代碼,而且要刪除沒有用到的代碼,程序員不應(yīng)該在真正的需求來臨之前編寫那些代碼,因為沒有人能夠預(yù)測未來,如果現(xiàn)在就編寫代碼,等到你真正用的時候,還要重新設(shè)計,而且這些不必要的代碼很可能回到是“劣化”,所以應(yīng)當(dāng)做的是,省下重新設(shè)計的時間,等你真正需要時再去編寫那些代碼。

          代碼難以修改

          設(shè)計程序時,應(yīng)當(dāng)根據(jù)你現(xiàn)在確切知道的需求,而不是你認(rèn)為未來會出現(xiàn)的需求,軟件項目的一大殺手就是所謂的“僵化設(shè)計”,產(chǎn)生的原因主要有兩個:

          1、 對未來做太多假設(shè)
          2、 不仔細(xì)設(shè)計就編寫代碼

          過分追求通用

          代碼要修改是一個事實,所以有些程序員就會想方設(shè)法做一個足夠通用的辦法,保證可以適應(yīng)未來任何可能的形式。但結(jié)果是,無論做得怎么通用,其實都不夠滿足未來要面對的真實需求,而且如果你的代碼真的很通用,那么它通常不能從用戶的角度很好地滿足需求,而且太過通用就必須寫很多不需要的代碼,從而背離了軟件設(shè)計的簡約之道。

          應(yīng)對這種情況的方法就是采用漸進(jìn)式的開發(fā)設(shè)計,先從最簡單的部分開始,由簡入深,在每一個設(shè)計階段,下一步都只做最容易的事情,一步一步的來。

          那么,軟件設(shè)計本身要遵循什么樣的原則呢?其實我們一直在強(qiáng)調(diào)的就是,如何做到,下面是一些好的建議:

          1保持一致

          要做到簡單,保持一致是很重要的工作,如果你在一個地方采用了某種規(guī)則,就應(yīng)當(dāng)在其他地方都遵守這種規(guī)則,例如,某變量被命名為somethinglikethis,其他的變量也要這樣來定義,不要定義成other_like_this。如果代碼不能保持一致,會給其他程序員帶來困擾。完全保持一致,可以讓編程更簡單。

          2可讀性

          代碼被閱讀的次數(shù)遠(yuǎn)多于編寫和修改的次數(shù),所以,保證代碼容易閱讀很重要,而代碼的可讀性主要取決于字母和符號之間的空白排布。要把各部分拆分出來,就必須留出空白,但是空白太多也是不必要的,因為這樣會很難發(fā)現(xiàn)事物之間的聯(lián)系,那么保持留出的空白保持一致規(guī)范是必要的。

          3命名

          可讀性的另一部分重要內(nèi)容是為變量、函數(shù)等選擇合適的名字,名字應(yīng)當(dāng)足夠長,能夠完整表達(dá)其意義或者描述其功能,但不能太長,以免影響閱讀。

          這樣的代碼命名就很糟糕:

          Q=s(j,f,m);
          P(q);

          而下面代碼則不同:

          Quarterly_total = sum(January, February, march);
          Print(quarterly_total);

          4注釋

          為保證代碼的可讀性,好的注釋也很重要,但是,代碼的意圖通常不應(yīng)該用注釋來說明,直接閱讀代碼就應(yīng)該能夠理解,如果意圖不夠明顯,說明這段代碼還不夠簡單,只有當(dāng)你的代碼實在不能再簡單,其他程序員在修改時會產(chǎn)生困惑時,才應(yīng)該寫注釋來說明。

          :軟件設(shè)計之道。



        關(guān)鍵詞: 軟件設(shè)計 簡潔 代碼

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泰兴市| 和顺县| 洞口县| 元阳县| 湖南省| 卓尼县| 莲花县| 田东县| 汕尾市| 临安市| 永新县| 友谊县| 上思县| 方城县| 孟州市| 长乐市| 建德市| 阿拉善左旗| 平潭县| 扎赉特旗| 桐柏县| 抚宁县| 巫溪县| 荣成市| 英德市| 凤城市| 哈巴河县| 封开县| 土默特左旗| 黎城县| 洛扎县| 兴和县| 西吉县| 土默特右旗| 永平县| 桃园市| 怀安县| 德安县| 常德市| 崇阳县| 施秉县|