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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

等重构完这系统,我就辞职

發(fā)布時(shí)間:2025/3/20 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 等重构完这系统,我就辞职 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Part.1

為什么程序員一言不合就重構(gòu)代碼?

?

? ? ? ?當(dāng)你看到前任寫成一團(tuán)毛球的代碼塊;新增幾行代碼需先捋半天邏輯的超級(jí)大函數(shù);好不容易在迷宮里找到方向,小心翼翼地添加上新代碼,卻將別的調(diào)用系統(tǒng)給弄垮時(shí);還有運(yùn)行緩慢的老系統(tǒng)……

? ? ? ?此時(shí)程序員只有兩個(gè)選擇:要么忍,要么重構(gòu)。

? ? ? ?忍是有極限的,重構(gòu)的“三次法則”表示:程序員第一次看到亂代碼可以繞過(guò)去,先將手上的代碼堆好;第二次再碰上這塊,心里雖反感但再一次勉強(qiáng)繞過(guò);第三次肯定忍不住動(dòng)手。

以下的場(chǎng)景是不是很熟悉:

測(cè)試:這么小的功能,你為什么改動(dòng)300多個(gè)文件?

開發(fā):嘿嘿嘿,我順便將老代碼挪了地方。

測(cè)試:你知道這給我增加多少測(cè)試工作量嗎?那些我都得回歸一遍。

開發(fā):不用測(cè)試,沒(méi)有風(fēng)險(xiǎn)的,我就整理下代碼。

測(cè)試:你上次也這么說(shuō),結(jié)果偷偷改了某接口,影響到下游系統(tǒng)。還有那次啊你……

產(chǎn)品:你又在弄重構(gòu)?我這還有一大堆需求沒(méi)人開發(fā)。

開發(fā):我這的重構(gòu)系統(tǒng)也非常重要的。

產(chǎn)品:哪里重要了?你浪費(fèi)這么多人力重構(gòu),用戶也看不出來(lái)系統(tǒng)有什么變化,搞不好還弄壞老功能。求求你別重構(gòu)了。

開發(fā):我……

? ? ? ?雖然重構(gòu)不被其他角色認(rèn)可,但你的程序員同事會(huì)理解和感謝你的,重構(gòu)是優(yōu)化代碼設(shè)計(jì),使代碼可讀性更強(qiáng)。

? ? ? ?只是重構(gòu)是個(gè)大坑,不小心就掉坑里。

Part.2

“等重構(gòu)完這個(gè)系統(tǒng),我就提離職。”龍哥說(shuō)。

?

? ? ? ?由于核心系統(tǒng)初期設(shè)計(jì)不當(dāng),權(quán)責(zé)界限模糊,只要沾點(diǎn)邊的代碼都往上堆,造成系統(tǒng)過(guò)于龐大,邏輯混亂,一出現(xiàn)問(wèn)題,造成核心業(yè)務(wù)癱瘓。

? ? ? ?過(guò)老過(guò)大過(guò)中心的系統(tǒng)像個(gè)不定時(shí)炸彈,吃過(guò)幾次虧后,業(yè)務(wù)組決定拔掉這隱患:將系統(tǒng)重構(gòu),按照業(yè)務(wù)處理邏輯拆分成各功能單一的子系統(tǒng),降低耦合度。

? ? ? ?大伙把這事當(dāng)作季度最重要的計(jì)劃來(lái)開展:熱火朝天的開會(huì)劃分系統(tǒng),梳理代碼邏輯,安排測(cè)試,聲明注意事項(xiàng)。

各人領(lǐng)了任務(wù)后,開始埋頭苦干起來(lái)。

? ? ? ?但是重構(gòu)系統(tǒng)像從一個(gè)大迷宮捋線路,捋的過(guò)程耗費(fèi)巨大,而且極易遺漏。產(chǎn)品后來(lái)提的新需求直接在重構(gòu)后的系統(tǒng)里新增。開發(fā)團(tuán)隊(duì)進(jìn)入惡性循環(huán):新增功能有的人在老系統(tǒng)分支改,有人在新的改,導(dǎo)致提交的代碼分支混亂,搭建過(guò)程緩慢,計(jì)劃的任務(wù)delay,最后測(cè)試人員發(fā)現(xiàn)很多遺漏點(diǎn),又返工重構(gòu)。

? ? ? ?大家不斷埋頭地捋代碼,重構(gòu),測(cè)試,想百分百完美地完成任務(wù),而忽略整體項(xiàng)目進(jìn)度的把控。

