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

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

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

    皇家方舟

    工作總結(jié)

    ??????三個月來,一直都在學(xué)習(xí)楊博的編程思想,也閱讀了他推薦的幾本好書,通過這一段時間的學(xué)習(xí),覺得自己確實(shí)在編程方面有了比較大的提高,對編程中最為重要的兩個環(huán)節(jié)(單元測試、重構(gòu))也都有了一定的了解;另外一個收獲是作為一個團(tuán)隊的成員,應(yīng)該如何與隊友進(jìn)行交流并表達(dá)自己的想法。
    ??????現(xiàn)在,談?wù)勅绾芜M(jìn)行團(tuán)隊合作。首先,應(yīng)該為自己定位,自己在團(tuán)隊中處于什么位置,應(yīng)該做哪些事情?其次,當(dāng)自己有什么新的想法(不管是否正確)時,一定要與團(tuán)隊成員進(jìn)行交流。如果自己的想法是正確的,那團(tuán)隊就很可能采用自己的新想法;當(dāng)然有的時候想法也不一定正確,但是卻肯定會引起大家的討論,也許就可能從新的想法中得到其它的什么提示,而產(chǎn)生另外的好的想法也不一定。
    ???????接著,講講自己在這段時間的學(xué)習(xí)成果吧!雖然不多,但卻非常有用。首先,學(xué)習(xí)了使用TDD(測試驅(qū)動開發(fā))模式進(jìn)行軟件開發(fā);其次,學(xué)習(xí)如何寫好注釋;另外,還學(xué)習(xí)了怎樣嗅出代碼中的臭味,并進(jìn)行重構(gòu)。
    ??????

    posted on 2006-12-07 08:57 阿輝 閱讀(252) 評論(4)  編輯  收藏 所屬分類: 學(xué)習(xí)日志

    Feedback

    # 學(xué)習(xí)測試(TDD) 2006-12-07 12:47 阿輝

    在編程的過程中肯定會用到外部包的方法(即除自己寫的程序以外的程序,可以是團(tuán)隊中其他同事編寫的,也可以是jdk的,等等),在自己并不是非常清楚該方法的功能之前,應(yīng)該為它編寫一個小測試,通過測試了解該方法的功能。在確定該方法符合自己的要求后再去使用它。當(dāng)然,該測試并不需要放置到我們的單元測試代碼中,在我們確定它符合我們的要求之后,必須將它從單元測試代碼中刪除。同時也可以把該測試存放到自己的學(xué)習(xí)文件夾中,用這個文件夾在專業(yè)存放一些對外部包方法的小測試程序,因此當(dāng)你第二次再使用某個方法而忘了怎么使用時就可以從該文件夾中找到該方法對應(yīng)的測試程序,也許再看一次測試的注釋并將它運(yùn)行一下就可以明白了該方法的用法。如果再不明白的話,則需要另外編寫自己需要的功能對應(yīng)的單元測試,并加入到該文件夾中。  回復(fù)  更多評論   

    # 數(shù)值對象 2006-12-08 14:16 阿輝

    數(shù)值對象一經(jīng)創(chuàng)建,其狀態(tài)永不改變。即類中沒有set方法,只能通過構(gòu)造方法賦值,必須實(shí)現(xiàn)equals(),且對它的操作均必須返回一個新的對象。  回復(fù)  更多評論   

    # 談重構(gòu)之“以查詢?nèi)〈R時變量” 2006-12-08 14:48 阿輝

    這種重構(gòu)方法是最近學(xué)習(xí)的,感覺實(shí)用性比較大,而且想起自己常常在程序代碼中到處出現(xiàn)的if-else沒法處理。學(xué)習(xí)些項重構(gòu)后,可以將程序中很多的類似的條件判斷代碼去除掉,使代碼更為優(yōu)美。下面舉個例子說明該項重構(gòu)的好處:方法getMessage()的功能是得到類名和異常信息組成的字符串。其中有兩個對null的判斷。由于該方法中的空值判斷只有兩個,所做的重構(gòu)并沒有體現(xiàn)出其特別的價值,但是當(dāng)在你的程序中出現(xiàn)很多這種代碼時,你就會覺得心里不舒服,并且會發(fā)現(xiàn)這樣重構(gòu)是非常值去做的,最重要的是它提高了程序的可讀性。
    注:該例子并不會在實(shí)際編程中存在,僅用它來說明這項重構(gòu)而已。
    public String getMessage(Object object,Exception e)
    {
    String className;
    if(object != null)
    {
    className = object.getClass().getName();
    }
    else
    {
    className = "the object is null";
    }
    String exceptionMessage;
    if(e != null)
    {
    exceptionMessage = e.toString();
    }
    else
    {
    exceptionMessage = "there is no exception";
    }
    String message = className + exceptionMessage;
    return message ;
    }

    重構(gòu)后的代碼如下:

    public String getMessage(Object object,Exception e)
    {
    String message = getClassName(object) + getExceptionMessage(e);
    return message;

    /**
    * 獲得對象的類名。
    */
    private String getClassName(Object object)
    {
    return object != null ? object.getClass().getName() : "the object is null";
    }
    /**
    * 獲得異常的信息。
    */

    private String getExceptionMessage(Exception e)
    {
    return e!= null ? e.toString() : "there is no exception";
    }

    從上面可以看到臨時變量message只使用了一次,因此其沒有存在的必要了,我們可以將其內(nèi)聯(lián)。
    最終代碼如下:
    public String getMessage(Object object,Exception e)
    {
    return getClassName(object) + getExceptionMessage(e);


    很明顯,重構(gòu)后的代碼比最初的代碼要清晰許多,而且可讀性也要強(qiáng)出不少。  回復(fù)  更多評論   

    # 創(chuàng)建對象時注意set方法的使用順序 2006-12-08 17:36 阿輝

    在單元測試中,很多時候需要對一個對象進(jìn)行初始化,且該初始化對象會在多個測試中使用到。因此這個工作不能很隨便,在初始化該對象時一定要注意一些細(xì)節(jié)上的問題,我個人認(rèn)為最好是按照該類中字段的定義順序來初始化,這樣不容易漏掉,但是在實(shí)際中常常是沒有按一定的順序來設(shè)置字段值的,不僅容易漏掉,而且可能會導(dǎo)致同一個set方法使用多次(在程序中我就見過這種情況),致使前面的set方法設(shè)置的字段值無效。因此就可能導(dǎo)致在后面的測試出錯時無法定位錯誤,檢查測試數(shù)據(jù)時要是只看到第一個set方法,并將其修改,但事實(shí)上該對象中的字段并未改變,因為后面誤用了set方法,其值實(shí)際上為最后一個使用set方法的地方賦值的。
    按順序初始化對象還有另外一個好處,讓閱讀的人看得清晰,以及為該類增加方法時需要用到該測試數(shù)據(jù)時也易讀,可以很好的使用該對象。  回復(fù)  更多評論   


    My Links

    Blog Stats

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩毛片无码永久免费看| 亚洲日韩精品国产3区| 免费人成无码大片在线观看| 中文字幕成人免费视频| xxxxxx日本处大片免费看 | 最新久久免费视频| 天天综合亚洲色在线精品| 亚洲成AV人片久久| 亚洲乱亚洲乱妇无码麻豆| vvvv99日韩精品亚洲| 免费激情视频网站| 性xxxxx免费视频播放| 欧洲精品99毛片免费高清观看| 久久九九久精品国产免费直播| AV激情亚洲男人的天堂国语| 2020久久精品亚洲热综合一本| 久久久久亚洲av无码专区喷水 | 免费成人高清在线视频| 美女尿口扒开图片免费| 激情小说亚洲图片| 亚洲av日韩av永久无码电影| 亚洲日韩精品无码专区| 亚洲中文字幕久久精品无码A| 亚洲人成7777影视在线观看| 亚洲精品亚洲人成在线麻豆| 亚洲高清中文字幕| 亚洲精品成人图区| 亚洲国产美女视频| 亚洲国产综合第一精品小说| 亚洲国产成人91精品| 亚洲国产精品成人精品小说| 亚洲国产夜色在线观看| 91精品国产亚洲爽啪在线影院| 久久久久亚洲AV片无码下载蜜桃| 亚洲AV成人无码久久精品老人| 亚洲AV无码国产丝袜在线观看| 亚洲人成网站影音先锋播放| 亚洲精品国产成人99久久| 中文字幕亚洲精品| 亚洲乱码一区av春药高潮| 最新亚洲精品国偷自产在线|