同伴個人代碼複審結果

來源:互聯網
上載者:User

標籤:

同伴個人代碼複審結果

一、一般性檢查

1、代碼能夠正常運行,基本可以實現預定功能,沒有大的邏輯錯誤。

2、代碼結構非常清晰,模組化做得很好,很好地運用了物件導向的編程思想,容易閱讀和理解。

3、關於字串的匹配可以用庫函數中的Regex來進行,當然可能在字串比較長的時候,Regex會棧溢出,或者效率很低。

4、沒有出現多餘的調試代碼。

5、代碼的風格比較規範,縮排、換行、變數命名都遵守一般性的約定。

二、安全性檢查

1、對輸入的資料格式不合法的情況下,有些時候不能正確地識別。

2、當出現命令列參數不匹配的時候,拋出了異常,避免程式崩潰。

三、文檔和注釋

1、沒有協助文檔,但是有簡要的注釋。

2、通過與程式作者交流,可以得知每一段代碼的功能。

四、測試

1、有代碼測試模組。

2、測試案例偏少,不能覆蓋很多極端情況,代碼的覆蓋率不高。

五、發現的已知bug

1、

 public static bool operator >(Number a, Number b)        {            if (a < b)                return false;            else                return true;        }

這一段中判斷條件有誤,應該改為(a < b || a == b)

2、不能產生形如(1 + 2) * (3 + 4)= 這樣的式子,該問題並非是編碼的錯誤,而是在演算法設計的層面上主動規避了這樣一種情況。作者的意圖是先產生一個算式的尾碼運算式,然後將其轉換為中綴運算式,作者用了一個變數t來記錄當前的優先順序,一旦優先順序達到了二級優先順序,作者就不再產生+和-符號,因此有些合法的情況作者不能產生。所以,可能極端的情況就是由於捨棄了某些情況,不能完整地根據參數產生足夠的不重複的算式。

3、作者為了避免被0除的情況,限制所有的數為正數,而題目要求允許產生0。

六、可做的最佳化

    Number result = new Number();    int tdown = a.down * b.down / IntNum.gcd(a.down,b.down);    int t1 = b.down / IntNum.gcd(a.down, b.down);    int t2 = a.down / IntNum.gcd(a.down, b.down);            

這一段代碼中 IntNum.gcd(a.down,b.down) 作為一個函數的返回結果,在三次計算中值完全相同,因此可以用一個臨時變數進行儲存,避免三次調用函數,如果該段代碼被反覆執行,那麼最佳化後的效率會大大提高。

七、總結

本程式作者的代碼風格和代碼邏輯十分規範,編程思路也很清晰,體現出較高的編程水平,值得筆者學習。

同伴個人代碼複審結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.