我的程式設計之路點滴記錄(四)

2021-06-25 16:55:05 字數 1134 閱讀 5951

【談談物件導向】

什麼是物件導向?

初學者的答案往往都是從「封裝、繼承、多型……」這些方面來解釋,稍微能多說幾句的可能會說:物件導向比面向過程好啊,它怎麼滴怎麼滴~。再多說可能就是,物件導向是面向過程出了問題之後為了更好的解決一些問題,於是有了物件導向……。通常會提到,萬物皆物件啊,有了物件我們而已更方面的操作乙個累啊,更好的去做軟體……

物件導向真的有必要嗎?答案肯定是:有!

物件導向是一種思想,一種跳出面向過程的思想。大部分人用物件導向的語言,寫著面向過程的**。因為物件導向本來就是面向過程,任何機器執行指令的時候可不管你什麼物件不對像的,都是一條一條的讀取指令。但是物件導向是一種思路或者說是思想,一種解決問題的思路。就像做一件小事情的時候我們可以把方方面面的問題都考慮到,把一件小事做的特別完美。但是一件大事就沒那麼簡單了,事必躬親早晚累死。而做小事的總要被做大事的人指揮,做大事總是比做小事高階。所以說物件導向比面向過程好,比它高階……

物件導向的精髓應該是「抓大放小」。把大方向交給物件導向去管控,具體的小事情就交給面向過程(也就是對壘出一堆的邏輯語句)來解決。下面就又出了乙個問題:什麼是大什麼是小?做判斷前一定會有前提,沒有考慮任何前提的判斷都是感情用事。在軟體開發過程中,「大小」的判斷往往要根據需求來判斷。沒有任何乙個人開發出來乙個軟體,可以做到完美,軟體工程之中沒有「銀彈」。所以,為什麼在學校的實驗室或者課堂上永遠不能明白什麼是物件導向什麼是面向過程,因為你根本沒有那個需求。縱使把某一樣東西講的天花亂墜,但是看不見摸不到只能憑空想象的東西永遠不會被人真正的接受……

工作的時候可能經常有人說,你這種方式不對!你這個以後肯定會出問題!你沒有用物件導向!你在用物件導向語言寫著面向過程的**……如果這個時候你不忙,倒是可以和他討論討論你**錯了。問問是不是這樣做會引發什麼問題,或者說是不是他以前這樣做導致了什麼不好的事情發生。如果你很忙,明天或者後天就要交專案了,不要管他了,自己該幹嘛幹嘛……

乙個程式設計師的成長,肯定是一堆bug培養出來的。為什麼會有這個bug?為什麼會有這麼多bug?為什麼現在新的需求那麼難擴充套件?當遇到了這些問題的時候,就是乙個程式設計師能力提公升的時候了。無論你是自己解決還是問google/baidu ,只要你帶著問題去找尋答案,思***。那就是成長……

開發的過程中,只有當需要的時候我們才去用物件導向思考。

所以什麼是物件導向?這是乙個根本沒有答案的問題……

我的程式設計之路點滴記錄 三

最近在看 黑客與畫家 其中第二章講述黑客和畫家的關係,感觸頗深。我們工作或者學習的時候,總喜歡去照搬一些所謂的方法或者模式。不得不承認,這些東西是前人總結的經驗,讓我們少走了 很多的彎路。在工作的時候,那些比你資深的員工會告訴你,要耐心的用筆和紙把思路寫出來,然後再一步一步的去編碼。這樣的方法,可謂...

我的程式設計之路

了吧,很感謝這家公司,很感謝當時的boss,也很感謝當時的同事,但由於自己一些個人的原因,還是選擇了離職。沒多久,到了下一家公司,做電子商務,遺憾的是,在這家公司呆了近2年時間,我都沒有收穫太多的東西,最後由於部門重組,開發部門全部離職了。唯一慶幸的是,在這家公司時,我找到了,net知識的海洋,可惜...

我的程式設計之路 一

時間過得還真快,投身軟體行業已經有8年了,從接觸計算機算起,已經超過13年。那年還是1993年,剛上高中一年級,就在第乙個學期裡,學校就開始教育計算機課了,使用的計算機是中華學習機 蘋果機和ibm pc機。那時候開機特別麻煩,一定先開顯示器,才能再開主機,否則會損壞機器,老師叮囑了n遍,關機剛好要倒...