「用一些已有的東西就可以了,重新造輪子是很傻的...」
你否曾經聽說過這句話或者類似的說法?肯定的!每個開發人員和學生都可能經常聽到這樣的論調。然而為什麼呢?為什麼重新造輪子這麼不被贊同?因為,通常情況下,已有**是管用的。它已經經過了一定的質量控制、嚴格測試,而且成功應用了。此外,投入重新創造的時間和精力的回報不太可能比使用已有的產品和**庫更值得。你應該為重造輪子而費心嗎?何故?何時?
也許你已經讀過了軟體開發模式相關的刊物,或者軟體設計的著作。不管裡面包含的資訊多麼精彩,這些書籍都可能催人入睡。看一部航海的影片與真正去航海是完全不同的,同樣,使用已有的**與你自己重頭設計軟體、測試它、弄壞它、修復它並一直改進它也是完全不同的。
重造輪子不只是編碼練習,是如何從各種已存在的內部元件中獲得豐富知識。你知道記憶體管理是如何工作的嗎?虛擬分頁法?可以自己實現這些嗎?雙向鍊錶呢?動態陣列類?odbc客戶端?你可以自己寫乙個類似某個自己熟悉又喜歡的圖形使用者介面嗎?你能不能建立自己的瀏覽器小工具?你知道何時寫乙個時分利用系統,而何時寫多執行緒系統嗎?如何在檔案資料庫和記憶體資料庫中選擇?大多數程式設計師從來沒有自己建立過這些軟體實現的核心部件,因而也沒有它們如何工作的詳細知識。結果是所有這些軟體都被看成像是能工作的神秘黑盒子。只了解水的表面不能發現下面的危險,不深入了解軟體開發底層的東西會讓你建立優秀作品的能力大大受限。
重造輪子並在其中犯錯比一開始就做對更有價值。在嘗試和犯錯的過程中取得的教訓是有情緒成分的,這是閱讀一本科技書籍無法取得的!
學習到的知識和書本中的理論是很重要的,但要成為一名偉大的程式設計師,積累經驗和學習知識同樣重要。重造輪子對於程式設計師的教育和技能就如同舉重對於健美的人來說一般重要。
原文:reinvent the wheel often
by jason p sage
kafka經常重新分組問題排查
網上看到一篇文章ckafka消費者組反覆重平衡問題解決之道給了點思路 也參見了kafka消費者平凡被踢出消費者組的問題排查 然後寫了這篇文章kafka高低版本的心跳 heartbeats 和會話 session 超時機制 以下把ckafka的思路記錄了下 ckafka 消費重平衡機制同開源kafka...
mongodb 經常掛掉
bin sh mongod startup script for mongod chkconfig 85 15 description mongodb database.processname mongod source function library etc rc.d init.d functi...
7 2 使用者管理
只有管理員完成初始化登陸,並設定完響應使用者註冊的電子郵箱之後,才能啟用桉樹的登陸介面和註冊介面。桉樹會給客戶傳送乙個接受或拒絕乙個註冊申請的電子郵件。在接受到通知的情況下,使用者將看到乙個啟用帳戶的鏈結。啟用帳戶之前,使用者必須用註冊提交的使用者名稱和密碼登入。有興趣加入雲的使用者可以訪問桉樹管理...