摘要:本章我們來(lái)聊聊重構(gòu)造成的災(zāi)難性毀滅。看到這里即可明白重構(gòu)造成的災(zāi)難性毀滅是在年的時(shí)期發(fā)生的,那個(gè)階段在技術(shù)不夠扎實(shí)但還有一股子改變世界的勁頭發(fā)生的問(wèn)題。
前言
這章我在7月20號(hào)的時(shí)候就準(zhǔn)備好了標(biāo)題,在那之前有寫(xiě)過(guò)一篇重構(gòu)的文章,這段時(shí)間一直在等重構(gòu)造成的弊端。
慶幸的是至今也沒(méi)掛掉。本章我們來(lái)聊聊重構(gòu)造成的災(zāi)難性毀滅。
青銅只要你確定你是一個(gè)真正的程序員,那當(dāng)你接手一個(gè)新項(xiàng)目時(shí),因?yàn)槊總€(gè)人的編碼規(guī)范與風(fēng)格不同,或者某塊代碼出現(xiàn)了問(wèn)題,作為一名向上的程序員,總會(huì)想去重構(gòu)這個(gè)項(xiàng)目更嚴(yán)重的都想重寫(xiě)一遍。例如下面的這類代碼
$status = $_POST["status"] switch status { case ... break; case ... break; default: if(){ ... }else if(){ ... }else(){ ... } break; }
我知道當(dāng)你看到這段代碼內(nèi)心是崩潰的,如果是名新人,在沒(méi)有完全理解其結(jié)構(gòu)作用的情況下,絕對(duì)不敢擅自動(dòng)原有的代碼,除非他想加班,那怎么辦呢?只好在原有的代碼上繼續(xù)增加代碼了。
$status = $_POST["status"] switch status { case ... break; case ... break; default: if(){ ... }else if(){ ... }else if(){ ... }else (){ // 新人寫(xiě)的 } break; }
這塊聊的新人入職,一般是不敢動(dòng)原有代碼的。當(dāng)然這不排除有膽量并且重構(gòu)的也不錯(cuò)的新人。
白銀上面聊的與重構(gòu)并無(wú)太大關(guān)系,但是必須存在的一段,用于表現(xiàn)程序員重構(gòu)道路上的勇氣。當(dāng)你到白銀差不多需要1-2年的時(shí)間,具體時(shí)間要個(gè)人處在的環(huán)境和自學(xué)能力。新人不敢動(dòng)是因?yàn)樗麑?duì)語(yǔ)言的基礎(chǔ)用法,類庫(kù),設(shè)計(jì)模式都沒(méi)有特別了解,不敢擅自做動(dòng)作也是比較聰明、保守的做法。
但到了白銀就不一樣了,我總結(jié)了程序員從入門(mén)到中級(jí)的心理變化,為什么只總結(jié)到中級(jí)?(PS:作者我自己都沒(méi)有到高級(jí))這是一個(gè)從謙虛到高傲在到什么都不會(huì)的過(guò)程。
看到這里即可明白重構(gòu)造成的災(zāi)難性毀滅是在2-4年的時(shí)期發(fā)生的,那個(gè)階段在技術(shù)不夠扎實(shí)但還有一股子改變世界的勁頭發(fā)生的問(wèn)題。
例如積分系統(tǒng)(這里指新接手的項(xiàng)目),領(lǐng)導(dǎo)讓你修改簽到獲得積分,如果在未全面了解代碼結(jié)構(gòu)與功能分布時(shí),擅自修改那必然出現(xiàn)一場(chǎng)不可避免的災(zāi)難。一個(gè)簡(jiǎn)單的簽到功能的模塊復(fù)雜度不亞于一個(gè)普普通通的企業(yè)站。大致有如下模塊組成
用戶模塊 -> 積分模塊 -> 交易模塊 -> 明細(xì)模塊
為什么說(shuō)是必然?除非你在原有基礎(chǔ)上改,那這樣你又變回了青銅并且也不想那么做。在基礎(chǔ)上重構(gòu)可能當(dāng)時(shí)不會(huì)出現(xiàn)問(wèn)題。不斷的有其他接手早晚回出問(wèn)題。重構(gòu)的災(zāi)難并非指的是一個(gè)人或某個(gè)人造成的,就如一個(gè)水杯,每個(gè)人看到都倒入一滴水,當(dāng)溢出來(lái)時(shí)就發(fā)生了所謂的“災(zāi)難”
黃金到這個(gè)段位后,很多人都變得聰明了,不在基礎(chǔ)代碼上修改,更不去所謂的重寫(xiě)。多帶帶拿出一個(gè)文件寫(xiě)功能不就好了。事情還遠(yuǎn)沒(méi)有那么簡(jiǎn)單。
就如上圖那二貨,認(rèn)為自己可以,但最終Over。在項(xiàng)目開(kāi)發(fā)上我們見(jiàn)過(guò)很多類型的情況。重構(gòu)的方式方法有很多種,因人因物(項(xiàng)目)而異,對(duì)項(xiàng)目作出合理的分析后再對(duì)其作出一部分細(xì)節(jié)的重構(gòu),日月累計(jì)最終成形。
總結(jié)如果你正在做重構(gòu)應(yīng)考慮以下幾點(diǎn)
成本
工期
代碼的優(yōu)雅與簡(jiǎn)潔
可擴(kuò)展性等等
為什么要重構(gòu)?原有代碼無(wú)法更好的擴(kuò)展,代碼可讀性差無(wú)法在其基礎(chǔ)上修改的等等原因。希望會(huì)對(duì)你提供重構(gòu)質(zhì)量有一定幫助。
致謝感謝你看到這篇文章,希望可以幫到你,謝謝。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29657.html
摘要:本章我們來(lái)聊聊重構(gòu)造成的災(zāi)難性毀滅??吹竭@里即可明白重構(gòu)造成的災(zāi)難性毀滅是在年的時(shí)期發(fā)生的,那個(gè)階段在技術(shù)不夠扎實(shí)但還有一股子改變世界的勁頭發(fā)生的問(wèn)題。 showImg(https://segmentfault.com/img/bVbjDK2?w=1734&h=682); 前言 這章我在7月20號(hào)的時(shí)候就準(zhǔn)備好了標(biāo)題,在那之前有寫(xiě)過(guò)一篇重構(gòu)的文章,這段時(shí)間一直在等重構(gòu)造成的弊端。 慶幸...
摘要:考慮到云數(shù)據(jù)中心未來(lái)承載業(yè)務(wù)系統(tǒng)的多樣性和擴(kuò)容空間,一般都會(huì)把架構(gòu)設(shè)計(jì)成公有云和私有云相混合的融合架構(gòu)。針對(duì)傳統(tǒng)災(zāi)備系統(tǒng)建設(shè)面臨的挑戰(zhàn),云數(shù)據(jù)中心更多傾向采用兩地三中心的解決方案。近年數(shù)據(jù)中心處于高速的建設(shè)發(fā)展時(shí)期,十三五規(guī)劃中也將大數(shù)據(jù)、云計(jì)算作為當(dāng)前國(guó)家經(jīng)濟(jì)社會(huì)發(fā)展的重要戰(zhàn)略內(nèi)容,各政府部門(mén)對(duì)戰(zhàn)略性新興產(chǎn)業(yè)的大力扶持,以及對(duì)云計(jì)算、物聯(lián)網(wǎng)、寬帶和下一代網(wǎng)絡(luò)的發(fā)展的高度重視,都給建設(shè)數(shù)據(jù)中...
摘要:類加載器三杰有三類,分別是以及。線程上下文類加載器線程上下文類加載器可以不遵循雙親委派機(jī)制。免費(fèi)領(lǐng)取驗(yàn)證碼內(nèi)容安全短信發(fā)送直播點(diǎn)播體驗(yàn)包及云服務(wù)器等套餐更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)分享請(qǐng)?jiān)L問(wèn)網(wǎng)易云社區(qū)。文章來(lái)源網(wǎng)易云社區(qū) 本文由作者張遠(yuǎn)道授權(quán)網(wǎng)易云社區(qū)發(fā)布。 類加載器三杰 jvm有三類classloader,分別是bootstrap classloader,extended classlo...
摘要:年月日,論壇首次來(lái)到中國(guó),在上??鐕?guó)采購(gòu)會(huì)展中心召開(kāi)并獲得了圓滿成功。擁抱微服務(wù)就成為大勢(shì)所趨。和大會(huì)日期會(huì)議日程通告日期年月日會(huì)議活動(dòng)舉辦日期年月至日和贊助方案和多元化獎(jiǎng)學(xué)金現(xiàn)正接受申請(qǐng)和即將首次合體落地中國(guó)和購(gòu)票窗口,立即購(gòu)票 KubeCon + CloudNativeCon 論壇,作為 CNCF 的旗艦會(huì)議,自2016年以來(lái)已經(jīng)在北美和歐洲兩地的舊金山、倫敦、硅丘(奧斯汀)、哥本...
摘要:前后端的界限是按照瀏覽器和服務(wù)器的劃分。前后端彼此互不關(guān)聯(lián)。關(guān)于作者本文部分圖片段落參考文章實(shí)踐中的前后端分離。淘寶前后端分離實(shí)踐本文源碼詳見(jiàn)服務(wù)端代碼。 一、起源 (故事純屬虛構(gòu),如有雷同,純屬巧合)傳說(shuō)在很久很久以前,我們有志之士有了個(gè)創(chuàng)業(yè)的想法,于是乎開(kāi)始了自己的創(chuàng)業(yè)之夢(mèng),但是人手不足啊,于是乎所有角色老子一個(gè)人全包了: Roles: PM, DBA, RD, FED, Des...
閱讀 882·2021-11-22 09:34
閱讀 1020·2021-10-08 10:16
閱讀 1833·2021-07-25 21:42
閱讀 1803·2019-08-30 15:53
閱讀 3535·2019-08-30 13:08
閱讀 2195·2019-08-29 17:30
閱讀 3355·2019-08-29 17:22
閱讀 2186·2019-08-29 15:35