<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 軟件設計之道:簡(jiǎn)潔

軟件設計之道:簡(jiǎn)潔

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

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

本文引用地址:http://dyxdggzs.com/article/233945.htm

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

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

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

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

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

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

  1、 編寫(xiě)不必要的
  2、 代碼難以修改
  3、 過(guò)分追求通用

  編寫(xiě)不必要的代碼

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

  代碼難以修改

  設計程序時(shí),應當根據你現在確切知道的需求,而不是你認為未來(lái)會(huì )出現的需求,軟件項目的一大殺手就是所謂的“僵化設計”,產(chǎn)生的原因主要有兩個(gè):

  1、 對未來(lái)做太多假設
  2、 不仔細設計就編寫(xiě)代碼

  過(guò)分追求通用

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

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

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

  1保持一致

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

  2可讀性

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

  3命名

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

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

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

  而下面代碼則不同:

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

  4注釋

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

  :軟件設計之道。



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>