重構之二概述

2. 重構概述

1. 項目的整體重構:

  • 代碼規范性嚴格要求
    • idea級別的警告做到盡可能的優化處理
    • 禁止出現冗余重復性代碼,重復即可通過抽象繼承封裝或者設計模塊進行優化。
    • 常量命名應該全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長
    • 命名符合UpperCamelCase命名風格
    • 類名不要以動詞開頭
    • 類、類屬性、類方法的注釋必須使用javadoc規范,使用/內容/格式,不得使用//xxx方式和/xxx*/方式,具體參考jdk的注釋
    • 代碼幾乎完全基于JAVA8語法實現
    • 函數代碼行數不要超過一屏幕的大小,比如100行
    • 一行代碼最好不要超過IDE的顯示寬度
    • 避免在程序中使用魔鬼數字,必須用有意義的常量來標識
  • 代碼抽象和封裝優化
  • 核心冗余功能進行抽象和優化
  • 整體代碼優化掉35%左右

通過代碼分析工具可以進行對比:

當前版本:

image.png

重構版本:

image.png

對比結果可發現:整體JAVA代碼行數從152000行(不包含order代碼)左右變為111000(包含order整合代碼),代碼整體減少行數超過30%

2. 核心功能重構目標(不對外):

  • 架構層面
  • 功能層面
  • 代碼層面

3. 代碼分層設計規范:

代碼分層設計規范.png

4. Git提交規范:

參考:http://www.lxweimin.com/p/6eafeb9b1edb

Git每次提交代碼,都需要寫Commit message(提交說明),規范的Commit message有很多好處

  • 方便快速瀏覽查找,回溯之前的工作內容
  • 可以直接從commit 生成Change log(發布時用于說明版本差異)

Commit message 格式

<type>(<scope>): <subject>
// 注意冒號 : 后有空格
// 如 feat(miniprogram): 增加了小程序模板消息相關功能

scope選填表示commit的作用范圍,如數據層、視圖層,也可以是目錄名稱 subject必填用于對commit進行簡短的描述 type必填表示提交類型,值有以下幾種:

  • feat - 新功能 feature
  • fix - 修復 bug
  • docs - 文檔注釋
  • style - 代碼格式(不影響代碼運行的變動)
  • refactor - 重構、優化(既不增加新功能,也不是修復bug)
  • perf - 性能優化
  • test - 增加測試
  • chore - 構建過程或輔助工具的變動
  • revert - 回退
  • build - 打包
image-20201210103450070.png

Commit message 次數盡可能的少

- 代碼邏輯一開始盡可能的考慮清楚,需要改哪塊涉及哪些地方,代碼結構分層等
- 盡可能的本地測試通過后再進行commit代碼,而不是反復提交代碼在測試環境進行驗證再反復修改
- 方便其它人進行代碼review,代碼歷史看起來也比較清晰

禁止git log 中出現不少 "Merge branch ‘xx分支' of ..." 的記錄,造成提交記錄的污染

https://www.cnblogs.com/Sinte-Beuve/p/9195018.html

原因:當多人合作開發一個項目時,本地倉庫落后于遠程倉庫

  • 最簡單的方法就是用merge代碼前用idea菜單欄中的update project

    • merge :就是git的合并代碼。遠程代碼在你push之前已經被修改了。就需要先merge。如果沒有沖突,就自動合并修改,否則需要逐一合并
    • rebase:拉下來的代碼有沖突,但是不會自動合并。需要你手動合并
  • 其它幾種解決方案:

    • 如果你使用的是 Git Bash,直接使用 git pull --rebase。如果拉取不產生沖突,會直接 rebase,不會產生分支合并操作,如果有沖突則需要手動 fix 后,自行合并。
    • 如果使用的是 GUI,例如 TortoiseGit,可以先 fetch,再手動 rebase 就可以了。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容