• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      重讀《重構(gòu)》,呼喚匠藝

      2019-05-24 07:28:01熊節(jié)
      出版人 2019年5期
      關(guān)鍵詞:手法重構(gòu)函數(shù)

      熊節(jié)

      2009年,在為《重構(gòu)》第1版的中譯本再版整理譯稿時(shí),我已經(jīng)隱約察覺行業(yè)中對“重構(gòu)”這個(gè)概念的矛盾張力。一方面,在這個(gè)“VUCA”(易變、不確定、復(fù)雜、模糊)橫行的年代,有能力調(diào)整系統(tǒng)的內(nèi)部結(jié)構(gòu),使其更具長期生命力,這是一個(gè)令人神往的期許。另一方面,重構(gòu)的扎實(shí)功夫要學(xué)起來、做起來,頗不是件輕松的事,且不說詳盡到近乎瑣碎的重構(gòu)手法,光是單元測試一事,怕是已有九成同行無法企及。結(jié)果,“重構(gòu)”漸漸成了一塊漂亮的招牌,大家都愿意掛上這個(gè)名號,可實(shí)際上干的卻多是“刀劈斧砍”的勾當(dāng)。

      如今又是十年過去,只從國內(nèi)的情況而論,“重構(gòu)”概念的表里分離,大有愈演愈烈之勢。隨著當(dāng)年的一線技術(shù)人員紛紛走上領(lǐng)導(dǎo)崗位,他們樂于將“重構(gòu)”這塊漂亮招牌用在更寬泛的環(huán)境下,然而基本功的欠缺,卻也一路如影隨形。

      此時(shí)轉(zhuǎn)頭看Martin Fowler時(shí)隔將近廿載后終于付梓的《重構(gòu)》第2版,我不禁感嘆于他對“微末功夫”的執(zhí)著。在此書尚未成型之前,我和當(dāng)時(shí)ThoughtWorks的同事曾有很多猜測,猜Fowler先生是否會(huì)在第2版中拔高層次,多談?wù)勗O(shè)計(jì)乃至架構(gòu)級別的重構(gòu)手法,甚或跟隨“敏捷組織”“精益企業(yè)”的風(fēng)潮談?wù)劷M織重構(gòu),也未為不可。孰料成書令我們跌破眼鏡,F(xiàn)owler先生不僅沒有拔高,反而把工夫做得更扎實(shí)了。

      對比前后兩版的重構(gòu)列表,可以發(fā)現(xiàn):第2版收錄的重構(gòu)手法在用途上更加內(nèi)聚,在操作上更加連貫,更重視重構(gòu)手法之間的組合運(yùn)用。第1版中占了整章篇幅的“大型重構(gòu)”,在第2版中全數(shù)刪去。一些較為復(fù)雜的重構(gòu)手法,例如復(fù)制“被監(jiān)視數(shù)據(jù)”、塑造模板函數(shù)等,第2版也不再收錄。而第2版中新增的重構(gòu)手法,則多是提煉變量、移動(dòng)語句、拆分循環(huán)、拆分變量這樣更加細(xì)致而微的操作。這些新增的手法看似簡單,但直指大規(guī)模遺留代碼中最常見的重構(gòu)難點(diǎn),正好補(bǔ)上了第1版中闕漏的細(xì)節(jié)。這一變化,正反映出Fowler先生對于重構(gòu)一事一貫的態(tài)度:千里之行積于跬步,越是面對復(fù)雜多變的外部環(huán)境,越是要做好基本功、邁出扎實(shí)步。

      在《重構(gòu)》第2版里,重構(gòu)手法的細(xì)節(jié)被再度打磨,重構(gòu)過程比之第1版愈發(fā)流暢。細(xì)細(xì)品味重構(gòu)手法中的前后步驟,琢磨作者是如何做到行為保持的,這是能啟發(fā)讀者舉一反三的讀書法。以保持對象完整重構(gòu)手法為例,第1版中的做法是在原本函數(shù)上新添參數(shù),而第2版的做法則是先新建一個(gè)空函數(shù),在其中做完想要的調(diào)整之后,再整體替換原本函數(shù)。兩相對比,無疑是新的做法更加可控,出錯(cuò)時(shí)測試失敗的范圍更小。

      從這個(gè)視角品味一個(gè)個(gè)重構(gòu)巨細(xì)靡遺的做法,讀者大概能感受到重構(gòu)與“刀劈斧砍”之間最根本的分歧。在很多重構(gòu)(例如最常用的改變函數(shù)聲明)的做法中,F(xiàn)owler先生會(huì)引入“很快就會(huì)再次修改甚至刪除”的臨時(shí)元素。假如只看起止?fàn)顟B(tài),這些變更過程中的臨時(shí)元素似乎是浪費(fèi):為何不直接一步到位改變到完善的結(jié)果狀態(tài)呢?然而這些臨時(shí)元素所代表的,是對變更過程(而非只是結(jié)果)的設(shè)計(jì)。缺乏對過程的精心設(shè)計(jì)與必要投入,只抱著對結(jié)果的美好憧憬提刀上陣,遇到困難就靠“奮斗精神”和加班解決,這種“刀劈斧砍”不止發(fā)生在缺乏審慎的“重構(gòu)”現(xiàn)場,又何嘗不是我們這個(gè)行業(yè)的縮影?

      是以,重構(gòu)這門技藝,以及Fowler先生撰寫《重構(gòu)》的態(tài)度,代表的是軟件開發(fā)的匠藝——對“正確的做事方式”的重視。在一個(gè)浮躁之風(fēng)日盛的行業(yè)中,很多人會(huì)強(qiáng)調(diào)“只看結(jié)果”,輕視做事的過程與方式。然而對于軟件開發(fā)的專業(yè)人士而言,如果忽視了過程與方式,也就等于放棄了我們自己的立身之本。Fowler先生近廿載對這本書、對重構(gòu)手法的精心打磨,給了我們一個(gè)榜樣:一個(gè)對匠藝上心的專業(yè)人士,日積月累對過程與方式的重視,是能有所成就的。

      猜你喜歡
      手法重構(gòu)函數(shù)
      長城敘事的重構(gòu)
      攝影世界(2022年1期)2022-01-21 10:50:14
      二次函數(shù)
      第3講 “函數(shù)”復(fù)習(xí)精講
      層遞手法
      快樂語文(2021年11期)2021-07-20 07:41:42
      二次函數(shù)
      緩解后背疼的按摩手法
      函數(shù)備考精講
      七步洗手法
      北方大陸 重構(gòu)未來
      北京的重構(gòu)與再造
      商周刊(2017年6期)2017-08-22 03:42:36
      绥化市| 贵州省| 罗源县| 望江县| 青神县| 九龙城区| 兴仁县| 阿克陶县| 徐水县| 阿荣旗| 玉环县| 湖口县| 太和县| 新平| 克东县| 顺昌县| 南木林县| 峨边| 郸城县| 濮阳市| 南平市| 和林格尔县| 海宁市| 太仆寺旗| 宜兰市| 攀枝花市| 江油市| 鲁山县| 固阳县| 沧源| 鸡西市| 忻州市| 台北市| 通榆县| 会宁县| 澎湖县| 闵行区| 石屏县| 泰来县| 台安县| 松潘县|