## **引自《阿里規約》的開頭片段:**
~~~
> 現代軟件架構的復雜性需要協同開發完成,如何高效地協同呢?
> 無規矩不成方圓,無規范難以協同,比如:制訂交通法規表面上是要限制行車權,實際上是保障公眾
> 的人身安全,試想如果沒有限速,沒有紅綠燈,誰還敢上路行駛。對軟件來說,適當的規范和標準絕不
> 是消滅代碼內容的創造性、優雅性,而是限制過度個性化,以一種普遍認可的統一方式一起做事,提升
> 協作效率,降低溝通成本。代碼的字里行間流淌的是軟件系統的血液,質量的提升是盡可能少踩坑,杜
> 絕踩重復的坑,切實提升系統穩定性,碼出質量。
~~~
* * *
## **前言**
開源的代碼是基于阿里巴巴、華為的開發規范手冊,同時添加了我們公司團隊自己風格和規范,補充了一些細節。
* **規范不是為了約束和禁錮大家的創造力,而是為了幫助大家能夠在正確的道路上,盡可能的避免踩坑和跑偏。**
* **規范可以讓我們無論單槍匹馬還是與眾人同行的時候都能得心應手。**
* **規范可以讓我們在面對日益變態的需求和做代碼接盤俠的時候,更優雅從容。**
* **規則并不是完美的,通過約束和禁止在特定情況下的特性,可能會對代碼實現造成影響。**
* **我們制定規則的目的:為了大多數程序員小伙伴可以得到更多的好處,如果在團隊實際運作中認為某個規則無法遵循或有更好的做法,希望大家可以共同改進該規范。**
* * *
## **基礎規范**
### 什么是好的代碼?
* **滿足業務需要:代碼是來實現業務的,如果業務都實現不了,代碼也就沒什么價值了!**
* **代碼盡可能的清晰明了:就是讓小白也能看懂你的代碼!**
* **代碼盡可能的少:在保證清晰明了的前提下,能少一行少一行,能少一個類少一個類!**
* **代碼盡可能復用性和模塊化:在保證清晰明了和盡可能少的前提下,能復用的代碼盡量復用,能模塊的盡量模塊!**
以上四個原則的重要程度依次降低, 這是我們認為好代碼的原則,即:簡單的、好的、代碼。
* * *
## **注釋規范**
### 注釋和代碼一樣重要
注釋是我們披荊斬棘歷經磨難翻越需求這座大山時,留下的蹤跡和收獲的經驗教訓,這些寶貴的知識除了證明我們曾經存在過,也提醒著后來的人們殷鑒不遠、繼往開來。
注釋除了說明作用、邏輯之外。還有一個很重要的原因:當業務邏輯過于復雜,代碼過于龐大的時候,注釋就變成了一道道美化環境、分離與整理邏輯思路的路標。這是很重要的一點,它能有效得幫助我們免于陷入代碼與業務邏輯的泥沼之中。
* * *
## **無用代碼:刪!**
因為現在所有的項目都使用了代碼管理工具,比如 git、svn 等,所以對于無用的代碼,讓我們盡情的刪除掉吧!
重要的說三遍:
不要注釋代碼,不要注釋代碼,不要注釋代碼!
要刪除代碼,要刪除代碼,要刪除代碼!
- Jump簡介
- 技術架構
- 代碼規范
- 規范導讀
- JAVA規范
- 數據庫表設計規范
- 集成項目
- JDK1.8-pom.xml
- JDK21-pom.xml
- 項目結構
- 業務模塊-方法名稱規范
- 跨域配置
- License授權配置
- 公共字段自動填充
- 全局異常處理器
- PageOffice配置
- Beetl模板引擎配置
- application.properties
- application-prod.yml
- banner.txt
- logback-spring.xml
- jump-core (核心組件)
- Maven依賴
- 通用枚舉
- 公共數據狀態 - 枚舉
- 公共邏輯刪除 - 枚舉
- 公共操作編碼類型 - 枚舉
- 公共tree父節點 - 枚舉
- 公共是或否 - 枚舉
- 工具Util
- AopTargetUtil
- DownloadUtil
- GenerateNumUtil
- HttpServletUtil
- IpUtil
- JoinPointUtil
- MacUtil
- NetworkUtil
- ParamToUtil
- ResponseUtil
- TimeZoneDateUtil
- UaUtil
- 統一返回
- 結果對象
- 如何使用
- jump-cahche (緩存組件)
- Maven依賴
- Redis配置
- 緩存常量
- 工具Util
- RedisCacheUtil
- jump-idempotent (幕等組件)
- Maven依賴
- Context上下文
- 操作器
- 接口
- 如何實現
- AOP參數
- AOP使用方法
- jump-lock (分布式鎖組件)
- Maven依賴
- 枚舉
- AOP參數
- AOP使用方法
- 工具Util
- RedissonLockUtil
- Util使用方法
- jump-mybatis (mybatis組件)
- Maven依賴
- 基礎Entity
- 枚舉
- 查詢類型 - 枚舉
- 條件查詢
- search
- service
- 分頁結果集
- Mapper
- MyMapper
- 使用方法
- DDL操作
- DML操作
- 工具Util
- EntityUtil
- PageUtil
- TableUtil
- jump-dynamic-datasource (多數據源組件)
- Maven依賴
- Context上下文
- 操作器
- 接口
- 如何實現
- 工具Util
- DatasourceUtil
- 如何使用
- jump-satoken (satoken組件)
- Maven依賴
- Context上下文
- 操作器
- 接口
- 如何實現
- Satoken配置信息
- SatokenUser信息
- Redis緩存操作
- SatokenRedisCache
- SatokenUserRedisCache
- 放行白名單
- jump-oss (OSS組件)
- Maven依賴
- 工具Util
- OssFileUtil
- OssPlatformUtil
- 如何使用
- jump-xss (XSS組件)
- Maven依賴
- 白名單放行
- jump-email (郵件組件)
- Maven依賴
- Email客戶端信息
- Email發送參數
- 工具Util
- jump-websocket (WebSocket組件)
- Maven依賴
- 消息對象
- 工具Util
- 如何使用
- jump-weixin (微信組件)
- Maven依賴
- jump-system (系統管理組件)
- Maven依賴
- AOP
- 系統操作日志AOP
- 系統數據日志AOP
- 系統操作權限AOP
- 字典轉文本AOP
- Redis緩存操作
- SystemConfigRedisCache
- 工具Util
- LoginUserUtil
- SystemAreaUtil
- SystemHomeUtil
- SystemMenuUtil
- SystemOrgAdminUtil
- SystemOrgTypeUtil
- SystemRoleUtil
- SystemUserLoginAreaUtil
- SystemUserUtil
- jump-timer(定時器組件)
- Maven依賴
- 枚舉
- Api接口
- 工具Util
- ActionClassUtil
- TimerTaskUtil
- 如何使用
- jump-ueditor (富文本組件)
- Maven依賴
- 如何使用
- 配置 ueditor.config.js
- 后端 application.properties
- 前端 vue3
- vue-codemirror (代碼編譯器)
- npm依賴
- PageOffice整合
- Maven依賴
- License授權配置
- 枚舉
- 文件來源 - 枚舉
- 預覽文件類型 - 枚舉
- 文件預覽參數
- 下載文件
- 預覽文件
- 工具Util