最近在閱讀一些優秀的開源項目源碼的時候,遇到了一個問題。對于某一行代碼,我知道它是用來做什么的,但是就是不明白作者為什么要這么寫。我想了一下,覺得可能是自己對于程序設計這一塊不熟悉。所以打算從設計模式入手。我的問題是,設計模式能否滿足我的需要?還是說我現在這種水平注定是讀不懂的,等基礎知識足夠扎實以后會無師自通?注: 讀的是Android開源項目
2 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
我想了一下,覺得可能是自己對于程序設計這一塊不熟悉。
是的,你覺得沒錯。
所以打算從設計模式入手。
這是一個好主意。不過你不要期望能夠“畢其功于一役”,這很難。要真正學懂設計模式并能靈活的運用/套用在現實中,需要很多次/長期的反復學習與練習。你的基礎和天賦會有助于減少這些消耗,但有的東西僅僅是靠看書真的無法變成知識。
對于你的問題,答案是肯定的。雖然你現在的“不明白”不一定全是因為你不懂程序設計,但軟件設計的知識總是能夠幫助到你,多多少少。
注意一點,設計模式并非軟件設計的全部,只是其中的很重要的一部分。在我們編程生涯的很長一段時間里,我們都會經歷想你說的那種“這種水平注定是讀不懂的”的階段,但是這不應當成為阻攔你繼續閱讀源代碼的理由。
所謂“無師自通”是不太現實的,學習編程這件事情本身就沒有定規,它是一種綜合素質的體現。你不能指望自己一頭扎進“設計模式”的大坑,等爬出來之后“閱讀開源項目”就水到渠成了;反過來也是一樣。它們應該是相互促進的關系,有點類似于“理論與實踐相結合”。
閱讀源代碼的時候,重點不在于“我是否完全懂了”,而在于“我都讀懂了哪些?還有哪些不懂?”懂了的,實際動手的時候嘗試用進去,不懂的,學習軟件設計的相關知識去搞懂它。并且有鑒于此,閱讀源碼也不一定非要選擇大型項目,有的時候哪怕十幾行的片段都能讓人受益匪淺——不過當然,談及到“設計”的層面,當然要上到一定的規模才能有所體現。
- 2 回答
- 0 關注
- 1567 瀏覽
添加回答
舉報
0/150
提交
取消