kagula
2021-1-26
作為十幾年的程式設計師, 由於經常聽到工廠模式, 反射呼叫,依賴倒轉原則,那是什麼鬼。我想我也要與時俱進,是吧!手頭剛好有《大話設計模式》的pdf, 花了幾個小時看了下,厲害了!
第乙個感嘆就是, 原來我十多年寫程式中用到的各種方法, 被整理出了23種設計模式。 這得多少工作量, 最糟糕的是我們寫程式十幾年積累的訣竅被小清新一看《設計模式》,幾天就全學會了,砸我們老人的飯碗呢,哭死!
前段時間,參加了浙江省自學考試-離散數學的考試,題目簡單的一塌糊塗,考試通過,但是分數低的讓我心痛,像我四十多歲還在考試的人不多,表揚下自己。為什麼這裡要提離散數學呢,這是因為其中學到的知識,我在十幾年程式設計中是無法想到的,我相信自己不是天才,所以我確信以下這些定理。
1,就算沒學過設計模式,有豐富程式設計經驗的人也會使用設計模式,只是他們不清楚工廠模式、**模式等這些名詞。
2,學習數學要比學習「設計模式」重要。
現在我來補充下定理1,舉個例子,我們寫**不可避免要呼叫資料庫,第一天被領導要求,得用foxbase,過幾天要求改用ibm db2,那我**就改下唄, 但是過段時間oracle來了,崩潰,以後要是再來個mysql我不是完蛋了,自然我們會想到為不同的資料庫伺服器建立驅動,然後再加個抽象類,減少重複**,然後以後換成mysql就不用大量修改**,只增加點針對mysql的特殊**就可以了。很多數學定理是幾百年人類智慧型的結晶,比如說黎曼公式,七橋問題,不單能解決我程式設計中遇到的問題,而且不是我花幾個小時,能想到的。設計模式這類的書和數學不同,我沒看過設計模式,也能想到用哪種設計模式,但是數學的東西我做不到,所以學習數學更加重要。
3. 在某些情況下新增新**比修改現有**成本低
乙個對幾年前寫的程式還要仔細看下**,乙個看下介面,根據介面新增下**,然後再配置下就可以了,成本哪個更低,一目了然。但凡有點程式設計經驗,就算他沒學過設計模式也是在用設計模式這套思路在寫**,不然,工作就沒辦法繼續了。
4. 檢驗數學學習成果的最好辦法是考試
你看我一考就露餡了,哎!我對離散數學的掌握,遠沒有自己想象中的優秀。
先有需求,建立問題域模型,再對映到具體的平台,變成可以執行的軟體。也就是說先有問題,再有設計模式,而不是反過來。試想一下,遇到問題,然後幾十種設計模式去匹配下,那個好用就用哪個?模式匹配不需要時間?如果有比現有的模式更適合的解決辦法呢?所以我說是「歪門邪道」。
為什麼我說學《設計模式》有用呢?
對新人來說,就像學會了一元二次方程,學會了計算矩形的面積,圓形的面積,我內功不行,我就套唄,至少簡單的問題能解決。
對老人來說,增加了同新人的溝通能力,哈哈,我知道你說的意思了,這樣行!ok!
給我最大的啟發就是
為什麼二十年前會寫qq的程式設計師一大堆,就只有某人靠著qq成功了?
為什麼這麼多老鳥會設計模式, 但是為什麼只有寫出設計模式這本書的老鳥靠設計模式發財了?
我們學這學那,不就是為了成功?為了發財?
為什麼?為什麼?為什麼?
幾小時後,我把看過的有關《設計模式》的內容忘記了。。。 。。。
新人熟讀《設計模式》,能說會道,是不是真的能搶走開口什麼模式都說不清楚的老人的飯碗呢?拭目以待!
好吧,哎,嘆口氣~~~
擊敗26個碩士,本科生「歪門邪道」月薪過萬
不熟悉我的人,才會以為我是個學霸。只看黃柳優的外表,瘦瘦小小的個子,戴一副厚框眼鏡,幾顆青春痘,上課時永遠都坐在教室的第一排和教授唇槍舌劍,儼然就是一副 學霸 的模樣。乙個自稱不是學霸的it男,他究竟有什麼過人之處?破解程式,編寫遊戲外掛程式 和別的計算機專業學生一比,我學的算 歪門邪道 吧。開場白...
設計模式 有些有用的話
在學習設計模式的過程中,有些弄不懂乙個完整的模式是為什麼這麼優化的,於是就看 大話設計模式 中的中文解釋,發現了一些有用的話。1.所有的程式設計初學者都會有這樣的問題,就是碰到問題就直覺地用計算機能夠的邏輯表示和表達待解決的問題及具體的求解過程。這其實就是用計算機的方式去思考。比如計算器這個程式,要...
設計模式 設計模式的型別
解決的問題 物件建立。主要任務 為客戶程式建立物件,而不是由客戶程式直接初始化物件。這些設計模式提供了一種在建立物件的同時隱藏建立邏輯的方式,而不是使用 new 運算子直接例項化物件。解決的問題 類和物件的組合 主要任務 將不同的類和物件組合在一起,形成更大或者更複雜的結構體。這些設計模式關注類和物...