国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java代碼分析器(六): 大規(guī)模自動(dòng)重構(gòu)經(jīng)驗(yàn)談

Caizhenhao / 1677人閱讀

摘要:接口級(jí)行為不變,內(nèi)部行為盡量不變,類結(jié)構(gòu)盡量不變?yōu)榇a模式和場(chǎng)景確立一組明確的前提條件,重構(gòu)必須滿足前提條件才能進(jìn)行。但是大規(guī)模難以完美做到這三點(diǎn)。因此自動(dòng)重構(gòu)是革命性的技術(shù)。

另載于 http://www.qingjingjie.com/blogs/7

最后再啰嗦一篇吧,分享些宏觀經(jīng)驗(yàn),供需要做類似事情的人參考

技術(shù)示例在前篇! 伸手黨繞行!

大規(guī)模系統(tǒng)重構(gòu),不可避免要觸到各個(gè)團(tuán)隊(duì)/模塊的很多代碼,很可能破壞功能,到時(shí)候你就成眾矢之的了,tickets撲面而來(lái),到處滅火。

怎么確保不破壞功能呢?就要做安全重構(gòu)。(2016/4/16做了補(bǔ)充,以方括號(hào)[]標(biāo)出)

充分了解系統(tǒng)架構(gòu),調(diào)查各種代碼模式和場(chǎng)景(爭(zhēng)取發(fā)現(xiàn)corner case),手工重構(gòu)幾個(gè)試試。

[然后把手工過(guò)程給自動(dòng)化]

盡量做等價(jià)變換,把代碼改成等價(jià)形式,一般都是安全的。(注意:涉及反射的代碼無(wú)法等價(jià)變換。)

[改變類結(jié)構(gòu),對(duì)非反射代碼是等價(jià)的,對(duì)反射代碼是不等價(jià)的]

絕不能改變代碼語(yǔ)義(重構(gòu)本來(lái)就不該改變語(yǔ)義)。

[接口級(jí)行為不變,內(nèi)部行為盡量不變,類結(jié)構(gòu)盡量不變]

為代碼模式和場(chǎng)景確立一組明確的前提條件,重構(gòu)必須滿足前提條件才能進(jìn)行。

[分類處理,列出計(jì)劃再行動(dòng)]

如果完美做到以上三點(diǎn),新代碼基本上是不需要測(cè)試的(抽樣測(cè)試即可),否則要做針對(duì)性的測(cè)試。但是大規(guī)模難以完美做到這三點(diǎn)。

[TraceSonar輔助確立測(cè)試范圍 https://github.com/sorra/TraceSonar]

簡(jiǎn)單重構(gòu)只需要語(yǔ)法分析,復(fù)雜重構(gòu)可能需要語(yǔ)義分析。該做的工作要做足,別出簍子。

[實(shí)踐發(fā)現(xiàn)Most Valuable Product只夠用來(lái)demo]

難以自動(dòng)判斷的場(chǎng)景,可以作標(biāo)記(例如在該位置造成編譯錯(cuò)誤或插入注釋)。自動(dòng)重構(gòu)結(jié)束后,找到標(biāo)記(例如編譯一遍),然后人工處理。

[注釋無(wú)法直接插入,如果你想知道解決辦法,請(qǐng)?jiān)u論]

盡可能自動(dòng)化。一來(lái)節(jié)約人力,二來(lái)機(jī)械重復(fù)的人工操作極易出錯(cuò),而機(jī)器是不會(huì)犯錯(cuò)的。因此自動(dòng)重構(gòu)是革命性的技術(shù)。

[還可以自動(dòng)生成改動(dòng)列表, 相關(guān)文檔, etc.]

補(bǔ)充:如果資源允許,當(dāng)然要做好測(cè)試。

是不是寫得太抽象?大家給點(diǎn)反饋。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/65297.html

相關(guān)文章

  • 【譯】 13簡(jiǎn)單的優(yōu)秀編碼規(guī)則(從我15年的經(jīng)驗(yàn)

    摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...

    Eidesen 評(píng)論0 收藏0
  • 【譯】 13簡(jiǎn)單的優(yōu)秀編碼規(guī)則(從我15年的經(jīng)驗(yàn)

    摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...

    zhunjiee 評(píng)論0 收藏0
  • 【譯】 13簡(jiǎn)單的優(yōu)秀編碼規(guī)則(從我15年的經(jīng)驗(yàn)

    摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...

    aisuhua 評(píng)論0 收藏0
  • 【譯】 13簡(jiǎn)單的優(yōu)秀編碼規(guī)則(從我15年的經(jīng)驗(yàn)

    摘要:記住,帶有嚴(yán)格測(cè)試的代碼可能比沒(méi)有測(cè)試的代碼更有害。保持簡(jiǎn)單,極度簡(jiǎn)單不要編寫復(fù)雜的代碼。并且它將是全球代碼文檔的良好開(kāi)端。使用這樣的迭代來(lái)部署質(zhì)量更新,而不是腰部時(shí)間和資源對(duì)不合理的愿望和犧牲與質(zhì)量。 原文地址:https://hackernoon.com/few-si... showImg(https://segmentfault.com/img/bVJdkG?w=1000&h=2...

    KunMinX 評(píng)論0 收藏0
  • 朱曄的互聯(lián)網(wǎng)架構(gòu)實(shí)踐心得S1E1:Pilot

    摘要:架構(gòu)團(tuán)隊(duì)的人是不是很輕松,業(yè)務(wù)團(tuán)隊(duì)天天加班搞項(xiàng)目,架構(gòu)團(tuán)隊(duì)貌似都是在喝茶聊天研究一些不實(shí)用的東西。架構(gòu)團(tuán)隊(duì)的架構(gòu)師最好是在業(yè)務(wù)團(tuán)隊(duì)深耕過(guò),知道痛點(diǎn)所在的,這樣研發(fā)出來(lái)的系統(tǒng)和工具能夠和公司目前的項(xiàng)目所匹配發(fā)揮最大的作用,讓大家愛(ài)不釋手。 最近幾年寫博客確實(shí)寫得少了,初出茅廬的時(shí)候什么都愿意去寫,現(xiàn)在寫一點(diǎn)東西之前會(huì)反復(fù)斟酌是否有價(jià)值。工作十幾年了,做了N多個(gè)互聯(lián)網(wǎng)系統(tǒng),業(yè)務(wù)涉及教育、游...

    CoderBear 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Caizhenhao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<