總結壹下妳問題的核心——源代碼。
很多人在說多練習、多學習基本上都與源代碼有關。
但是,這對妳軟件開發能力沒有太實質性的提高。
首先我們要清楚,編程或者編程語言的作用時什麽?它不是為了編程而編程。我們為了實現某種軟件功能,需要通過編程來實現。而軟件是為了解決實際人無法解決或花費很大成本的工作,由軟件可以很容易解決或成本比較低。
而編程和編程語言只是實現這個軟件的壹種工具、方法。
為什麽說“看不懂才是正常的”?
現在隨便壹款具有實際功能的軟件,就需要幾百、幾千甚至幾萬個源代碼文件,而每個源代碼又有幾百、幾千甚至幾萬行源代碼。計算機源代碼不是小說,從頭看到尾就行了,源代碼內部會形成復雜的關系,函數之間互相調用、函數使用公***變量、類之間的繼承等等。在這麽復雜的系統裏,能把源代碼看懂是非常困難的。
同時通過閱讀源代碼來理解這個軟件的完整功能,這種方法效率低、收效低。
源代碼是通過某種編程語言書寫,而源代碼中必然包含與這種編程語言相關的語言特征,而這些特征往往與這款軟件的功能沒有實際上的關系。也就說,源代碼中包含了大量對我們理解軟件功能沒有用,甚至反作用的信息。就好像我們要在壹萬本書裏找壹本我們需要的書中的壹頁。想想效率多麽低。
軟件設計資源也是分層次,它是在不同的工作階段產生,例如前期有軟件需求信息,之後有軟件設計信息,而源代碼幾乎是最某端的產品。
而有時很多人要了解的是軟件設計信息,但是我們卻要通過閱讀源代碼來了解軟件設計信息,而在這個過程中閱讀者必須將源代碼中很多多余的信息給去掉,則能總結成軟件設計信息。想了解軟件需求信息也是同理。
總之很多時候我們在壹個層次上去了解另外壹個層次上的信息,這難度是非常難的。看源代碼只應該解決與這個源代碼相關的細節問題。
宏觀問題由宏觀方面解決,微觀問題由微觀方面解決。而源代碼是微觀內容,而軟件設計信息、設計意圖等屬於宏觀內容。
至於妳看不懂源代碼沒有關系。
並且寫源代碼也不是問題,寫源代碼不是為了寫而寫。只要清楚妳寫什麽,寫本身就不是難度。而軟件開發中需要寫什麽呢?就軟件開發前期階段的分析和設計。而分析和設計的結果就是軟件的解決方案,而這種解決方案就是寫源代碼的依據。
《UML2.0實戰教程(Trufun)》
《面向對象分析與設計(UML.2.0版)》
《UML與軟件建模》
不知道妳有沒有看過UML語言(統壹建模語言),它是現在面向對象設計理論方法最常見的語言。雖然它叫語言,但是它不是編程語言,它與軟件分析和設計有關的語言,是用於描述軟件解決方案的語言。
《UML2.0實戰教程(Trufun)》中就簡單的介紹了使用UML進行面向對象設計的方法。而它所形成的軟件解決方案,就可以通過某種方法轉換成編程語言。《UML與軟件建模》第十二章中有介紹。