本文為我個人的實踐理解,可能與教科書不同,也可能與其它人的思想不同。
我儘可能以實踐準則來描述。學會它,可以讓你打敗95%的程序員,百里挑五。
一.首先,什麼是編程思想?
編程思想是一種指導思想,這個指導思想,將會誘發你如何寫代碼的行為。
如果理解這話的意思呢?打個比方,中華文明千百年在民眾心中形成了一個“統一天下”的思想,這種思想會誘發各個混亂時期的諸侯或者軍閥,以統一中國為目標,而不會像歐洲一樣以分裂中國各自獨立、各自稱帝為目標。
那麼編程思想有哪種種類呢?
1)面向過程編程。這是我國絕大部分程序員的思想。這種思想誘發了他們寫代碼的時候這樣的現象:一個方法中寫了糅雜了很多的業務邏輯,或者從ui層(點)業務邏輯層(點)數據庫訪問層這種路徑的寫法。
2)函數編程。典型的如很多人寫的javascript中的function函數。各種業務就以各種很多的function進行編寫。
3)面向對象編程。這是比較高級和抽象的思想,它具有三大特性五大原則。即封裝、繼承、多態,單一、開閉、里氏替換 、依賴倒置、接口隔離。
話外:有些人會告訴你數據結構、算法,我要跟你說的是,那不是編程思想,是編程能力,考驗你的邏輯運算能力,你越出色,那麼你應對的複雜科技領域就可以更加深入,最終你可以達到科學家的範疇。
二、編程思想的優劣和選擇。
面向過程和函數編程,是每一個剛畢業的畢業生就會的原始思想。即,只要學習了編程,那麼他一開始寫的代碼,就是這種思想,不需要教,就會的。
而面向對象編程,則是進階抽象的。本質上來說,一個程序員的進化,實際上是面向對象編程思想的培養、形成、發展、成熟的過程。
所以,你現在應該知道最優的思想是什麼,沒錯:面向對象。
三、如何建立編程思想
首先,你要時刻謹記面向對象的三大特性五大原則,那幾個字,你是很熟悉的,但你絕對不認識他裡面所蘊含的恐怖威力。即:你認得到字是一回事,理解和運用它是另一回事。
然後,你要在你的實操過程中,時刻思考你是否用上了它的特性及原則。
最後,不斷的嘗試去修正和更改你的代碼,慢慢的,你的面向對象編程思想將會開始建立。
四、如何練習、訓練和提高編程思想
1.通過學習設計模式。
剛開始的時候,你自己不太可能有對象思想,因為你還未形成對象思維,此時,你需要藉助前人的模式總結,不斷的練習,通過為模式而寫模式的訓練去提高它。
2.通過不斷的重構已編寫好的業務邏輯代碼,這需要大量的實踐,使他能夠讓你自己覺得符合三大特性五大原則。
3.評判一個代碼你寫得好不好,符不符合對象編程思想,有一個非常簡單和粗暴的標準:
你的方法體,去除註釋,如果你能夠讓你的每一個方法的邏輯,他的方法體代碼行數不高於30行,那麼你估計就是寫的有成效的。如果你能夠發現你的很多方法體,代碼行數僅僅只有10行以內個位數的代碼時,你的面向對象編程思想已經成熟。
4.將代碼思維持之以恆。
通過不斷的實踐練習,改變你原來天生的過程式編程思想,這需要一個漫長的過程,從我的實踐經驗來看,至少要3年以上的實踐訓練,所以從此意義上來說,5年以下的中國程序員99%都不會面向對象。當你不再為模式而寫模式時,你隨手寫的代碼是如此的簡潔美妙時,你已經比中國95%的程序員牛B了。
怎麼你不認可我說的95%?
好吧,你放眼看你公司,10個程序員裡,有幾個是面向對象編程?如果1個都沒有,恭喜你,你打敗了你公司100%的程序員。
閱讀更多 春風扇 的文章