請(qǐng)記住本站域名:
黃金屋
社畜逆襲:從小米開始反卷互聯(lián) 第5章 什么叫防御,性編程啊?
然后看著控制面板.....沒有異常報(bào)錯(cuò)。
打開網(wǎng)頁(yè),輸入地址,用鼠標(biāo)功能,一切正常。
如此這般,幾個(gè)功能全部搞定。
陳默活動(dòng)了一下手指,“其實(shí)正常流程應(yīng)該先寫單元測(cè)試,再實(shí)現(xiàn)功能,不過一是時(shí)間有限,二是這點(diǎn)程度還不需要我寫單測(cè)。
這樣你這個(gè)項(xiàng)目的工作就完成了,這幾天應(yīng)該可以不用加班了。”
齊萌萌親眼看到代碼一點(diǎn)點(diǎn)豐滿起來,聚沙成塔,充滿了玄奧的規(guī)則,臉上充滿了敬畏。
這些代碼在師父的手里仿佛一個(gè)個(gè)聽話的小朋友,令行禁止,異常聽話。
原計(jì)劃她一周工作量的功能實(shí)現(xiàn),在師父的手里沒堅(jiān)持過一刻鐘。
看了看時(shí)間,13分14秒,這就是她與師父之間的鴻溝,
“剛才這些,其實(shí)有一個(gè)統(tǒng)一的名稱,叫防御性編程!”
不知道是否錯(cuò)覺,齊萌萌感覺師父說到最后莫名頓了一下。
“什么叫防御性編程啊?”
陳默坐回自己座位,沖對(duì)方勾了勾手,示意過來,
“防御性編程是一種細(xì)致、謹(jǐn)慎的編程方法。
它要求程序員在編寫代碼時(shí)預(yù)見可能出現(xiàn)的問題,并提前采取措施來避免這些問題。
這種編程習(xí)慣更加注重錯(cuò)誤的預(yù)防和控制,以減少可能出現(xiàn)的災(zāi)難性后果。
剛才的代碼示范是名門正派的用法,正所謂道高一尺魔高一丈。
接下來我所教你的乃是防御性編程的邪道用法。
其實(shí)原來是沒有這些的,隨著公司與員工之間的博弈加劇,往往后者處于絕對(duì)的劣勢(shì)。
一些前輩就想到了此招,那就通過編寫晦澀難懂的代碼,令自己手里握有一些籌碼,即便自己最后被裁,也要讓自己負(fù)責(zé)的那些代碼是不可維護(hù)的!
從而在一定程度上提升自己的‘不可取代性’,達(dá)到讓公司投鼠忌器的目的!
要不看你是我徒弟,這招我一般不輕易示人,因?yàn)橐坏┦┱梗貙⒁l(fā)嚴(yán)重的后果,如同七傷拳,傷人更傷己。
不過為師目前功力深厚,已經(jīng)可以無視這種副作用了。”
說著陳默把自己之前負(fù)責(zé)的主要功能模塊代碼找出來,陷入了沉默。
此時(shí)的他再看自己之前所寫的這些代碼,簡(jiǎn)直沒眼看,只是為了完成功能而完成功能,毫無優(yōu)雅可言,比齊萌萌那坨代碼能強(qiáng)上一些,但也有限。
過了一會(huì),陳默方才把屏幕稍微向齊萌萌那邊偏了偏。
這一次陳默全功率開動(dòng),雙手噼里啪啦快速敲擊著鍵盤,速度快的都能看到殘影,這是豐富的經(jīng)驗(yàn)和年輕的肉體融合才具備的功力。
這讓他很是滿意現(xiàn)在的狀態(tài),年輕真好,隨后就聽到齊萌萌的壓抑不住的驚嘆,
“哇,師父,你好快.....”
這可不興說.....
陳默眼角抽了一下,手中原本行云流水的敲擊聲瞬間頓了一下,速度稍微降檔....
原本的代碼被改的面目全非,當(dāng)然陳默不是跟拼積木一樣在上面不斷累加,而是怎么復(fù)雜怎么來。
循環(huán)嵌套,高級(jí)語(yǔ)法,在代碼中封裝了一層又一層“防盜門”,涉及范圍包括不限于代碼、配置文件、數(shù)據(jù)庫(kù).....
原本二十行就能實(shí)現(xiàn)功能的代碼,短短幾分鐘就極速膨脹了近千行,別看多,乍一看充滿了代碼的美感,如果仔細(xì)一讀會(huì)讓人頭皮發(fā)麻,技術(shù)越高的選手越容易陷進(jìn)去,不可自拔。
相當(dāng)于把原本一兩句話能說清的事情,水上幾十章,比如山坡上突然冒出了一伙山賊,定睛一看竟是梁山一百單八將,他們分別是“宋江、吳用、盧俊義、林沖.....”名字念完再念綽號(hào),然后背景羈絆全部整上....
讓人看上一眼就忍不住罵娘,簡(jiǎn)直不當(dāng)人子。
在寫代碼的過程中,陳默每寫下一小段,都會(huì)跟齊萌萌解釋其含義,深入淺出。
而齊萌萌看著面前的這堆代碼,在師父的鬼斧神工下,不斷拆解、崩散、融合、重組,變成了一點(diǎn)都看不懂的樣子,臉上滿是震撼。
這時(shí)一個(gè)員工從旁邊經(jīng)過。
原本已經(jīng)路過陳默工位的他耳朵微微一動(dòng),咦了一聲又折返了回來,隨后在后面津津有味地看了起來。
陳默敲代碼的速度見漲啊,都快趕上我了,難道扇老板還有這好處?
哎,這些已經(jīng)測(cè)試完畢的代碼為什么要?jiǎng)樱?p/>
這是在優(yōu)化?不,這改動(dòng)程度已經(jīng)是重構(gòu)了,現(xiàn)在重構(gòu)?都快驗(yàn)收了這不是沒事找事么?
嗯?這語(yǔ)法還能這么寫?倒是學(xué)到一招,沒白看。
不過怎么看上去像反向重構(gòu),越來越復(fù)雜了,這樣還能跑通么?奇怪.....
這哥們臉上的神情從開始的好奇慢慢變?yōu)橘M(fèi)解,隨后聽著陳默的講解,表情在疑惑和恍然之間來回切換,好像一個(gè)釘在十字路口的紅綠燈.....
半個(gè)小時(shí)后,當(dāng)陳默把自己之前的代碼核心邏輯全部重構(gòu)一遍,程序開始執(zhí)行,沒有報(bào)錯(cuò),幾分鐘整個(gè)流程點(diǎn)了一遍一次過。
“這就是所謂的防御性編程,看明白了?”
齊萌萌瞪著懵懂的大眼睛,情理之中的搖了搖頭,有看沒有懂。
陳默欣慰的點(diǎn)了點(diǎn)頭,“看不懂就對(duì)了,說不定過幾天我來看我寫的代碼都看不懂,這就是眼中有碼心中無碼的至高境界。
所以只能祝王德發(fā)好運(yùn),希望后續(xù)這幾個(gè)功能驗(yàn)收的時(shí)候不要有改動(dòng),否則.....”
“否則怎樣?”
陳默雙手作開花狀,嘴里BOOM了一聲,
“藝術(shù)就是爆炸!”
系統(tǒng)能不能驗(yàn)收通過才不是她一個(gè)實(shí)習(xí)生的關(guān)注點(diǎn),齊萌萌有一點(diǎn)比較好奇,
“師父,你剛才敲代碼,不需要思考么?一氣呵成,簡(jiǎn)直....”她一時(shí)想不出什么形容詞,最后只能豎了個(gè)大拇指。
“我一直在思考啊,最開始停了一分鐘我就在想大概代碼結(jié)構(gòu)該怎么去構(gòu)建,然后等實(shí)現(xiàn)的時(shí)候手里敲這段代碼的時(shí)候,腦海里面已經(jīng)提前預(yù)判想下一塊代碼了,跟賣油翁一樣,唯手熟爾。
這都是你往后要學(xué)的地方,說多了你也記不住,行了,今天為師灌輸給你的東西有點(diǎn)多,你先消化一下。”
陳默拿著杯子準(zhǔn)備去打水,起身發(fā)現(xiàn)不知道何時(shí)身后一步不動(dòng)杵著個(gè)人,
宛如雕像。
快捷鍵: 上一章("←"或者"P") 下一章("→"或者"N") 回車鍵:返回書頁(yè)