從生活瑣事看到軟體開發原理

2021-04-12 15:00:00 字數 1873 閱讀 5772

那天去了銀行,想取點錢。沒有銀子了。提款機也沒有錢了。看見櫃檯前沒有人,所以跑到了櫃檯。可是被櫃員拒絕了。保安讓我去那個抽了個號碼。我很鬱悶的說。什麼時候銀行,搞起這個來。於是明**行希望客戶乙個好的服務態度所以大家不用像以前那樣站在那裡排隊。聽見喇叭喊自己抽的號碼就去對應櫃檯去服務就好了哈。坐在座位上,看看當時正在服務的號碼,看看自己的號碼。暈。還有

n多人呢。唉。。有是痛苦的等待啊。

突然想到了觀察者模式。那天晚上記了好久的類圖,才依稀記得之間複雜的關係。我不就是那個

observer

嗎?自己拿了乙個號碼就在

subject

那裡註冊了。

subject

有了新的更新之後,就會通知所有的

observer

,observer

根據自己的需要處理事務。哈哈。。其實一切原來這麼簡單啊。於是,記下了「去銀行取款是觀察者模式」。

一天臨近中午時分,該去吃飯了。公司現在人多了,吃飯的人也就多。我第一來公司的生活,就覺得公司吃飯很好玩。好像工廠裡的流水線作業,也好像

os裡的多執行緒服務。每次站在那裡排隊的時候,公司的同事也不忘記拿著報紙看看。真讓人覺得大家都很抓緊時間。而我卻常常在這長長的隊伍中發呆。記憶裡,曾經就有一次,已經走到了最後,卻發現沒有什麼飯菜也沒有拿。呵呵。汗自己一下。還被後面兩個兄弟笑話了一下。

今天和同事一起在排隊,腦子裡還在回味著前一天晚上看到的五個建立型。並乙個乙個的默默數著,單件模式、工廠方法、抽象工廠、原型、

builder

模式。回想一下每乙個類圖的結構。突然,好像發現了新大陸一般,身後的兄弟說,在飯堂吃飯原來是

builder

模式。我們拿了菜、湯、主食、交了錢,就有了可以吃的中飯。中飯就是經過這

n步而產生的物件。而這

n步中的物件是飯堂提供的,可以在其中挑選自己需要的。然後組成自己需要的物件。而我們不需要關注飯菜是如何被製造出來的細節,只用飯堂這個介面,得到飯堂建立出來的實際物件。這個就是抽象工廠。呵呵。

心裡爽的不行,端著飯菜坐在那裡開始吃。(這次沒有忘記拿飯菜,不會被旁邊的兄弟笑話我了哈。)坐在那裡吃飯,腦子裡也不老實,回憶著剛才的

builder

模式和抽象工廠。看見隊伍越來越長了,然後有食堂的管理人員,讓後來的人轉了個彎接著剛才的排。其實,就這一點點簡單的事情,就是資料結構裡的佇列。但是佇列一般都是乙個線性結構,不會「轉彎」的。轉念一想,說它更像是

stl的

vector

,我覺得更復合事實。

vector

開始分配一定長度的空間。當空間不再夠用的時候,就再次分配原來空間的兩倍,然後把原來空間的資料

copy

過來,把新的資料寫在最後。剛來的人自然要排在後面的。唯一的區別就不用分配空間和進行

copy

動作,所以不存在時間的效率問題。呵呵。看這眼前的這隊人,就想著給他們一人乙個空間,一人乙個序號。看來去食堂吃飯所涉及的軟體相關的事情還是比較多。

軟體設計的東西,有時候很抽象,很難理解。有時候卻就在你的身邊,其實很多設計的思想,天天都能接觸到。從開始知道程式語言,到現在成為了乙個真正的程式設計師。算來算去,也就幾年的時間。可從我生下來到現在時間也有二十多年的時間了。如果我能將這二十多年的生活經驗用到軟體的設計中。會是什麼樣子?為什麼需要將生活中的思想融入到軟體開發當中呢?原因其實很簡單。是因為生活的經驗不是只是自己一天天積累起來的,其中也有從父母、長輩或者其他人那裡「繼承」過來的。這些生活上的經驗時時刻刻伴隨著我們。這些生活的原理,是經過千錘百鍊之後,指導著我們現在生活的方式。這些方式都有它的道理所在。而軟體就是將現實中複雜的運算和邏輯轉換用計算機來進行運算,來提高生產力的。

套用一句老話,我們需要將無限的生活經驗,投入到有限的程式設計經驗之中去。面對那些複雜和枯燥的資料結構、作業系統原理、設計模式,一切似乎又變得的那麼簡單。生活中到出到是那些原理,只要你留意你就能發現。

軟體開發從文件做起

說起文件,首先我從即時開發這一概念說起,現在諸多中小型公司為了縮短工期,壓縮成本省掉了軟體開發中一大部分文件工作量,包括計畫,需求,設計和測試等 很多方面的工作都由文件記載轉為了人腦去記錄,近而軟體開發中管理層從上至下的進度控制成了單一的催促和口述交流。的確,即時開發暫時地提高了公司企業的 競爭力,...

軟體開發從文件做起

說起文件,首先我從即時開發這一概念說起,現在諸多中小型公司為了縮短工期,壓縮成本省掉了軟體開發中一大部分文件工作量,包括計畫,需求,設計和測試等很多方面的工作都由文件記載轉為了人腦去記錄,近而軟體開發中管理層從上至下的進度控制成了單一的催促和口述交流。的確,即時開發暫時地提高了公司企業的競爭力,但是...

軟體開發從文件做起

說起文件,首先我從即時開發這一概念說起,現在諸多中小型公司為了縮短工期,壓縮成本省掉了軟體開發中一大部分文件工作量,包括計畫,需求,設計和測試等很多方面的工作都由文件記載轉為了人腦去記錄,近而軟體開發中管理層從上至下的進度控制成了單一的催促和口述交流。的確,即時開發暫時地提高了公司企業的競爭力,但是...