源代碼VS業務的悟道——知行合一

24歲以後博文更新逐漸減少了,因爲守着“每篇文章都是思索所得”的原則,希望能對讀者有所啓發而堅持不發一篇垃圾文章。

24歲以前,一直信仰源代碼實現,覺得所有的核心技術,都在於源代碼實現(尤其是C源代碼)。

直到24歲,學習之餘,偶有所悟——技術的核心在於源代碼,而項目的核心卻並不在於具體實現,而在於業務的解決方案!

那麼,到底是源代碼實現更重要一些呢?還是業務解決方案更重要一些呢?

我不能給出大家一個標準答案。我相信,任何有點深度的人也不會主動給出一個答案。

這個問題的核心其實就是理論和實踐哪個更重要一些?

幾千年來爭論不休。不過,在明朝有一位偉大的哲學家王守仁給出了一個較爲完美的答案——知行合一。

也就是說,理論很重要,實踐也很重要,兩個東西缺一不可。

好的,那我們簡單說下業務的解決方案的重要性。

當我們面對一個典型的互聯網web項目,我們首先會考慮什麼呢?

如果項目細節要求不高(併發量1000以下),首先考慮的是怎麼以最低的成本完成項目——LAMP的組合。我們會考慮到web項目的功能,頁面佈局。等功能、頁面佈局設置好了,就可以設計數據庫表(mysql)。一旦mysql的表設計好了,就可以動手畫web前臺頁面和寫效果,web頁面調試好了就可以寫PHP的邏輯代碼把系統貫通起來。

問:在做這個項目的時候,我們會去思考mysql的源代碼怎麼實現的嗎?

答:不會。我相信大部分同學都不會考慮這個問題。因爲這個項目基本上只要能搞出來就行了,至於搞得好不好,或許根本沒人在意。

問:如果系統的訪問量大了10倍,你會怎麼處理呢?

答:SQL優化、主從複製提升讀能力。我相信大部分同學會考慮做SQL優化、主從複製。

問:那麼,我接着提問了。如果系統的訪問量大了100倍呢?

問:當你發現SQL本來就很簡單,改加的索引都加了,執行計劃完美,該做的複製也做了,但是master就是壓力非常大,大到做分裂都還是頂不住,你會怎麼想呢?

答:用NoSQL軟件就行了。

問:如何選擇合適的NoSQL軟件呢?作爲項目負責人,你怎麼知道你選擇的NoSQL軟件適合用來解決你所面臨的業務問題呢?如果選擇不合適,後期需要把數據遷移到別的合適的nosql數據庫上去,相應的成本和風險,誰來承擔?

答:用業界最廣泛的解決方案和諮詢類似業務的朋友就行了,何必那麼認真。

我說:如果你想混吃混喝、不承擔項目的責任,那麼,這種方法是可行的;如果你想承擔項目的責任,這種做法肯定是要悲劇的;如果自己都搞不清楚,別人就更高不清楚,出了問題,你肯定會被拉出來背黑鍋。

問:如何才能做到爲合適的業務選擇合適的nosql呢?

答:只有對核心技術把握到一定程度(數據結構、算法、操作系統、server軟件源代碼實現),選擇nosql才能做到胸有成竹,當一種全新的nosql出來的時候才能做出優劣評判;反之,永遠只能成爲一個follower,而不能成爲引領者。

問:很多人都說只要能解決問題就行了,不必深入學習。

答:這種人一般有兩個特點:A,沒有深入學習的能力,所以覺得不必深入學習。B,沒有深入學習的能力,出了問題只能百度或者跪求答案,所以,覺得不必深入學習。

問:解決問題真的需要掌握源代碼嗎?

答:解決問題不必要掌握源代碼,但是,如果學習停留在表面,那麼,一旦有了技術革新,就會被行業淘汰被問題解決。

問:源代碼學習的目標是什麼呢?

答:如果不是立志成爲一個數據庫或者操作系統內核研發者,那麼,只要能從源代碼層面判斷出作者的設計理念和核心產品的特性就足夠了。這是一種思維、愛好、興趣,而不是工作的指標。

問:學習Oracle的internal是在研究核心技術嗎?

答:如果是Oracle內核研發者,有參與研發內核源代碼的權利,那麼研究Oracle internal是核心技術;如果是市面上的普通dba或者用戶研究Oracle internal就不是研究核心技術了。

問:那麼,爲什麼那麼多人要研究Oracle internal呢?

答:因爲他們被某些人造牛忽悠了,覺得研究Oracle internal很牛,大部分人都想牛,所以都去研究Oracle internal。

問:爲什麼你覺得市面上普通dba研究Oracle internal不是研究核心技術呢?

答:市面上研究Oracle internal的技術無非來源於流傳出來的DSI、White paper,自己dump等等,認爲這些就是internal,其實這些都是帶了安全套的的internal,寫文檔的人一般都不是源代碼作者,源代碼都有bug何況一些文檔編寫者,靠文檔來找自信是緣木求魚。真的想玩數據庫的internal,postgersql、mysql等都是開源了的,大可以滿足自己的研究慾望。退一萬步講,連開源的mysql和postgresql都沒研究懂,去妄自猜測不開源的Oracle,不是自慰嗎?

發佈了171 篇原創文章 · 獲贊 9 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章