華為 Java 編程軍規(guī)
點擊上方“逆鋒起筆”,公眾號回復(fù) PDF
領(lǐng)取大佬們推薦的學(xué)習(xí)資料
引言
軍規(guī)簡介
軍規(guī)說明
軍規(guī)一:【避免在程序中使用魔鬼數(shù)字,必須用有意義的常量來標識?!?/strong>
軍規(guī)二:【明確方法的功能,一個方法僅完成一個功能?!?/strong>
軍規(guī)三:【方法參數(shù)不能超過5個】
軍規(guī)四:【方法調(diào)用盡量不要返回null,取而代之以拋出異常,或是返回特例對象(SPECIAL CASE object,SPECIAL CASE PATTERN);對于以集合或數(shù)組類型作為返回值的方法,取而代之以空集合或0長度數(shù)組。】
軍規(guī)五:【在進行數(shù)據(jù)庫操作或IO操作時,必須確保資源在使用完畢后得到釋放,并且必須確保釋放操作在finally中進行?!?/strong>
Connection jdbcConnection = null;
Statement stmt = null;
try
{
........
}
catch(SQLException e)
{
........
}
finally
{
if(stmt != null)
{
try
{
stmt.close();
}
catch(SQLException e)
{
logger.log(Level.WARNING,"異常說明", e);
}
}
if(jdbcConnection != null)
{
try
{
jdbcConnection.close();
}
catch(SQLException e)
{
logger.log(Level.WARNING,"異常說明", e);
}
}
}
軍規(guī)六:【異常捕獲不要直接 catch(Exception ex) ,應(yīng)該把異常細分處理。】
軍規(guī)七:【對于if ? else if ?(后續(xù)可能有多個elseif …)這種類型的條件判斷,最后必須包含一個else分支,避免出現(xiàn)分支遺漏造成錯誤;每個switch-case語句都必須保證有default,避免出現(xiàn)分支遺漏,造成錯誤?!?/strong>
軍規(guī)八:【覆寫對象的equals()方法時必須同時覆寫hashCode()方法?!?/strong>
軍規(guī)九:【禁止循環(huán)中創(chuàng)建新線程,盡量使用線程池?!?/strong>
軍規(guī)十:【在進行精確計算時(例如:貨幣計算)避免使用float和double,浮點數(shù)計算都是不精確的,必須使用BigDecimal或?qū)⒏↑c數(shù)運算轉(zhuǎn)換為整型運算?!?/strong>
http://my.oschina.net/leejun2005/blog/156793
有關(guān)開發(fā)效率和協(xié)作的幾點建議與心得體會
1. 小提交:
2. 命名規(guī)范:
http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
3. 避免過度設(shè)計:
5. 善于用打日志的方式調(diào)試,在程序關(guān)鍵點打日志。盡量少用斷點方式,日志方式可以批量調(diào)試一批功能,效率相對高。
6. 避免一屏顯示不下的超大函數(shù)。
7. 添加必要、簡潔的注釋:
8. 不把自己局限到做某個功能,每個人都是整個項目的 Owner ,盡量交叉 Review ,交叉開發(fā)。
9. 遇到問題及時和其他人溝通,避免浪費時間。
10. 從最終產(chǎn)品的目標審視自己細小的設(shè)計,熟悉自己負責(zé)部分的上下游代碼。時刻關(guān)注最終產(chǎn)品(Web 界面和日志),發(fā)現(xiàn) Bug 和可以改善的地方。
評論
圖片
表情
