<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 6, comments - 6, trackbacks - 0, articles - 14

    越復(fù)雜的東西越容易出錯(cuò),自動(dòng)步槍的威力強(qiáng)于狼牙棒,但步槍會(huì)卡殼,狼牙棒卻不會(huì)。同樣對(duì)于軟件開(kāi)發(fā)也一樣,一個(gè)進(jìn)行FFT變換的程序肯定比一個(gè)計(jì)算10以內(nèi)加法的程序要復(fù)雜,也更容易出錯(cuò)。

    軟件的復(fù)雜有兩種,一種是由于問(wèn)題域自身的復(fù)雜所造成的,比如FFT肯定比10以內(nèi)加法要復(fù)雜,這個(gè)是我們無(wú)法避免的。我所關(guān)心的是第二種復(fù)雜,就是人為造成的復(fù)雜。

    一個(gè)計(jì)算FFT的程序,我可以把它化為若干的函數(shù)來(lái)執(zhí)行,每個(gè)函數(shù)只做一件很簡(jiǎn)單的事,這樣每個(gè)函數(shù)單獨(dú)都可以由于自身的簡(jiǎn)單,而充分保證自己的可靠和正確。那么我只要能夠讓各個(gè)函數(shù)正確的合作就可以寫(xiě)出一個(gè)可靠的FFT程序。也就是說(shuō)把復(fù)雜的問(wèn)題變成很多個(gè)簡(jiǎn)單的問(wèn)題。

    在平時(shí)的程序設(shè)計(jì)中,很難對(duì)復(fù)雜有個(gè)明確的定義和劃分界限。是以代碼長(zhǎng)度?還是以算法的復(fù)雜?而且如果由人工來(lái)完成,那么由于人的惰性,寫(xiě)完程序就已經(jīng)可以手工了,很少有人會(huì)去檢查程序中各個(gè)模塊的復(fù)雜性,就更不會(huì)去主動(dòng)重構(gòu)代碼,來(lái)降低他的復(fù)雜度了。

    今天看到一個(gè)工具devMetrics,是在VS.NET下對(duì)代碼復(fù)雜性進(jìn)行分析的工具。我用它對(duì)才完成的GisMediator進(jìn)行分析。結(jié)果如下

    Member Locations Member Measures
    Project Class Member Statements Comments Comment Ratio Complexity
    GisMediator GisXmlNode GisXmlNode 11 0 0.0 2
    GisMediator GisXmlNode GisXmlNode 24 6 0.3 7
    GisMediator GisXmlNode fGisXmlNodeUnLoad 7 1 0.1 4
    GisMediator GisXmlTree GisXmlTree 5 0 0.0 1
    GisMediator GisSchemaElement GisSchemaElement 10 1 0.1 3
    GisMediator GisSchemaSimpleType GisSchemaSimpleType 20 2 0.1 5
    GisMediator GisSchemaComplexType GisSchemaComplexType 15 1 0.1 5
    GisMediator GisSchemaComplexType GisSchemaComplexTypeCompare... 14 0 0.0 8
    GisMediator GisSchemaTree GisSchemaTree 13 1 0.1 2
    GisMediator GisSchemaTree fDecodeSchema 53 14 0.3 24
    GisMediator GisSchemaTree fCompileSchema 4 0 0.0 1
    GisMediator GisSchemaTree SchemaValidationHandler 1 1 1.0 1
    GisMediator GisSchemaTree fSchemaTreeSearch 14 0 0.0 11
    GisMediator GisMainForm GisMainForm 2 3 1.5 1
    GisMediator GisMainForm Dispose 7 3 0.4 3
    GisMediator GisMainForm InitializeComponent 80 46 0.6 1
    GisMediator GisMainForm Main 2 3 1.5 1
    GisMediator GisMainForm GisMainForm_Load 4 0 0.0 1
    GisMediator GisMainForm GisMainForm_Closing 10 0 0.0 10
    GisMediator GisMainForm GisMainMenu_New_Click 9 2 0.2 1
    GisMediator GisMainForm GisMainMenu_Open_Click 13 3 0.2 3
    GisMediator GisMainForm GisMainMenu_Save_Click 2 0 0.0 1
    GisMediator GisMainForm GisMainMenu_SaveAs_Click 7 0 0.0 3
    GisMediator GisMainForm GisMainMenu_Print_Click 3 0 0.0 1
    GisMediator GisMainForm GisMainMenu_Exit_Click 2 0 0.0 1
    GisMediator GisMainForm GisFlexGrid_Initialize 18 1 0.1 1
    GisMediator GisMainForm fGisFlexGridSetCellStyle 26 0 0.0 13
    GisMediator GisMainForm fGisFlexGridSetContextMenu 80 6 0.1 31
    GisMediator GisMainForm GisFlexGrid_DoubleClick 11 0 0.0 5
    GisMediator GisMainForm GisFlexGrid_BeforeMouseDown 20 0 0.0 7
    GisMediator GisMainForm GisFlexGrid_AfterEdit 2 0 0.0 1
    GisMediator GisMainForm fGisFlexGrid_ContextMenu_In... 32 6 0.2 10
    GisMediator GisMainForm fGisFlexGrid_ContextMenu_De... 12 2 0.2 2
    GisMediator GisMainForm fGisReadXmlFile 8 2 0.3 2
    GisMediator GisMainForm fGisXmlToFlexGrid 22 7 0.3 8
    GisMediator GisMainForm fGisWriteXmlFile 11 3 0.3 2
    GisMediator GisMainForm fGisFlexGridToXml 23 3 0.1 7
    GisMediator GisMainForm fGisElementNameMapping 24 2 0.1 5

    確實(shí),fDecodeSchema、fSchemaTreeSearch、fGisFlexGridSetContextMenu、fGisFlexGridSetCellStyle都是幾個(gè)很重要,而且很復(fù)雜的函數(shù)模塊。尤其是fGisFlexGridSetContextMenu,復(fù)雜度已經(jīng)到了31,可見(jiàn)其已經(jīng)很復(fù)雜且臃腫了。看來(lái)有必要對(duì)這幾個(gè)函數(shù)進(jìn)行重構(gòu)了。

    簡(jiǎn)單就是美,這點(diǎn)在計(jì)算機(jī)軟件設(shè)計(jì)上也是不破的真理。過(guò)于復(fù)雜的程序,一則難以復(fù)用,二則難以維護(hù)。

    以后對(duì)于自己的程序,可以經(jīng)常利用devMetrics,務(wù)必降低代碼模塊的復(fù)雜性。

    Feedback

    # re: 利用devMetrics衡量程序的復(fù)雜度,從而提高軟件質(zhì)量   回復(fù)  更多評(píng)論   

    2005-01-13 22:42 by dudu
    在管理頁(yè)面=》選項(xiàng)=》Preferences 中可以取消日歷的顯示。

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲欧洲无码一区二区三区| 水蜜桃视频在线观看免费| 天堂在线免费观看中文版| 九九久久国产精品免费热6| 久久青草亚洲AV无码麻豆| 18禁网站免费无遮挡无码中文 | 亚洲视频一区二区| 成全视频高清免费观看电视剧| 亚洲免费电影网站| 国产性生交xxxxx免费| 在线观看免费视频一区| 久久久国产亚洲精品| 亚洲色成人WWW永久网站| 成人在线视频免费| 免费观看久久精彩视频| 亚洲最大av资源站无码av网址| 国产成人精品久久亚洲| 男女超爽刺激视频免费播放| 中文字幕高清免费不卡视频| 久久精品国产亚洲av麻豆图片 | 四虎在线免费播放| 日韩内射激情视频在线播放免费 | 亚洲国产成人片在线观看| 日韩高清在线免费看| 人妻无码一区二区三区免费| 日本高清不卡中文字幕免费| 亚洲乱人伦精品图片| 亚洲AV无码久久寂寞少妇| 免费**毛片在线播放直播 | 在线亚洲人成电影网站色www| 免费A级毛片无码免费视| 久久国产精品2020免费m3u8| 国产亚洲精品免费| 亚洲精品人成网在线播放影院| 精品久久久久久亚洲| 亚洲&#228;v永久无码精品天堂久久 | 亚洲精品成人无限看| 全部免费毛片免费播放| 日韩精品无码区免费专区| 一区二区免费视频| 久久免费国产精品一区二区|