Java 開(kāi)發(fā)基礎(chǔ)規(guī)范

推薦 阿里巴巴 java開(kāi)發(fā)手冊(cè)


Java 相關(guān)命名、規(guī)范

  • 命名:
    • Java 類名命名(用名詞性單詞組合)
      • 普通類名:首字母大寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的,使用大駝峰命名法進(jìn)行命名,eg:CategoryService
      • 抽象類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Abstract,eg:CategoryAbstract
      • 自定義異常類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Exception,eg:CategoryException
      • 隊(duì)列類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Queue,eg:CategoryQueue
      • 后臺(tái)任務(wù)類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Task 或 Job,eg:CategoryTask、CategoryJob
      • Servlet 類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Servlet,eg:CategoryServlet
      • Filter 類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Filter,eg:CategoryFilter
      • 工廠類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Factory,eg:CategoryFactory
      • 工具類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Util,eg:CategoryUtil
      • 測(cè)試類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Test,eg:CategoryServiceTest
      • 數(shù)據(jù)庫(kù)訪問(wèn)層接口類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Dao,eg:CategoryDao
      • 數(shù)據(jù)庫(kù)訪問(wèn)層實(shí)現(xiàn)類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 DaoImpl,eg:CategoryDaoImpl
      • 業(yè)務(wù)層接口類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Service,eg:CategoryService
      • 業(yè)務(wù)層實(shí)現(xiàn)類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 ServiceImpl,eg:CategoryServiceImpl
      • 控制層類名:在普通類名的基礎(chǔ)上對(duì)其命名后加上 Controller,eg:CategoryController、CategoryAction、CategoryActivity
    • 常量名:全部字母大寫(xiě),有多個(gè)單詞用下劃線分隔,eg:MY_AGE
    • 常規(guī)變量名:首字母小寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的,使用小駝峰命名法進(jìn)行命名,eg:categoryName
    • 復(fù)數(shù)變量名:首字母小寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的,使用小駝峰命名法進(jìn)行命名,eg:
      • List:categoryList
      • Map:categoryMap
      • Set:categorySet
    • package 名:所有單詞全部小寫(xiě),即使有多個(gè)單詞組成,且不能使用下劃線連接,或是其他任意字符連接,eg:googlebook
    • 方法參數(shù)名:首字母小寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的,使用小駝峰命名法進(jìn)行命名,eg:categoryName
    • 方法命名(用動(dòng)詞性單詞開(kāi)頭):
      • 數(shù)據(jù)庫(kù)訪問(wèn)層方法名
        • saveCategory()
        • deleteCategoryByObject()
        • deleteCategoryById()
        • updateCategoryByObject()
        • updateCategoryById()
        • findCategoryList()
        • findCategory()
      • 業(yè)務(wù)層方法名
        • saveCategory()
        • deleteCategoryByObject()
        • deleteCategoryById()
        • updateCategoryByObject()
        • updateCategoryById()
        • findCategoryList()
        • findCategory()
        • initCategory()
        • openConnection()
        • closeConnection()
        • writeFile()
        • readFile()
      • 視圖層(JSP、FreeMarker 等)
        • categoryList
        • categoryAdd
        • categoryUpdate
        • categoryEdit
        • categoryDetail
        • categoryTree
  • 規(guī)范:
    • 當(dāng)一個(gè)類有多個(gè)構(gòu)造函數(shù),或是多個(gè)同名方法,這些函數(shù) / 方法應(yīng)該按順序出現(xiàn)在一起,中間不要放進(jìn)其它函數(shù) / 方法
    • 導(dǎo)入包的時(shí)候,import 后面不要使用通配符 * 來(lái)代替有些包的導(dǎo)入
    • 大括號(hào)與 if, else, for, do, while 語(yǔ)句一起使用,即使只有一條語(yǔ)句(或是空),也應(yīng)該把大括號(hào)寫(xiě)上
    • 不要使用組合聲明,比如 int a, b;
    • 需要時(shí)才聲明,并盡快進(jìn)行初始化
    • 注解緊跟在文檔塊后面,應(yīng)用于類、方法和構(gòu)造函數(shù),一個(gè)注解獨(dú)占一行
  • 注釋:
  • 塊注釋
