编程哲学动态性的思考
http://www.cyqdata.com/cnblogs/article-detail-53114
我認為,編程在滿足基本要求的基礎上,要實現所謂的“動態性”。而程序員水平的發展,從一個角度上看,也是動態性觀念的提高。
就如我最近編寫的一個框架一樣,我希望它能盡可能滿足我未來的要求,并動態的加載功能,于是我花了很多時間,研究了各個組件之間的接口和交互方法,而并不著急做實現。我想努力地達到我上面說的“第六階段”的水平,但實在太難了,因為我畢竟不是軟件科班出身,但我也會努力的。
作為一個通信界人士,討論下移動通信的動態性。導師牛老師所著的《移動通信原理》中提到,“移動通信的發展核心就是為了滿足動態性.....",第一代系統滿足了信道和用戶的動態性;二代系統(2G,如GSM,CDMA)進一步的提升了效率,通過蜂窩和時分技術提升容量;第三代系統,實現了業務類型的動態選擇特性,并加入了自適應調制和編碼,以更大的提升效率;第四代系統(LTE?)引入了網絡拓撲和網絡運行的動態性,實現扁平接口,三網融合。 而移動網絡的發展,說白了就是為了更好地滿足這四類動態性的!
最后,打一個不恰當的比方,我們宿舍沒有獨立衛生間,只有集體的。有人認為好,有人認為不好。我覺得還是公共衛生間比較爽,不會因為有人在獨立衛生間導致你沒法用廁所。對公共衛生間來說,所有位置都滿的概率是相當小的。這也就是資源的動態分配的最好體現。 移動通信也是這樣,其實資源還是那么多,我們更好地動態分配了,所以看起來,通信容量在高速的發展!
時代在進步,但不見得程序員的平均水平比以往更高,因為總是有大量像我這樣的菜鳥走進這扇門。但不可否認,現代程序的總體質量比10年前強大很多,不論是用戶體驗,還是功能,魯棒性都是如此。自然這拜于當前越來越高級的語言和設計模式。我非軟件專業,但我愿意就軟件的“動態性”做一些有必要的討論。
超級菜鳥階段:
第一階段:HELLOWORLD,非常膽戰心驚的打開VC6.0,一步一步的按照書中的操作新建工程,一個標點和空格的都不敢出錯的敲下了HELLOWORLD,編譯,運行,在那黑色的窗口上出現了那段你期待已久的字符!這個階段,你甚至不敢為程序付出一點點的動態性。
面向過程階段:
第二階段:你學會了寫函數,void task1(),void task2(),在一個switch語句中,你可以讓用戶自行選擇,哇!我實現計算器功能了!
第三階段:大量的常數讓你在修改程序時候變得狼狽,于是你學會了預編譯和常量,通過#ifdef 方法來設計自己的程序走向,當修改功能時僅僅需要改幾個參數了。自身的動態性進一步提升。
面向對象階段:
第四階段:你開始學會寫類了,總算可以實現基本的代碼重用了。但為別人編了一個小型程序,賺到了一頓飯錢。可是,這個哥們的要求變化多端,讓你不得不更改每個類的功能來符合要求,于是你思考著,如何設計每個類,才能更好地響應這種變化?哦,我聽說,讓一個類實現其盡可能少的功能,將類和類的耦合度盡可能降低!
第五階段:你的團隊耗時三個月,完成了一個公司的項目。公司將其使用了將近半年,但突然由于業務變化,要求增加新的功能,但不能改變原來的功能甚至配置。甚至,要求你的程序在不停止的情形下完成升級! 這下難倒了你。于是,你在思考,設計一些接口(interface),實現基本的框架,而需要增加新功能時,為其提供滿足這些接口的插件即可。而且你的程序可以自動識別加入的插件,在運行時添加功能!你在加入新功能時,都不需要對原來的代碼做任何的修改!你覺得,動態性真是太重要了!
第六階段:你覺得以上的方法還不過癮,添加和修改起來還是復雜。于是,你將程序框架大刀闊斧的修改和升級,通過MVC結構,比如WPF,實現界面,邏輯,算法,數據的全面分離。對整個軟件的框架,你把它們設計成了“很多橋連接的小島群”。小島可以看成數據類,可以通過抽象類,重載等方法實現,你可以隨時加入新的小島。橋可以看成方法接口,通過抽象接口和其繼承,實現隨時更換橋~當然橋必須實現必要的“接口”!
動態自適應高級階段:
第七階段:可自適應環境的代碼!你的代碼隨著火箭上天了!星際通信允許你對代碼遠程升級?太搞笑了吧。環境變化了,你的程序必須依照環境自適應的修改參數和方法,來實現對環境的適應性。當出現錯誤,它還可以自行檢查異常,回到正軌。 這需要怎樣的編程技術呢?神經網絡?但可以認定,模式識別和人工智能將在這個階段非常重要! 這讓我們想起了人,人可以適應環境,同時可以在可控的范圍內實現自恢復。
第八階段:可思考和進化的程序!你制造了一個機器人,強大無比,但它同樣配合了最先進的軟件技術,它可以通過對環境的學習,動態的學習和思考,與人交流。判斷哪些是有益的,哪些是有害的,并建立自身的行為準則。它可完全脫離你的控制,實現自我學習和升級。很酷吧?強大的動態性!終結者啊。
第九階段:能生孩子的程序(笑~)!你的代碼不僅可以進化自身,而且還可自己編寫程序,實現更多的小程序!這讓我們想起了《星艦戰將》的大臭蟲。自我繁衍,從而可以自己演化出一個大的“程序家族”出來。這是人類之幸?還是人類之不幸?不可否認,達到這種目標,人類幾乎已經不是其對手了!
無敵階段:
第十階段:有感情的程序!能思考,能生孩子,有智慧,能自我演進的程序,還是打不過人類,因為人類有“愛”(摘自終結者4)。我相信,情感才是超越一切智慧和能量的終極。技術和智慧能讓人類極度發達,但卻不一定幸福,而情感卻能做到這一點。 “有愛的程序”這是怎樣的動態性啊!
總結
以上是生活随笔為你收集整理的编程哲学动态性的思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将ABAP数据库表的定义导入到Postg
- 下一篇: DHCP协议