? ? ? ?上線時(shí)間從9月份推遲到12月份,再到年后,最終來(lái)年6月份系統(tǒng)才上線完成,耗時(shí)一年多。

? ? ? ?每個(gè)人被重構(gòu)折磨得疲憊不已,還短時(shí)間看不出來(lái)效果,可已經(jīng)投入人力物力,大家只好硬著頭皮往下走。后來(lái)大家已經(jīng)想不起當(dāng)初為什么要重構(gòu),到底要重構(gòu)到什么樣子,只想著這重構(gòu)何時(shí)到頭,什么時(shí)候才能解放。從重構(gòu)半年時(shí)開始有人離職,到上線時(shí)僅剩一個(gè)原項(xiàng)目組的產(chǎn)品,他說(shuō)這項(xiàng)目終于結(jié)束,我也該走了。

Part.3

? ? ? ?上面的重構(gòu)沒(méi)有合理的項(xiàng)目規(guī)劃,還犯了重構(gòu)的大忌:邊重構(gòu)代碼邊新增功能,這樣相當(dāng)于將原系統(tǒng)推翻重做,風(fēng)險(xiǎn)極大。

那么該如何合理的安排重構(gòu)呢?

?

1.遵循“兩頂帽子”重構(gòu)原則

? ? ? ?在重構(gòu)時(shí),兩個(gè)不同的操作分開進(jìn)行:重構(gòu)代碼和新增功能。

先在不改變?cè)到y(tǒng)功能的基礎(chǔ)上修改現(xiàn)有代碼的設(shè)計(jì),這樣采用原有的測(cè)試方法可以輕松地驗(yàn)證這些修改的正確性。

再在已重構(gòu)好的基礎(chǔ)上增加新功能,使得新功能與老功能合理解耦。

上述例子里,業(yè)務(wù)組邊重構(gòu)邊在上面新開發(fā)功能,給測(cè)試人員的壓力巨大,原有的測(cè)試方法全不適用,增加回歸測(cè)試工作量。

2.使用“小步快跑”的重構(gòu)策略

? ? ? ?重構(gòu)避免使用“大布局”規(guī)劃項(xiàng)目進(jìn)程,如果從整理需求、設(shè)計(jì)接口、開發(fā)聯(lián)調(diào)、測(cè)試上線,經(jīng)歷幾個(gè)月的時(shí)間,如果其間有問(wèn)題,整個(gè)團(tuán)隊(duì)又得人仰馬翻地去調(diào)整方向,試錯(cuò)成本過(guò)高。“小布快跑”是讓我們重構(gòu)時(shí)只關(guān)注一個(gè)問(wèn)題點(diǎn),只解決這一個(gè)問(wèn)題。小改動(dòng),小局部?jī)?yōu)化,耗時(shí)短,見效快。

這便需要我們將重構(gòu)當(dāng)作一個(gè)習(xí)慣,融入在每一次代碼修改中。

3.測(cè)試驅(qū)動(dòng)開發(fā)

? ? ? ?上文例子里將代碼的質(zhì)量保證全丟給測(cè)試人員,光是對(duì)整個(gè)系統(tǒng)接口的性能測(cè)試就耗費(fèi)大半個(gè)月的時(shí)間,等測(cè)試人員將問(wèn)題列表整理后又得重新改代碼,不單浪費(fèi)時(shí)間,還可能引入大風(fēng)險(xiǎn)。

? ? ? ?正確的重構(gòu)姿勢(shì)是將測(cè)試融入在每一次重構(gòu)中,小步快跑,修改一塊代碼便自測(cè)這塊,等調(diào)通后再繼續(xù)往下走。重構(gòu)有風(fēng)險(xiǎn),開發(fā)測(cè)試兩手捉。

? ? ? ?《重構(gòu)》一書里說(shuō)道:任何一個(gè)傻瓜都能寫出計(jì)算機(jī)可以理解的代碼,唯有寫出人類容易理解的代碼,才是優(yōu)秀的程序員。

歡迎工作一到五年的Java工程師朋友們加入Java架構(gòu)開發(fā):468947140

點(diǎn)擊鏈接加入群聊【Java-BATJ企業(yè)級(jí)資深架構(gòu)】:https://jq.qq.com/?_wv=1027&k=5zMN6JB

本群提供免費(fèi)的學(xué)習(xí)指導(dǎo) 架構(gòu)資料 以及免費(fèi)的解答

不懂得問(wèn)題都可以在本群提出來(lái) 之后還會(huì)有職業(yè)生涯規(guī)劃以及面試指導(dǎo)

總結(jié)

以上是生活随笔為你收集整理的等重构完这系统,我就辞职的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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