/*
logger.info("---------開(kāi)始---------");
SubmitOrderInfo submitOrderInfo = getSubmitOrderInfo(orderId);
*/
  • 行注釋,只用來(lái)注釋
//ResultInfo resultInfo = orderService.orderStateUpdate(voucherNo);
  • 行注釋,用來(lái)解釋
private int categoryId = 1; // 1 是頂級(jí)分類的 ID

Mysql 相關(guān)命名、規(guī)范

  • 表名:全部小寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的使用下劃線隔開(kāi),eg:prd_category
  • 字段名:全部小寫(xiě),需要兩個(gè)、多個(gè)單詞表達(dá)的使用下劃線隔開(kāi),eg:category_name
  • 注釋
    • - -注釋示例
  • 常用數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則表 :
數(shù)據(jù)庫(kù)對(duì)象 對(duì)象命名前綴 習(xí)慣用法 備注
tb_ 表名中單詞使用單數(shù)長(zhǎng)度不能超過(guò)30個(gè)字符
主鍵 pk_ pk_表名 長(zhǎng)度不能超過(guò)30個(gè)字符
外鍵 fk_ fk_表名、字段名 長(zhǎng)度不能超過(guò)30個(gè)字符
唯一鍵 uk_ uk_表名、字段名 長(zhǎng)度不能超過(guò)30個(gè)字符
Check約束 ck_ ck_表名、字段名 長(zhǎng)度不能超過(guò)30個(gè)字符
索引 idx_ idx_表名、字段名 長(zhǎng)度不能超過(guò)30個(gè)字符
視圖 v_ 長(zhǎng)度不能超過(guò)30個(gè)字符
觸發(fā)器 tri_ 長(zhǎng)度不能超過(guò)30個(gè)字符
函數(shù) func_ 長(zhǎng)度不能超過(guò)30個(gè)字符
序列 seq_ 長(zhǎng)度不能超過(guò)30個(gè)字符

  • 程序 SQL 補(bǔ)丁文件命名,eg:
    • 20160306-update-更新所有會(huì)員密碼
    • 20160312-delete-刪除指定會(huì)員密碼
    • 20160313-insert-新增會(huì)員數(shù)據(jù)
    • 20160315-alter-更新會(huì)員郵箱字段長(zhǎng)度

編碼規(guī)范

  • 數(shù)據(jù)源連接:jdbc:mysql://localhost:3306/youshop?characterEncoding=utf-8
  • Java 文件編碼:UTF-8
  • XML 文件編碼:UTF-8
  • Properties 文件編碼:UTF-8
  • Mysql 字符集:UTF-8

其他

  • Tab 縮進(jìn)為 4 個(gè)空格,使用 IntelliJ IDEA 標(biāo)準(zhǔn)格式化即可
  • TODO 標(biāo)記必須使用個(gè)人自定義 TODO,不能使用公共的
  • SVN、Git 提交必須有 Commit Message

本文摘自:YouMeek

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評(píng)論 25 708
  • 日計(jì)劃訓(xùn)練營(yíng)線下的小伙伴們進(jìn)行了日計(jì)劃總結(jié)分享會(huì)。 從線下活動(dòng)的輸出,我汲取到了養(yǎng)分。 加一:制定每一周計(jì)劃的計(jì)劃...
    舞傾城夏閱讀 159評(píng)論 0 0
  • 檢測(cè)專用-1- 最新版本-1.1- 更新提示-111111111111111111- //1.1才有 更新地址-...
    Xmi閱讀 670評(píng)論 0 0
  • 今日完成情況-90% 1. 翻譯1000字(翻譯1033) 2. 實(shí)現(xiàn)2個(gè)算法(只實(shí)現(xiàn)了一個(gè)) 3.項(xiàng)目推進(jìn)(找出...
    誰(shuí)要陪我吃火鍋閱讀 185評(píng)論 0 1

友情鏈接更多精彩內(nèi)容