程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 代碼細節重構:請對我的代碼指手劃腳(四)

代碼細節重構:請對我的代碼指手劃腳(四)

編輯:C#入門知識

這是上周在代碼審閱會議上討論到的一段代碼,這段代碼的作用是根據指定記錄數量和頁面大小來計算最大分頁數量的。

目標代碼

  
   
  
  
  
    ComputePages( totalRecords,        total =      size = 
      temp = total / 
      ( }

代碼問題

在代碼審閱會議上起初並沒有留意到這段代碼,但隨著翻閱了多個代碼頁之後便發現“ComputePages”這個方法被多次重新定義,且功能完全一樣。應該是開發人員復制粘貼過來的,原本也是想針對復制粘貼來講講這段代碼的,但後來發現了更多的問題:

重構建議

找到了問題所在,那麼就會有一定的解決方案:

  • 對於代碼重用,可以在某個業務邏輯相關的類中集中定義這個方法,而不是分散到不同的類中。不過,本文不會具體討論這個問題;
  • 對於類型安全、類型轉換,具體到數字的時候,我們應該適當的考慮一下通過數學的方法來解決這些問題,而不是死板的套取程序語言規范;
  • 對於分母不能為零這一類定理性的問題,我們在編碼過程中一定要小心在意!千萬不能抱著僥幸心理;
  • 對於業務邏輯上的問題,我們在編碼之前一定要認真思考、琢磨,弄清楚要解決的問題及可能產生的後果;

重構結果

為了使得大家更容易理解,我將代碼重構的一些具體思路和想法以備注的方式貼在代碼裡面了,大家認真觀察,有問題可以提出。

  
   
  
  
  
  
        
    ComputePages( totalRecords,       
            
      (totalRecords < )       
             
      (pageSize < )  
     
            
      ()Math.Ceiling(totalRecords*/ }

結語

俗話說細節決定成敗。作為程序員,從代碼的細節我們就能看得出一個人編程水平的高低和開發經驗的多寡,這也從一定意義上決定了你的成與敗!

之前我發表過很多文章,都是從人文角度來引導新手的,今天這篇文章,也正好說明了人文因素對程序員素質的影響!

要做事,請首先做好人,對自己的代碼負責就是對自己負責,對自己負責就是對團隊負責,對團隊負責就是對企業利益負責,因為我們是同一個團隊,擁有同樣的利益!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved