接手代碼太爛可婶,要不要辭職?

接手代碼太爛援雇,要不要辭職扰肌?

事情是這樣的,前幾天在朋友圈熊杨,我看到一朋友發(fā)表了一條說說:“入職新公司曙旭,從重構代碼到放棄”盗舰,我就問他怎么了?他說桂躏,剛進一家新公司钻趋,接手代碼太爛,領導讓我先熟悉業(yè)務邏輯剂习,然后去修復之前項目中遺留的bug蛮位,實在不行就重構。


關鍵是鳞绕,離職的那位仁兄走之前失仁,還跟我在QQ上說,老哥辛苦了们何,我寫的很亂真不好意思萄焦,但我是故意的。



這幾天冤竹,我都在想拂封,要不要離職?



———



聽完你的遭遇鹦蠕,我想先說一句冒签,離職那位仁兄太狠了!V硬 萧恕!

其次,我相信肠阱,這個問題很多人都遇到過廊鸥。


每個新人去一家新公司都會覺得公司代碼很爛,可能是因為他沒被產(chǎn)品虐過辖所。


其實惰说,這種新員工很不錯了,一看就是真萌新缘回,重構這種事吆视,老板看不到 KPI,出了事還得自己兜底酥宴,還會得罪人啦吧,費力不討好,何必呢拙寡!



老前輩的警世良言一定要牢記:重構一時爽授滓,頭發(fā)不再長。



還有,工作了10年的碼農(nóng)般堆,到了新公司在孝,絕不會說這種話。



不過話說回來淮摔,能覺得模塊代碼爛私沮,還能擼起袖子去改的程序員,真是很難得的一種精神和橙。我身邊 90%都是只是嘴上說仔燕,絕對不動手干的。下一次下一次下一次魔招,無數(shù)的下一次造就了爛代碼晰搀。




「 要不要重構 」

很多人口中的重構就是重寫,而不是去改善現(xiàn)有的代碼办斑。


現(xiàn)在的有些工程師太浮躁, 動不動就要重構, 就跟很多的團隊動不動就要搞一個框架一樣外恕。


說實話,以我個人的經(jīng)驗來說俄周,絕大多數(shù)開發(fā)人員到新公司后,都會覺得代碼很爛髓迎,但通常他不了解業(yè)務邏輯是怎么變化的峦朗,這種代碼是在什么情況下寫出來的,有什么特殊的背景(除了真的是亂搞的排龄,絕大多數(shù)的“爛代碼”一般都是有原因的:業(yè)務需求改改改波势,這個需求明天就要上線等等等等),有多少坑(很少有人能在極短時間內(nèi)把所有的坑都找出來)橄维。


如果貿(mào)然去重構尺铣,風險非常大。而且再說難聽點争舞,就算重構完了凛忿,也有可能是一堆新的“爛代碼”替換老的“爛代碼”。


所以竞川,進了一家新公司店溢,別動不動就重構,先了解項目的業(yè)務邏輯委乌。




「 要不要離職 」


其實在我看來床牧,如果僅僅因為接手代碼太爛,就選擇離職遭贸,那么你跳槽到下一個公司依然會面對同樣的現(xiàn)狀戈咳,因為幾乎每個人,都會覺得自己公司的項目代碼很爛。


我們先說說造成這種現(xiàn)象的原因是什么著蛙,首先删铃,我們得相信,沒有任何一個人故意把自己的代碼寫的很爛册踩,每個人都想把自己的代碼寫的很優(yōu)雅泳姐,擴展性很好,但是可能當初水平不夠暂吉,在當時看似還不錯的代碼胖秒,日后在別人看來就是所謂的垃圾代碼。

我們每個人都在進步慕的,別說別人了阎肝,你現(xiàn)在看你三個月之前的代碼,可能你都會覺得寫的很垃圾肮街,如果你沒有這種感覺风题,只能說你在止步不前。


其次嫉父,技術更新?lián)Q代太快沛硅,市場的變化也太快,產(chǎn)品自然也一直在演變绕辖,也許在當時看起來還不錯的代碼摇肌,隨著時間的推移,功能的更新仪际,代碼的堆徹围小,慢慢就變成后來者眼中的爛代碼了。



