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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

2500 万行的代码就问你敢不敢动?!

發(fā)布時間:2023/12/4 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2500 万行的代码就问你敢不敢动?! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

全世界只有3.14 %?的人關(guān)注了

數(shù)據(jù)與算法之美


近日,某網(wǎng)友在 Hacker News 上發(fā)起了一個 “你見過的最糟糕的代碼是什么?” 的問題,引起了廣泛關(guān)注和討論,評論數(shù)已接近600條。其中,一位 ID 為“oraguy”的程序員對 Oracle 數(shù)據(jù)庫代碼的吐槽,更是引發(fā)熱議。內(nèi)容大意如下:


Oracle 數(shù)據(jù)庫 12.2。它有近 2500 萬行 C 代碼。


這有多恐怖,簡直難以想象!你無法在不破壞成千上萬個現(xiàn)有測試的情況下更改產(chǎn)品中的單行代碼。好幾代程序員在有限的項目期限內(nèi)編寫了這些代碼,其中充斥著大量的垃圾代碼。


非常復(fù)雜的邏輯、內(nèi)存管理、上下文切換等,這些都用數(shù)千個 flag 連接起來。整個代碼充斥著神秘的宏命令,如果不拿出筆記本,并且手動去展開相關(guān)的宏命令,就無法理清楚這些命令。甚至可能需要一兩天才能真正理解某個宏命令的作用。


有時你需要理順 20 個不同 flag 的值和效果來預(yù)測代碼在不同情況下的行為方式。有時多達數(shù)百個 flag !這一點也不夸張。


這個產(chǎn)品仍然存活并且仍然可用的唯一原因是數(shù)百萬次的測試!


以下是 Oracle 數(shù)據(jù)庫開發(fā)人員的日常:


  • 開始處理一個新的 bug 。

  • 花兩周的時間試圖理解 20 個不同的 flag ,這些 flag 以神秘的方式相互交互,導(dǎo)致這個困境。

  • 再添加一個 flag 來處理新的特殊場景。添加幾行代碼來檢查此 flag ,并解決有問題的情況,規(guī)避該 bug 。

  • 將更改提交到包含大約100-200臺服務(wù)器的測試服務(wù)器集群,這些服務(wù)器將編譯代碼,構(gòu)建新的 Oracle 數(shù)據(jù)庫,并以分布式方式運行數(shù)百萬個測試。

  • 回家。第二天來上班,繼續(xù)處理別的 bug 。測試可能需要20-30個小時才能完成。

  • 再回家。再來上班,檢查你的集群測試結(jié)果。順利的話,會有大約100個失敗的測試。倒霉的話,將有大約1000個失敗的測試。隨機選擇一些測試并試圖搞清楚你的假設(shè)出了什么問題。或許還需要考慮10多個 flag 才能真正理解 bug 的本質(zhì)。

  • 再添加一些 flag 以嘗試解決問題。再次提交更改以進行測試。再等20-30個小時。

  • 來來回回重復(fù)兩周,直到你得到了將這些?flag 組合起來的“神秘咒語”。

  • 終有一天,你會成功,不再出現(xiàn)測試失敗。

  • 為你的新更改添加100多個測試,以確保下一個不幸接觸這段新代碼的開發(fā)人員永遠不會破壞你的修復(fù)。

  • 提交最后一輪測試的成果。然后提交以供審核。審查本身可能還需要2周到2個月。所以接下來繼續(xù)去處理下一個 bug 。

  • 在2周到2個月之后,一切已就緒,代碼將最終合并到主分支中。


以上就是對在 Oracle 修復(fù) bug 的程序員日常生活的描述,一點也不夸張。現(xiàn)在想象一下開發(fā)新功能會有多么恐怖。開發(fā)一個小功能需要6個月到1年的時間(如果是添加一種新的身份驗證模式,比如支持 AD 身份驗證,可能需要2年)。


這款產(chǎn)品本身就是一個奇跡!


我不再為 Oracle 工作了。永遠不會再為 Oracle 工作了!


來源:開源中國社區(qū)

原文鏈接:https://www.oschina.net/news/101928/about-oracle-database-code

版權(quán)歸原作者所有,轉(zhuǎn)載僅供學(xué)習(xí)使用,不用于任何商業(yè)用途,如有侵權(quán)請留言聯(lián)系刪除,感謝合作。


精品課程推薦:

選購數(shù)學(xué)科普正版讀物

嚴(yán)選“數(shù)學(xué)思維好物”

送給孩子的益智禮物? ?| ??辦公室神器

算法工程師成長閱讀? ?| ??居家高科技

理工科男女實用型禮物精選?


----點擊頭像關(guān)注----

超級數(shù)學(xué)建模

數(shù)據(jù)與算法之美

少年數(shù)學(xué)家

數(shù)銳學(xué)堂

驚喜醬(個人號)

玩酷屋COOL


總結(jié)

以上是生活随笔為你收集整理的2500 万行的代码就问你敢不敢动?!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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