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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【敏捷开发每日一贴】代码走查

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【敏捷开发每日一贴】代码走查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼走查

怎樣走查

高手本來自己就要開發很多代碼,還要替新手檢查代碼,多花費時間啊……”這是一個常見問題,答案是:每天,在后檢查點,花費不超過15分鐘時間,能看出什么來就說什么,時間到了就停。

一般而言,大致每天高手能編寫100多行有效代碼(按分號計數),新手會多一些但也不超過200(他們編寫代碼比較費),也就是10個屏幕以內。有經驗的人一定知道:高手看新手的軟件,5秒鐘就能發現問題。

常存在的一種情況是高手看不懂新手的代碼,當然不是因為技術太精妙了,而是寫得太亂了。但在松結對編程里邊不存在,由于師傅徒弟天天在一起,這200行代碼可謂一目十行,如果以往一直每天檢查代碼,那么里邊存在的問題應該不會很多。

走查什么

這個是重點,整體包括:

1. 結構問題

代碼最大的問題,不是一兩個地方有技術缺陷,也不是業務邏輯錯誤,而是整個軟件編寫的不好。前兩者都可以通過測試或使用來發現和更正,但后者就不同了。如果回想一下自己見過的各種爛攤子,是不是有同感?具體哪里有問題怎么改說不上來,就是整個軟件看上去混亂無章,無從下手。

具體結構問題包括:重復拷貝代碼(不封裝函數,不用Template/泛型……),函數過長(超過一屏幕就叫過長),錯誤封裝(不恰當的public/不用Interface/不內聚/強耦合/在類中封裝了無關方法……),內容錯誤(多個無關類置于一個文件/不恰當的命名……)等等。

改正結構問題,是從編寫可靠軟件向編寫精美軟件邁進的重要方法。

2. 業務邏輯問題

就是軟件是否與需求的要求符合的問題。師傅和徒弟經常對業務需求的理解有差異,借此機會同步一下,必要時引入PO(產品經理/策劃人員……)。

有人會說業務邏輯問題不是一測試就知道了嗎?可是測試一般發生在很久以后,有些邏輯測試還需要一定的觸發條件,而且測試只會發現失效(failure, 與預期不符)而不能發現缺陷(defect, 具體哪里出了錯),等積累長了,誰也找不到原因了。

3. 編程素養問題

很多問題屬于那種這樣也行那樣也行的狀態,比如命名/初始值/縮進/斷行……但是高手的做法總是比新手好一些。

比如bool?result= true; 這句話就有問題,剛初始化就先宣布成功,必有隱患。這是一個真實案例,而下面也的確有一個分支錯誤地返回了這個true(實際案例是個HRESULT)。而發現這個問題,不是測試而是代碼檢查。實際上測試幾乎發現不了這些問題,比如上面那段代碼會在某文件打不開的時候錯誤地返回這個true,而在測試中幾乎不會故事破壞那個文件來測試其結果。

實際使用時,不用拉太長的清單,師傅能想到的看到的告訴徒弟就行。

徒弟不需要學到天上去,只要能學到師傅那么好就可以了。之前在做CMMI咨詢的時候我弄過一些檢查表,推廣均以失敗而告終。那些表都是為了頂級安全性的軟件考慮的,在普通項目里邊使用是個災難。

幾個問題

1. 師傅天天檢查,會不會很累?

檢查不全是為了發現缺陷,而是為了提高成長。如果總是發現重復問題,此徒不可教。好學的徒弟有半年時間就能接近師傅了,考慮到師傅一般比徒弟多工作2年,我們因此讓一個人加速1.5年。

2. 不會餓死師傅嗎?

會,也不會。如果師傅止步不前,即使他不教別人,也遲早被人超越;師傅也是需要學習的。事實是會教徒弟的師傅才會學習,而會學習的師傅才會教徒弟。

3. 師傅跟誰學?

師徒制度是最底層團隊制度(1個師傅+13個徒弟左右),其上還有更大的結構和更高的高手。我們之前曾把人員層次設為需指導的(徒弟)/可免于指導的(也是徒弟)/可提供指導的(師傅)/可培訓的(團隊最高級別的高手),最后一級需要定期與大家分享內容。

師傅作為高級技術人員,還享有機會外出培訓/采購圖書等待遇。

師傅自學也很重要,經驗更是不可取代的。前事不忘后事之師,要把自己的經歷和別人的經歷都當作經驗來看待。

4. 師傅努力編好自己的軟件不久已經有很大貢獻了,為何要幫助徒弟?

軟件整體是一個串聯系統,一個環節出了問題整個軟件崩潰(Web軟件好一些)。因此軟件質量取決于最差的部分,而不是最好的部分。

代碼審查的確會占用時間導致最好的部分變差,但卻使最差的地方變得好得多,整體質量因此而得以提高。

從工作層面講,代碼檢查使得代碼的質量尤其是結構質量,整體上保持在師傅可能達到的水平,從而保證了項目的成功。

從學習層面講,代碼檢查使得徒弟可以不斷/漸進地學習,從而花費遠遠低于師傅的時間成本達到更高層次。

心態是其中的關鍵。徒弟不能因此而覺得有一個后盾了可以放任存在問題等師傅發現,要珍惜師傅的時間,也要利用師傅的時間每次都學不同的內容;師傅也不能覺得徒弟學會了對自己是個威脅,威脅時刻都在,不來自于自己的徒弟,也會來自于別人的徒弟,唯有自我提高。

----本文摘自CSDN文章

?

總結

以上是生活随笔為你收集整理的【敏捷开发每日一贴】代码走查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。