「 如何從爛代碼中爬出來 」


假如你真的要接手別人的代碼树碱,怎樣才能不被玩兒死呢肯适?


雖然你可能會說,聽了很多道理成榜,依然交接不好代碼框舔,可作為經(jīng)常被別人的代碼玩得欲仙欲死的老司機,我有些話如鯁在喉赎婚,不吐不快雨饺。

當你被要求接管要離職的程序員的代碼時,如果能注意以下幾點惑淳,就有可能活著從他的代碼里爬出來额港。

1. 產(chǎn)品需求與業(yè)務流程文檔


產(chǎn)品需求與業(yè)務流程文檔,這些是你先要找到的歧焦,你接手的代碼移斩,必然和某個產(chǎn)品需求相對應肚医,必然實現(xiàn)了某個業(yè)務流程,先了解產(chǎn)品需求和業(yè)務流程向瓷,才能更好的讀代碼肠套。


假如你的團隊就是沒文檔,Ok猖任,也可以要求離職或轉移戰(zhàn)線的這位程序員把需求描述出來你稚,把業(yè)務流程畫出來。


2. 測試環(huán)境


了解了產(chǎn)品需求和業(yè)務流程朱躺,最好能體驗一下軟件刁赖,從用戶的角度來理解軟件的使用。這個時候你要么需要生產(chǎn)環(huán)境长搀,要么需要測試環(huán)境宇弛。哪個環(huán)境不重要,重要的是源请,你需要一個能Run枪芒,能體驗的軟件。


3. 業(yè)務流程在代碼層面的體現(xiàn)


負責交接代碼給你的那位同事谁尸,要么在辦離職舅踪,要么已經(jīng)介入了其他產(chǎn)品,眼下很可能已無心戀戰(zhàn)良蛮,但你心里要清楚抽碌,只有他才能提供代碼層面的東西,比如類圖背镇、模塊劃分說明咬展、數(shù)據(jù)流圖泽裳、時序圖瞒斩、狀態(tài)圖等等。


所以涮总,你需要他整理一些文檔和圖表出來胸囱。你可以告訴領導你需要上面的東西,讓領導和他溝通瀑梗,讓他在離開之前準備好這些文檔給你烹笔,并留一些時間以便你熟悉。


4. 讀代碼抛丽,不死不休


有了產(chǎn)品需求谤职,有了業(yè)務流程,有了代碼設計相關的文檔和圖表亿鲜,接下來你就該死磕代碼了:


1

2

3

4

5

6

7

while(不懂)


{


????讀


}


5. 開發(fā)環(huán)境與調試


有的產(chǎn)品需要比較復雜的開發(fā)環(huán)境配置允蜈,一定要提前做好,讓即將離開的同事輔導你搭建好開發(fā)環(huán)境,這樣你就可以利用“調試”這個強大的武器來快速理解代碼了饶套。


調試是接手別人代碼時的利器漩蟆,如果你看不明白一個業(yè)務在代碼層面是怎么體現(xiàn)的,也看不懂代碼之間的調用關系妓蛮,那最好的辦法就是調試怠李。從一個業(yè)務的起點所對應的代碼開始調試,一步一步跟進去蛤克,就能快速理清函數(shù)調用鏈捺癞。


6. 樹立可實現(xiàn)可衡量的目標


程序員的工作交接,尤其是代碼交接咖耘,怎樣才算順利完成呢翘簇?


這簡直就是一個謎!


沒人說得清楚儿倒。


所以版保,你最好給自己梳理一些可衡量的、可實現(xiàn)的目標夫否。比如讀懂A彻犁、B、C三個業(yè)務流程……


最好凰慈,找一個Bug或者一個新增的功能汞幢,帶著目的去讀代碼、修改代碼微谓,有目的森篷,有目標,有時間盒豺型,就容易投入仲智,容易讀進去,容易掌握與Bug或新增功能相關的代碼的邏輯與流程姻氨。


7. 輸出钓辆、分享與重構


你在讀代碼時,如果能撇開給你交接工作的程序員提供的文檔肴焊,按自己的理解前联,自己繪制類圖、數(shù)據(jù)流圖娶眷、時序圖似嗤、關鍵業(yè)務流程對應的函數(shù)調用關系鏈等,就能更快的掌握別人的代碼届宠。


