Oracle 程式設計師吐槽:永遠不會再為 Oracle 工作了 !
一位Oracle程式設計師在Hacker News上吐槽自己的工作,引起了熱議,內容如下:
Oracle資料庫12.2。它有近2500萬行C程式碼。
這實在太恐怖了,簡直難以想象!你做不到在不破壞成千上萬個現有測試的情況下更改產品中的單單一行程式碼。好幾代程式設計師在很緊的專案期限內編寫了這些程式碼,程式碼中充斥著各種各樣的垃圾內容。
非常複雜的邏輯、記憶體管理和上下文切換等等,一切都用數千個標誌(flag)連線起來。整個程式碼充斥著神秘的宏命令,要是不掏出筆記本,手動展開宏命令的相關部分,你就無法搞清楚這些宏命令。可能要花一兩天才能真正搞明白某個宏命令的作用。
有時你需要搞明白20個不同標誌的值和效果,以預測程式碼在不同的情況下會如何執行。有時多達數百個標誌!我一點也不誇張。
這個產品仍然存活並仍然可以用的唯一原因是數百萬次的測試!
下面是Oracle資料庫開發人員平常的一天:
-
開始處理一個新的bug。
-
花兩週的時間試圖搞清楚20個不同的標誌,這些標誌以神秘的方式相互互動、導致這個困境。
-
再新增一個標誌以處理新的特殊場景。再新增幾行程式碼來檢查該標誌,避開有問題的情況,並避免該bug。
-
將更改提交到含有大約100臺到200臺伺服器的測試伺服器叢集,這些伺服器將編譯程式碼,構建新的Oracle資料庫,並以分散式方式執行數百萬個測試。
-
下班回家。第二天來上班,處理別的bug。測試可能需要20小時到30小時才能完成。
-
下班回家。第二天來上班,檢查你的伺服器叢集測試結果。順利的話,會有大約100個失敗的測試。倒黴的話,會有大約1000個失敗的測試。隨機選擇一些測試,並試圖搞清楚你的假設出了什麼問題。也許另有10來個標誌要考慮,才能真正搞清楚bug的本質。
-
再新增幾個標誌,試圖解決問題。再次提交變更進行測試。再等20小時到30小時。
-
另外重複沖洗兩週,直到你確保神秘的標誌組合無誤。
-
終有一天你會成功,沒有一次測試失敗。
-
新增針對你更改的100多個測試,確保下一個不幸接觸這段新程式碼的開發人員永遠不會破壞你的修復程式。
-
為最後一輪測試提交工作。然後提交以供審查。審查本身可能另外需要2周到2個月。所以現在改而搞下一個bug。
-
2周到2個月後,一切都已完成,程式碼最終合併到主分支中。
以上就是在Oracle修復bug的程式設計師日常工作的客觀描述,一點也不誇張。現在想象一下開發新功能會有多麼恐怖。開發一項小小的功能就需要一年半載(有時甚至長達兩年!)(比如說新增一種新的身份驗證模式,比如支援AD身份驗證)。
這款產品可以用這本身簡直就是個奇蹟!
我不再為Oracle工作了。永遠不會再為Oracle工作了!
原文連結:
轉自 | 雲頭條
來自 “ 雲頭條 ”, 原文作者:雲頭條;原文連結:https://news.ycombinator.com/item?id=18442941,如有侵權,請聯絡管理員刪除。
相關文章
- 程式設計師永遠不應該相信"抽象“程式設計師抽象
- 40歲後學習程式設計:永遠不會為時已晚程式設計
- 程式設計師的這一天:也許永遠不會到來程式設計師
- 假如易立競吐槽程式設計師。。。程式設計師
- 只會寫程式碼的程式設計師永遠無法出色?程式設計師
- 為什麼有的程式設計師不會程式設計?程式設計師
- 傑出程式設計師永遠都不會說的幾句話程式設計師
- 程式設計師永遠不要再犯的5個程式設計bug程式設計師
- 阿里老程式設計師薪資被倒掛後,無奈吐槽:該找個不加班的工作了阿里程式設計師
- 作為程式設計師,這份Markdown備忘單你永遠需要程式設計師
- IT人永遠不老,老程式設計師價值何在?程式設計師
- 藍精靈之歌職場吐槽版合集【程式設計師版】程式設計師
- 為什麼RPG遊戲永遠不會過時?遊戲
- 程式設計永遠不容易程式設計
- 不會git的程式設計師,會不會被鄙視?Git程式設計師
- Java開發者不會這些永遠都只能是三流程式設計師,細數一下你是不是?Java程式設計師
- 為何程式設計師工資高?程式設計師
- 【漫畫】程式設計師永遠修不好的Bug——情人節程式設計師
- 程式設計師與軟體工程是永遠的矛盾嗎? (轉)程式設計師軟體工程
- 某阿里程式設計師女友吐槽男友整天消失不見!早上發訊息凌晨才回復!阿里程式設計師
- 一個技術大牛對程式設計師招聘的吐槽和建議程式設計師
- 為什麼新人不會程式設計程式設計
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(一)Oracle索引
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(三)Oracle索引
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(二)Oracle索引
- 吐槽程式設計問題的五張漫畫程式設計
- 不黑程式設計師會死星人程式設計師
- 程式設計師與軟體工程是永遠的矛盾嗎?(續) (轉)程式設計師軟體工程
- 為什麼你應該永遠不要再使用MongoDBMongoDB
- 從程式設計師到專案經理(25):對績效考核的吐槽程式設計師
- 面試官:物件可能會遲到,但它永遠不會缺席面試物件
- Oracle分割槽表全域性索引新增分割槽時不會失效Oracle索引
- 3D 高斯噴濺 🤗 為什麼圖形永遠不會相同3D
- 不會 A/B 測試的 Web 設計師不是好程式設計師Web程式設計師
- 程式設計師 為何你不該加班?程式設計師
- 阿里某程式設計師吐槽:每天都想著離職,但又捨不得這份薪水阿里程式設計師
- [吐槽] 光Google是不夠的Go