天天看點

[原創]面向生命(Life oriented 簡稱 LO)程式設計

序言:

軟體是個生命體!

萬事萬物皆變化!

為什麼我會提出"面向生命(Lifeoriented)"程式設計的思想,因為我們一直以來以建築學的角度來審視軟體工程,将軟體定義為一種無生命的産品,而事實是外界的需求的無時無刻都在變化要求我們做出來的軟體也随之變化,你難道想讓一所蓋好的房子會每時每刻根據外界的環境變化嗎?而有生命的植物和動物則可以,會依據環境的變化而變化,一株草會根據壓在上方的石頭而改變自身的生長形态而曲折生長,軟體應該也會為适應變化而調整自身的結構和功能來避免被變化的環境所淘汰!沒錯這是個适者生存的世界,軟體也一樣。

還有一個原因就是軟體和人一樣是有生、老、病、死的,誕生的時候具有面向對象思想中人類的基本屬性和行為,但是還很弱,就像嬰兒一樣,但是面向對象的思想将世界萬物都抽象成類,類的執行個體建立了對象,但是根本沒有發現一類的對象之間是存在差異的,難道你看到過世界上長的完全一模一樣的人嗎?沒有,因為每個人都是鮮活的生命體,盡管具有人類的共同屬性和行為,但是每個人都有自己的性格、學習能力、、、、、、、,同時每個人的成長曆程是根據環境的不同而不同,也就是适應變化,剛生下來的嬰兒是最原始的對象,然後通過人類具有的基本行為嗅覺、聽覺、視覺、味覺、觸覺、學習能力來獲得資訊不斷完善對世界的認識,進而形成不同的性格,也逐漸成長起來從需要外界服務,到能夠對外界提供服務,而每個人接受的知識和自己的能力決定了最終他能夠為外界提供哪種服務,随着時間周期和自身的消耗慢慢老化,直至死亡,軟體也是如此,開始我們隻是依據目前的靜止的需求将其建立出來,可我們錯就錯在用一種靜止的眼光去看待軟體,其實它是在我們的不斷提供資訊的過程中,不斷成長,同時從我們提供的資訊中它在學習強化了自身的功能,并能夠提供給我們更多功能,也就是目前各大網站提供的對外接口服務,其實yahoo或google開始這些網站系統是沒有能力提供這些服務的,為什麼是因為它們沒有足夠支援這些服務的資訊,就好比它們開始隻是嬰兒還需要我們提供資訊給它,讓它成長一樣,當它在我們不斷的資訊營養下成長成為一個巨人的時候,它們反過來能夠為我們做更多以往我們都沒有想過能做的事,這就是一個軟體生命體,而不是我們傳統意義上的建築,建築的功能是有限的而生命體的功能是無限的,是以你硬要将一個不變的軟體去适應不斷變化的環境那是種錯誤!是以,我們需要一種全新的思想去指導我們去設計軟體那就是“面向生命”!

第一章:什麼是面向生命程式設計

面向生命程式設計是以面向對象為基礎,将對象賦予生命特質的一種程式設計思想。

繼續閱讀