如果你還能將你理解到的東西烁落,講給其他人聽壳咕,并且講明白,那Ok顽馋,你真的理解了別人交接給你的代碼谓厘。

再進一步,如果你在理解現(xiàn)有代碼的基礎上寸谜,可以識別出哪些部分實現(xiàn)得邏輯不清晰或有待改善竟稳,然后可以結合業(yè)務與自己的理解將其重構,那就真的是完全接手了別人的代碼熊痴,別人的代碼與你的代碼就沒有差別了他爸,它們終將成為你的代碼。



「 最重要的事兒 」


如果你總是看見代碼多就發(fā)愁果善,看見代碼臟亂差就詛咒埋怨诊笤,看見代碼邏輯復雜就頭疼,搞不清調用關系就放棄巾陕,那你可能永遠也變不成代碼的主人讨跟,只能一次又一次被代碼蹂躪。


所以鄙煤,其實交接代碼最重要的事兒晾匠,就是:


不要被浩渺如煙并且陌生怪誕的代碼嚇得不敢動彈,現(xiàn)在就開始讀梯刚,立刻凉馆,馬上,堅持十分鐘亡资,再堅持十分鐘澜共,你就能妙悟真諦。


最后锥腻,當你再碰到這種事兒的時候嗦董,請記住老前輩的這句警世良言:


那些不能將你擊潰的代碼,都將成為你成長的墊腳石旷太。


如果你身邊有朋友展懈,正在接手別人代碼销睁,被逼的想要重構供璧,請將這篇文章轉發(fā)給他,普度蕓蕓眾碼農(nóng)冻记,是我義不容辭的責任睡毒。

歡迎大家來加入這個小群,大家一起學習python冗栗,掃面下方二維碼加入哦~


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末演顾,一起剝皮案震驚了整個濱河市供搀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钠至,老刑警劉巖葛虐,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異棉钧,居然都是意外死亡屿脐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門宪卿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事溃卡±煤玻” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵休溶,是天一觀的道長代赁。 經(jīng)常有香客問我,道長兽掰,這世上最難降的妖魔是什么管跺? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮禾进,結果婚禮上豁跑,老公的妹妹穿的比我還像新娘。我一直安慰自己泻云,他們只是感情好艇拍,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宠纯,像睡著了一般卸夕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婆瓜,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天快集,我揣著相機與錄音,去河邊找鬼廉白。 笑死个初,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的猴蹂。 我是一名探鬼主播院溺,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼磅轻!你這毒婦竟也來了珍逸?” 一聲冷哼從身側響起逐虚,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谆膳,沒想到半個月后叭爱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡漱病,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年涤伐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缨称。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡凝果,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睦尽,到底是詐尸還是另有隱情器净,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布当凡,位于F島的核電站山害,受9級特大地震影響,放射性物質發(fā)生泄漏沿量。R本人自食惡果不足惜浪慌,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朴则。 院中可真熱鬧权纤,春花似錦、人聲如沸乌妒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤蚊。三九已至古掏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侦啸,已是汗流浹背槽唾。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留光涂,地道東北人庞萍。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像顶捷,于是被迫代替她去往敵國和親挂绰。 傳聞我的和親對象是個殘疾皇子屎篱,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你服赎,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料葵蒂? 從這篇文章中你...
    hw1212閱讀 12,732評論 2 59
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,180評論 25 707
  • 親子日記第五十天,三提针,一麻永卓媽媽 午飯后命爬,和兒子一起看了一會書,兒子看了一本漫畫辐脖,不時被書中的故事逗的哈哈...
    a愛英閱讀 109評論 0 0
  • http://www.020.com/dele/2015/jkzc_0313/190593.html http:/...
    哈嘍3365420閱讀 330評論 0 1
  • 36周啦饲宛,從上一篇提到妊娠紋出現(xiàn),到現(xiàn)在已經(jīng)發(fā)展壯大了許多嗜价,雖然不開心艇抠,但我也慢慢適應了這種自然而然的變化。 早上...
    青年西米閱讀 506評論 3 8