成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊Code Review流程規范

開發 前端
給大家講個故事,“大神 A”上班時突然惱羞成怒的罵道,這是誰寫的代碼,沒有注釋啥也沒有,這么明顯的 bug。當時整個小組都不敢說話,慌的要死,生怕說的就是自己。

[[416091]]

本文轉載自微信公眾號「微醫大前端技術」,作者張宇航。轉載本文請聯系微醫大前端技術公眾號。

前言

沒有無緣無故的愛,也沒有無緣無故的恨,當然也沒有無緣無故的 code review

為什么要 CR

給大家講個故事,“大神 A”上班時突然惱羞成怒的罵道,這是誰寫的代碼,沒有注釋啥也沒有,這么明顯的 bug。當時整個小組都不敢說話,慌的要死,生怕說的就是自己。領導發話:“大神 A”查下提交記錄,誰提交的誰請吃飯。過了兩分鐘,“大神 A”:這,這是我自己一年前提交的。所以不想自己尷尬,趕緊 code review 吧

一、角色職能

author 即需求開發者。要求:

  • 注重注釋。對復雜業務寫明相應注釋,commit 寫明具體提交背景,便于 reviewer 理解。
  • 端正心態接受他人 review。對 reviewer 給出的 comment,不要有抵觸的情緒,對你覺得不合理的建議,可以委婉地進行拒絕,或者詳細說明自己的看法以及原因。reviewer 持有的觀點并不一定是合理的,所以 review 也是一個相互學習的過程。
  • 完成 comment 修改后及時反饋。commit 提交信息備注如"reivew: xxxx",保證復檢效率。

reviewer 作為 cr 參與者,建議由項目責任人和項目參與者組成。要求:

  • 說明 comment 等級。reviewer 對相應代碼段提出評價時,需要指明對應等級,如
  • fix: xxxxxxx 此處需強制修改,提供修改建議
  • advise: xxxxxxx 此處主觀上建議修改,不強制,可提供修改建議
  • question: xxxxxx 此處存在疑慮,需要 author 作出解釋
  • 友好 comment。評價注意措辭,可以說“我們可以如何去調整修改,可能會更合適。。。”,對于比較好的代碼,也應該給與足夠的贊美。
  • 享受 review。避免以挑毛病的心態 review,好的 reviewer 并不是以提的問題多來衡量的。跳出自己的編碼風格,主動理解 author 的思路,也是一個很好的學習過程。

二、CR 流程

1、self-review

  • commit 之前要求 diff 一下,查看文件變更情況,可接著 gitk 完成。當然如果項目使用 pre-commit 關聯 lint 校驗,也能發現例如 debugger、console.log 之類語句。但是仍然提倡大家每次提交之前檢查一下提交文件。
  • 多人協作下的 commit。多人合作下的分支在合并請求時,需要關注是否帶入沒必要的 commit。
  • commit message。建議接入 husky、commitlint/cli 以及 commitlint/config-conventional 校驗 commit message。commitlint/config-conventional 所提供的類型如
  • feat: 新特性
  • fix: 修改 bug
  • chore: 優化,如項目結構,依賴安裝更新等
  • docs: 文檔變更
  • style: 樣式相關修改
  • refactor:項目重構

此目的為了進一步增加 commit message 信息量,幫助 reviewer 以及自己更有效的了解 commit 內容。

2、CR

提測時發起 cr,需求任務關聯 reviewer。提供合并請求,借助 gitlab/sourcetree/vscode gitlens 等工具。reviewer 結束后給與反饋

針對 reviewer 提出的建議修改之后,commit message 注明類似'review fix'相關信息,便于 reviewer 復檢。

緊急需求,特事特辦,跳過 cr 環節,事后 review。

三、CR 標準

  • 不糾結編碼風格。編碼風格交給 eslint/tslint/stylelint
  • 代碼性能。大數據處理、重復渲染等
  • 代碼注釋。字段注釋、文檔注釋等
  • 代碼可讀性。過多嵌套、低效冗余代碼、功能獨立、可讀性變量方法命名等
  • 代碼可擴展性。功能方法設計是否合理、模塊拆分等
  • 控制 review 時間成本。reviewer 盡量由項目責任人組成,關注代碼邏輯,無需逐字逐句理解。

四、最后

 

總的來說,cr 并不是一個找 bug 挑毛病的過程,更不會降低整體開發效率。其目的是為了保證項目的規范性,使得其他開發人員在項目擴展和維護時節省更多的時間和精力。當然 cr 環節需要團隊每一個成員去推動,只有每一個人都認可且參與進來,才能發揮 cr 的最大價值。圖片最后安利一波本人開發 vscode 小插件搭配 gitlab 分支 review,主要流程是點擊按鈕發起合并請求,自動生成 mr 鏈接,并發送至企業微信通知相關責任人開始 review。

 

責任編輯:武曉燕 來源: 微醫大前端技術
相關推薦

2020-05-22 08:16:07

PONGPONXG-PON

2021-01-28 22:31:33

分組密碼算法

2023-09-22 17:36:37

2018-06-07 13:17:12

契約測試單元測試API測試

2019-02-13 14:15:59

Linux版本Fedora

2020-10-15 06:56:51

MySQL排序

2018-11-29 09:13:47

CPU中斷控制器

2022-11-01 08:46:20

責任鏈模式對象

2021-02-06 08:34:49

函數memoize文檔

2021-01-29 08:32:21

數據結構數組

2022-08-08 08:25:21

Javajar 文件

2021-08-04 09:32:05

Typescript 技巧Partial

2023-07-06 13:56:14

微軟Skype

2023-05-15 08:38:58

模板方法模式

2019-12-17 10:06:18

CDMA高通4G

2022-03-08 16:10:38

Redis事務機制

2020-09-08 06:54:29

Java Gradle語言

2022-03-29 09:56:21

游戲版本運營

2021-01-01 09:01:05

前端組件化設計

2020-06-28 09:30:37

Linux內存操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区av | 亚洲国产欧美国产综合一区 | 成人av电影网 | 97中文视频 | 中文字幕av亚洲精品一部二部 | 国产精品久久久久久高潮 | 国产午夜精品一区二区三区四区 | 日韩电影免费在线观看中文字幕 | 久久久91精品国产一区二区三区 | 日韩av第一页 | 国产精品亚洲视频 | 中文精品视频 | 国产在线视频一区二区 | 亚洲欧美精品一区 | 99精品视频免费观看 | 午夜日韩 | h漫在线观看 | 久久综合久久综合久久综合 | 国产成人精品久久二区二区91 | 亚洲日韩中文字幕一区 | 久久精品欧美一区二区三区不卡 | 亚洲精精品 | 日日噜噜噜夜夜爽爽狠狠视频97 | 青青操av | 亚洲精品电影网在线观看 | 国产三级精品视频 | 成人精品免费视频 | 欧美精品成人一区二区三区四区 | 欧美一级淫片007 | 男女羞羞视频在线观看 | 国产精品视频久久久 | 国产精品精品视频一区二区三区 | 久久亚洲精品国产精品紫薇 | 国产女人与拘做受免费视频 | 精品1区2区| 日日射影院 | 国产亚洲一区在线 | 成年人网站免费 | 亚洲成人黄色 | 久久手机视频 | 久久综合影院 |