舟山網(wǎng)站建設(shè)一條龍全包(毫不留情怎么寫)毫不留情的散場下一句,
原標(biāo)題:毫不留情!大佬再開“懟”:干凈代碼多余!“如今流行的許多關(guān)于干凈代碼的‘最佳實踐’是引發(fā)程序性能災(zāi)難的直接原因”這是西雅圖資深游戲開發(fā)專家凱西·穆拉托里在其個人網(wǎng)站所發(fā)表文章中的一段言論,而他的這個觀點在過去一個多月中引發(fā)了各大開發(fā)者社區(qū)的激烈爭論。
部分人贊同了穆拉托里的理念,也有部分人站了出來為干凈代碼發(fā)聲,這其中便包括《代碼整潔之道》一書的作者——世界級編程大師Bob大叔(Robert C. Martin)在二者于Twitter上進行了一場難分勝負的辯論后,還嫌不過癮的穆拉托里近期又通過New Stack的采訪再次針對干凈代碼的性能缺陷進行了無情輸出。
1、一篇文章引發(fā)的海嘯說起這場曠日持久的“戰(zhàn)爭”,就不得不提到穆拉托里上個月所發(fā)表的一篇名為《“干凈”的代碼,糟糕的性能》的文章了文中,穆拉托里通過近10項代碼測試驗證了干凈代碼與程序性能間的沖突,并提出了“干凈”編程規(guī)則根本不靠譜的觀點。
在文章發(fā)布后不久,各大技術(shù)社區(qū)中的開發(fā)者便快速自發(fā)的分成了兩大派系,支持者認為過分關(guān)注代碼的“干凈”將使程序損失大量性能,這有悖于程序開發(fā)的初衷,而反對者則認為干凈代碼更易于維護和改進,一點點的性能損耗對如今的絕大部分程序來說都無傷大雅。
就在兩邊勢力爭論不下之際,雙方各自的老大穆拉托里與Bob大叔決定通過一場辯論決一勝負然而即便兩人在Twitter上從編程語言聊到開發(fā)工具,又從開發(fā)工具聊到程序需求,最后直到硬件性能為止但在經(jīng)歷了5輪對峙后,各執(zhí)一詞的穆拉托里與Bob大叔最終都沒能成功說服對方。
2、穆拉托里的最新回應(yīng)然而正當(dāng)人們以為兩位大佬不分勝負的battle將為這場對峙暫時畫上一個不完美的句號時,穆拉托里卻再次現(xiàn)身接受了New Stack的采訪,并總結(jié)了自己所發(fā)現(xiàn)的“干凈代碼”的缺陷。
穆拉托里表示,對于干凈的代碼而言,開發(fā)者經(jīng)常被要求避免列出代碼中可能出現(xiàn)的分支,例如C語言中的switch語句但我曾親自做過測試,利用干凈代碼所倡導(dǎo)的方式和switch語句創(chuàng)建不同的圖形面積計算函數(shù),結(jié)果是switch語句函數(shù)的性能要比干凈代碼版提高了1.44倍。
當(dāng)你把問題弄得越復(fù)雜時,這些想法會對你程序產(chǎn)生的傷害就越大有時,放棄干凈代碼不僅會讓你的程序變得更快,也能讓它們的語義變得更好理解總有人說使用數(shù)百萬個包含小函數(shù)的類會使程序變得更易讀、更靈活,但在實踐中情況并不一定如此,它只會給CPU帶來更大壓力。
或許有人認為代碼的合理性只能通過對代碼的高度優(yōu)化來實現(xiàn),但這其實并不是一個正確的觀點,只要你所寫的代碼具有合理性,那么無論他們是否被干凈原則所修改過,它都是易讀和靈活的顯然一些技術(shù)基礎(chǔ)較差的開發(fā)者沒有寫出或是接觸過這樣的代碼。
除此之外,穆拉托里還提到了非常關(guān)鍵的一點,他認為很多干凈代碼的倡導(dǎo)者并沒有真正理解CPU的工作模式“這并不僅僅是一個學(xué)術(shù)問題,如果你的代碼運行在云服務(wù)器上,那么你每月所收到的賬單與程序性能是成正比的如此以來你的軟件越慢,你需要購買的服務(wù)就會越貴。
”3、干凈與性能,你會如何選擇顯然,穆拉托里的這番話再次一石激起千層浪,采訪文章發(fā)布后不久便收到了超過900條評論。
游戲開發(fā)者Daniel Kvick表示穆拉托里對于CPU的觀點太過古老頑固而游戲開發(fā)商Jonathan Dickinson則反駁了他的這一觀點“如果給你一個10年前的代碼庫,你就不會再這么說了”軟件工程師Joshua Rumbut則表示了對穆拉托里的贊同,“很多時候?qū)τ陂_發(fā)者來說嚴(yán)格的干凈代碼約束的確很令人厭煩,尤其是在涉及到程序性能的部分,取消這些約束是一個非常明智的選擇,并且我也沒見過哪些按照干凈代碼原則的代碼庫更易于維護和開發(fā)。
”對于網(wǎng)絡(luò)上的留言,穆拉托里也在后續(xù)的回訪中向記者表述了自己的觀點,“一些回應(yīng)令人感到擔(dān)憂,許多反對意見似乎是基于對事實判斷的錯誤但總的來說,我收到了令人感到驚訝的大量不喜歡干凈代碼并希望為此做點什么的人的鼓勵,這對未來的軟件發(fā)展而言興許是個好兆頭。
”歸根結(jié)底,雖然穆拉托里對于干凈代碼的抨擊顯得有些偏激,但這也不得不讓我們開始思考干凈代碼與程序性能間的關(guān)系理想與現(xiàn)實總會存在一定差距,那么當(dāng)更整潔的代碼與更高的性能無法兼得時,你又會如何作出選擇呢?返回搜狐,查看更多
責(zé)任編輯: