日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

你有做 Code Review 吗?

發(fā)布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你有做 Code Review 吗? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在代碼的編寫中有一個很重要的環(huán)節(jié),經(jīng)常會被忽視,那就是 Code Review ,據(jù)說在 Facebook、Google 這種互聯(lián)網(wǎng)大公司,要求每一個提交都必須通過審查,對于每個工程師來說 Code Review 是一項十分重要的工作,甚至比寫代碼本身更重要。

這里所說的 Code Review 是指人工的方式進(jìn)行代碼的檢查,通常會給我們帶來下面的一些好處:

  • 編碼風(fēng)格可以保持一致,目前團隊中雖然有編碼規(guī)范的指引,但在代碼抽查時,還是會看到很多「個性」的代碼;

  • 將明顯問題扼殺在搖籃里,有時候存在設(shè)計上的一些錯誤,在后期要調(diào)整起來非常麻煩,改動大容易引發(fā)新的問題,還需要修復(fù)歷史數(shù)據(jù)等;

  • 新人能夠快速融入團隊,知道團隊的編碼風(fēng)格,能學(xué)習(xí)到一些優(yōu)秀代碼的寫法,也能知道哪些是禁區(qū),不能觸碰;

  • 團隊成員之間能夠互相學(xué)習(xí),構(gòu)建良好的團隊氛圍。

不做 Code Review 也能完成功能的實現(xiàn),只不過慢慢會帶來下面的問題:

  • 從每天寫功能慢慢變成每天寫 Bug;

  • 代碼的壞味道越來越濃,代碼變得難以維護;

  • 修改一行代碼,測試沒有覆蓋到,往往就會帶來很嚴(yán)重的后果;

  • 可能過一段時間,就需要進(jìn)行大規(guī)模的重構(gòu);

  • 新人的技能得不到快速提升。

其實我們都知道 Code Review 的重要性,敏捷開發(fā)中的結(jié)對編程就包含了 Code Review ,但為什么卻難以執(zhí)行呢,我認(rèn)為有下面一些原因:

  • 項目急,時間緊,完成功能都需要加班加點,哪還有時間做 Code Review;

  • 對 Code Review 的認(rèn)知不足,不夠重視;

  • 沒有相關(guān)的流程和制度進(jìn)行約束,很難堅持執(zhí)行下去。

我們團隊的代碼采用私有 GitLab 服務(wù)器,自然也使用了 GitLab 中的 MR 模式,不清楚 MR 是什么的同學(xué)可以看看我之前寫的《在團隊中使用 GtiLab 中的 Merge Request 工作模式》。曾經(jīng)有一個美好的設(shè)想就是利用 Merge Request ,讓每個人都能參與進(jìn)來,在 GitLab 中進(jìn)行代碼的討論,但非常遺憾,最終沒能執(zhí)行起來。

Code Review 的工具和方式方法非常多,我們?nèi)绻芴粢粌煞N方式,落地執(zhí)行下去,就是非常好的一個開始。

上面說到 Merge Request ?在團隊中沒有推行起來,但我個人還是在經(jīng)常使用,我是代碼合并的管理員之一,當(dāng)合并代碼時,我會重點關(guān)注兩個方面:

1、核心代碼的改動

  • 當(dāng)前功能的提交是否有必要修改到這些地方,理由是什么?

  • 這些代碼的改動有沒有可能引發(fā)一些嚴(yán)重問題?

2、MR 是誰提交的

  • 如果是資深開發(fā)人員提交的代碼,Review 的粒度會比較粗;

  • 如果是新人提交的代碼,則會重點關(guān)注,包括規(guī)范以及邏輯的合理性。

除此之外,我們領(lǐng)導(dǎo)推薦的一種做法,目前在團隊中一直在執(zhí)行,就是寫代碼前先寫空方法。將任何的需求轉(zhuǎn)化成代碼,中間的思考過程是復(fù)雜的,需要考慮很多東西:性能、擴展、是否優(yōu)雅等,反倒是最終的編碼實現(xiàn)相對是簡單的。

而寫空方法的過程就是思考的過程,涉及到了類的創(chuàng)建、抽象、組合;方法的職責(zé),事先沒有思考清楚,是寫不出來的。

快速出一版空方法后,再進(jìn)行溝通和討論,找出其中有遺漏和有問題的點,進(jìn)行修改,最終的版本在大方向上基本是沒什么問題的。

對于 Code Review ,我自己也還在不斷地探索和實踐,找到適合團隊的方法,執(zhí)行下去,然后再持續(xù)進(jìn)行改進(jìn)和完善。

總結(jié)

以上是生活随笔為你收集整理的你有做 Code Review 吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。