自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

80%的程序員,不會寫Commit記錄

開發(fā) 前端
據(jù)說,80%的程序員,不會寫commit記錄。這個比例在無規(guī)范的小公司,比例會更高一些,可以看到這是一個多么普遍的問題。

[[384715]]

本文轉(zhuǎn)載自微信公眾號「小姐姐味道」,作者小姐姐養(yǎng)的狗02號。轉(zhuǎn)載本文請聯(lián)系小姐姐味道公眾號。  

據(jù)說,80%的程序員,不會寫commit記錄。這個比例在無規(guī)范的小公司,比例會更高一些,可以看到這是一個多么普遍的問題。

程序員應(yīng)該寫出簡潔明了的commit log,否則對別人和自己來說就是一種困擾。最近代碼review多了,總有一股想笑的感覺。就像下圖這滿屏的ok,永遠無法從中得知提交人的意圖。

 

commit log將如何提交?都有哪些約定?其實是有答案的。對于Java程序員,尤其幸福。IDEA有一個非常好用的插件,可以用來輔助你進行代碼提交,輔助你進行團隊規(guī)范建設(shè)。接下來,我將帶大家看一看它的使用方法。

安裝插件

在IDEA的Marketplace中,搜索Git Commit Template,就可以安裝這個插件。插件很小,很快就能下載下來。

 

正常從IDEA提交代碼的時候。我們發(fā)現(xiàn)多了一個小按鈕。

 

點擊之后,將彈出一個窗口。讓你去設(shè)計提交模板。

 

這么多信息,真的讓人頭暈。怪不得程序員們都不喜歡寫提交記錄。

其實,在插件的安裝界面,就已經(jīng)說明了這個提交記錄的格式。

  1. <type>(<scope>): <subject> 
  2. <BLANK LINE> 
  3. <body> 
  4. <BLANK LINE> 
  5. <footer> 

 

 

 

從描述中,可以肯容易的看到一個提交記錄中,應(yīng)該包含哪些東西。其中類型最多的,當然是提交類型。

提交類型Type

我們按照插件顯示的順序來說明一下。

  • feat 功能feature的意思,也是最常用的。當你的功能有變更的時候,都可以采用這種類型的type
  • fix 當然指的是bug修復(fù)
  • docs 更新了文檔,或者更新了注釋
  • style 代碼格式調(diào)整,比如執(zhí)行了format、更改了tab顯示等
  • refactor 重構(gòu)代碼。指的是代碼結(jié)構(gòu)的調(diào)整,比如使用了一些設(shè)計模式重新組織了代碼
  • perf 對項目或者模塊進行了性能優(yōu)化。比如一些jvm的參數(shù)改動,把stringbuffer改為stringbuilder等
  • test 這個簡單,就是增加了單元測試和自動化相關(guān)的代碼
  • build 影響編譯的一些更改,比如更改了maven插件、增加了npm的過程等
  • ci 持續(xù)集成方面的更改。現(xiàn)在有些build系統(tǒng)喜歡把ci功能使用yml描述。如有這種更改,建議使用ci
  • chore 其他改動。比如一些注釋修改或者文件清理。不影響src和test代碼文件的,都可以放在這里
  • revert 回滾了一些前面的代碼

除了這些預(yù)設(shè)的,團隊還可以按照自己的需求,增加新的type。比如專門處理線上工單,就可以創(chuàng)造一個叫做ticket的類型。

范圍scope

scope是范圍的意思,主要指的是代碼的影響面。scope并沒有要求強制,但團隊可以按照自己的理解進行設(shè)計。通常由技術(shù)維度和業(yè)務(wù)維度兩種劃分方式。比如按照技術(shù)分為:controller、dto、service、dao等。但因為一個功能提交,會涉及到多個scope(都不喜歡非常細粒度的提交),所以按照技術(shù)維度分的情況比較少。

按照業(yè)務(wù)模塊進行劃分,也是比較不錯的選擇。比如分為user、order等劃分,可以很容易看出是影響用戶模塊還是order模塊。

如果你實在不知道怎么填,那就留空。

其他

主題subject

這個體現(xiàn)的是總結(jié)概括能力,沒得跑。一句話能夠說明主要的提交是什么。subject也是眾多git管理工具默認顯示的一行。如果你寫的標準,那么提交記錄看起來就很漂亮很規(guī)整。

正文Body

主要填寫詳細的改動記錄。我一般習(xí)慣列上1234,但如果你的subject寫的非常好,正文可以直接弱化。但如果時間充裕,填寫上重要記錄的前因后果,需求背景,是一個好的習(xí)慣。

尾部Footer

添加一些額外的hook,比如提交記錄之后,自動關(guān)閉jira的工單(JIRA和gitlab等是可以聯(lián)動的)。在比如觸發(fā)一些文檔編譯或者其他動作。

這部分自定義行也是比較強的。

Skip CI

最后還有一個skip CI選項。一般的ci工具,都可以設(shè)置提交代碼時自動觸發(fā)編譯。但你可以告訴它忽略本次提交。這可能是因為你提前預(yù)判到了一些構(gòu)建風(fēng)險,或者就是不想編譯。

End

最后,看一個典型的提交記錄,有了工具的支持,我們的瞎扯也看得正經(jīng)起來。

  1. fix(order): 修復(fù)了1分錢買汽車的bug 
  2.  
  3. 商務(wù)反饋可以1分錢買汽車,目前已經(jīng)賣出了100w量 
  4.  
  5. Closes #2455 
  6.  
  7. [skip ci] 

其實,提交的核心是type和subject。一個用來表示它的提交類型,一個用來對提交進行概括性總結(jié),寫好了這兩點,就能輕輕松松秒殺80%的程序員了。

有了這些基礎(chǔ),從commit log,自動生成change log,就變的非常的容易。配合持續(xù)集成平臺,自動生成發(fā)版的變更記錄,也是可行的,這也是為什么團隊管理,都在一直強調(diào)git的提交規(guī)范。因為它確實非常有用。

作者簡介:小姐姐味道 (xjjdog),一個不允許程序員走彎路的公眾號。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。我的個人微信xjjdog0,歡迎添加好友,進一步交流。

 

 

責任編輯:武曉燕 來源: 小姐姐味道
相關(guān)推薦

2019-12-19 16:22:38

程序員征文

2013-04-28 11:03:41

編程語言程序員私有云

2023-11-13 08:34:01

Java編程習(xí)慣

2023-07-16 23:09:55

GitType代碼

2018-05-23 14:22:27

程序員技能溝通

2011-09-06 13:48:09

程序員

2017-03-07 13:52:38

程序員調(diào)試片斷

2013-08-20 09:33:59

程序員

2011-05-13 14:34:02

程序員

2018-07-17 11:10:47

程序員工資行業(yè)

2015-07-15 10:22:06

編程80+個小時

2017-11-14 21:30:15

2012-11-22 14:00:26

程序員

2018-04-02 14:42:20

面試程序員簡歷

2013-05-31 13:40:45

程序員年齡

2011-05-25 14:46:16

程序員

2012-03-06 09:22:46

程序員

2013-04-15 10:55:09

程序員

2012-11-08 09:49:30

C++Java程序員

2009-12-14 09:29:00

程序員
點贊
收藏

51CTO技術(shù)棧公眾號