<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      開發(fā)速度和運行速度

          毛主席教導(dǎo)我們,對立統(tǒng)一是普遍的,任何事物都有兩面性,軟件開發(fā)也一樣,其中就存在著開發(fā)速度和運行速度的對立統(tǒng)一。

          有一種觀點,說計算機硬件發(fā)展很快,軟件可以做的浮腫一些,計算機硬件的快速能彌補這種問題。一些人反對這種觀點,都拿單片機上的程序來說事。

          我是贊同這種觀點的,根據(jù)我個人的軟件開發(fā)經(jīng)驗,對于大部分在普通的PC機上面的用于信息管理的應(yīng)用軟件而言,是可以依靠計算機硬件的高速度來彌補軟件的浮腫緩慢,但一定要有所控制,記住一定要有所控制。

          首先看看我們使用的是什么樣的硬件,硬件中最重要的就是CPU了,記得以前看過一本書,里面作者提到使用一個很弱的8086時代的CPU來掃描鍵盤,也就幾MHZ吧,他測試了一下,人們以最瘋狂的速度點擊鍵盤,CPU在兩次點擊間的時間中已經(jīng)把鍵盤掃描了36遍了。大家用的CPU都不錯了把,大部分已過1G赫茲吧。1G赫茲什么概念,那就是能在一秒鐘內(nèi)執(zhí)行數(shù)于億條的機器指令,一行C#代碼怎么說也不會編譯生成超過1000個機器指令吧,一秒鐘下來,幾百萬行C#代碼執(zhí)行完畢了。更何況現(xiàn)代的CPU采用什么超級流水線,預(yù)跳轉(zhuǎn)等加速手段。反正CPU很快了,內(nèi)存也快,硬盤也快,而且以后會更快。

          再來看看我們要寫的程序,在這里我們討論的程序是普通的運行在PC上面的應(yīng)用信息管理系統(tǒng)。這種程序有一個特點就是它不需要實時性,或者要求比較低,允許花費一定的時間來等待操作的處理。因為計算機的速度越來越快,但人類的反應(yīng)速度是不變的,對于100毫秒,計算機在這段時間執(zhí)行了幾千萬條指令,而人類移動鼠標(biāo)并按下按鍵時,好幾個100毫秒過去了,更何況人類操作的時候還需要進(jìn)行很緩慢的思考。因此100毫秒的意義對計算機和人是不一樣的,我們應(yīng)當(dāng)利用這個不一樣來幫助我們開發(fā)軟件。

          比如一個軟件功能運行耗時100毫秒,過去花了1月的時間開發(fā)完成。現(xiàn)在復(fù)雜了10倍,我們需要花費10月來完成。但計算機硬件速度缺快了100倍,軟件的運行耗時卻為10毫秒。對于操作員來講,100毫秒和10毫秒是沒有區(qū)別的,但對于開發(fā)人員來講,1月和10個月是存在巨大的區(qū)別的。此時若有某種手段,使得開發(fā)時間大為降低,比如2個月,但軟件速度慢了100倍,此時軟件的運行耗時不變。對于操作員這個改變是不會察覺的,但對于開發(fā)人員確是很大的利好消息。

          因此作為軟件開發(fā)人員,我們可以確定一個原則,在不嚴(yán)重降低軟件性能的情況下,我們應(yīng)當(dāng)更關(guān)注于軟件開發(fā)速度,在一定的范圍內(nèi),我們應(yīng)當(dāng)使用軟件運行速度換取軟件開發(fā)速度。

          最后來看看我們?nèi)绾伍_發(fā)程序,根據(jù)目前的水平,不論是現(xiàn)在還是相當(dāng)長時間的未來中,軟件是不能自動生成的,我們還是手工開發(fā)軟件,我們需要使用人類自然而具有的思維能力來設(shè)計程序,編寫程序,所有開發(fā)工具只是幫助我們記憶當(dāng)前的工作狀態(tài)和減少低層次開發(fā)工作。此時計算機軟件不能從根本上幫助我們開發(fā)軟件。人類的思維能力有其發(fā)展速度的極限,遠(yuǎn)遠(yuǎn)低于計算機硬件的發(fā)展速度。若開發(fā)策略沒有什么變化,則軟件復(fù)雜10倍,我們就要花10倍時間開發(fā),即使有各種輔助工具,這個時間也不會降多少。

          我們的軟件越來越復(fù)雜了,我們程序員越來越煩惱了。我們?nèi)绾伍_發(fā)不斷膨脹不斷復(fù)雜的軟件?為此我們提出了很多方法。

          首先是代碼重用。最開始我們沒有代碼重用,所有的功能都是放在一個程序中實現(xiàn),然后出現(xiàn)操作系統(tǒng)數(shù)據(jù)庫等系統(tǒng)軟件,把一些底層操作集成在操作系統(tǒng)中,提供API函數(shù)供調(diào)用,然后越來越多的軟件提供API函數(shù),然后就是COM對象,而現(xiàn)在就是JAVA包或.NET程序集。這些轉(zhuǎn)變,導(dǎo)致程序越來越慢,接口效率越來越低下,框架越來越浮腫。

          然后是計算機語言的改變。從匯編到C語言,C++, VB,然后是JAVA和C#,,那一次不是導(dǎo)致軟件的臃腫和效率的低下。

          所有的這一些,我們都好像是在退步,在墮落。于是我們干脆也就開始破壇子破摔了。

          以前寫程序,斤斤計較,不浪費一位內(nèi)存,不多一條指令,現(xiàn)在則是有些大手大腳。

          以前我們構(gòu)造精巧的數(shù)據(jù)結(jié)構(gòu),現(xiàn)在我們就閉著眼睛枚舉。

          以前我們只調(diào)用快速而直接的接口,比如中斷,API函數(shù)等,現(xiàn)在我們鼓吹緩慢低效的WebService.

          我們真的墮落了嗎,真的變懶了嗎?不是的,我們變得更忙了,更會思考了。我們知道低層次的操作大部分情況下不應(yīng)當(dāng)考慮,在這個軟件規(guī)模越來越大的時代下,我們再過多的糾纏于底層操作是不明智的,是不以時俱進(jìn)的,我們更應(yīng)當(dāng)關(guān)注于應(yīng)用,關(guān)注于業(yè)務(wù)邏輯。但底層操作卻是不得不考慮的,還好人類的集體智慧很強大,有很多框架可以幫助我們隱藏掉底層操作,比如各種COM庫,.NET框架,JAVA框架,各種ORM框架。所有的框架都讓我們的程序臃腫不堪,但我還是強烈推薦使用,因為這些框架能大大加快我們的開發(fā)速度,而且現(xiàn)在的硬件能讓臃腫的程序運行如飛。

          我們程序員很多是追求完美者,在當(dāng)前時代的大背景下還在過于追求軟件的運行效率。比如對于調(diào)用Win32API上,言必使用C++來調(diào)用,因為速度快效率高,所謂的原生態(tài)調(diào)用,不屑于其他語言來調(diào)用API。但C++開發(fā)應(yīng)用程序是比較難的,比如ASP.NET,很少有人用C++作,但用VB.NET或C#開發(fā)的ASP.NET程序調(diào)用Win32API照樣運行得歡。

          在這里就談到技術(shù)的意義了,我的觀點是技術(shù)也是對立統(tǒng)一體,在實現(xiàn)過程中應(yīng)當(dāng)像藝術(shù),追求完美,但它的最終目標(biāo)是很現(xiàn)實的,就是讓開發(fā)技術(shù)或使用技術(shù)的人省時省力。開發(fā)軟件是技術(shù)活,得考慮這兩點間的平衡。不完美或太完美的技術(shù)都不會導(dǎo)致省時省力。一般的,越完美的技術(shù)開發(fā)速度越慢,但運行速度越快,這就像拋物線,我們應(yīng)當(dāng)追求其最高點,此處我們獲得最多,這就需要開發(fā)速度和運行速度的平衡了。

          在這里我提到普通程序功能模塊中的一個特例,那就是圖形化用戶界面,對于圖形化用戶界面的程序,必須考慮運行速度,因為用戶界面是給人看的,而人眼睛的反應(yīng)速度是很快很敏感的,比大腦的思考速度和手的操作速度要快得多,因此我們必須考慮繪制用戶界面程序模塊的運行速度,它必須快,否則會造成屏幕閃爍,嚴(yán)重影響用戶體驗。

          最后說一下面對復(fù)雜技術(shù)難題的策略,在大部分情況下,解決多個簡單問題比解決單個復(fù)雜問題工作量要大,時間長,效率低,但這個過程是可以控制的,這是正道。一些數(shù)學(xué)家證明復(fù)雜命題時就是這么干的。我們當(dāng)然也可以這樣啦。

          于是對于編程中的復(fù)雜問題,我們可以優(yōu)先考慮把它拆成多個簡單的問題來解決,這有不少好處,首先是過程可以控制,對于單個的復(fù)雜問題,我們很難解決,有時得依靠靈感,開發(fā)一個應(yīng)用系統(tǒng)過多的依賴靈感是不可靠的,有很大的風(fēng)險。但對于簡單的問題我們可以根據(jù)以往的經(jīng)驗來判斷所需的時間,這使得軟件開發(fā)過程可以預(yù)估計和控制。其次是難題拆開來解決利于團體合作,一個人只能解決一個問題,若碰到難題,則項目組只能指望解決這個難題的人,但拆開來后,項目組所有的人都能參與解決這個難題,這就發(fā)揮了團體合作的優(yōu)勢了。雖然有時難題拆開來解決過程麻煩,運行效率下降,但這是值得的。

          總之開發(fā)速度和運行速度是一個天生的矛盾,需要平衡,調(diào)和。但在目前的環(huán)境下,我們應(yīng)當(dāng)更偏重于開發(fā)速度,但萬事都有個度,不能只考慮開發(fā)速度,不考慮運行速度,否則這個天平就會轟然倒塌了,這對誰都不好。

          注意,本文所說的軟件僅限于普通的信息管理類軟件,包括桌面程序和WEB程序,無實時性要求,運行在PC機上面。對于其他的比如實時系統(tǒng),嵌入式系統(tǒng),系統(tǒng)軟件等軟件,本文觀點不可靠。

      袁永福( http://www.xdesigner.cn ) 2006-11-3

      posted on 2006-11-03 11:17  袁永福 電子病歷,醫(yī)療信息化  閱讀(2713)  評論(21)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 国产精品自在拍首页视频| 中国亚州女人69内射少妇| 在线国产精品中文字幕| 精品人妻av区乱码| 亚洲码欧洲码一二三四五| 国产成人精品无码播放| 伊人久久精品久久亚洲一区| 国产精品自偷一区在线观看| 日本午夜精品一区二区三区电影| 永久免费无码av网站在线观看| 四虎永久精品免费视频| 91色老久久精品偷偷蜜臀| 极品vpswindows少妇| 成人年无码av片在线观看| 吉川爱美一区二区三区视频| 推特国产午夜福利在线观看| 亚洲色帝国综合婷婷久久| 大地资源免费视频观看| 亚洲三级香港三级久久| 另类 专区 欧美 制服| 久久99精品久久久久麻豆| 黄色大全免费看国产精品| 国产av一区二区三区久久| 精品国产色情一区二区三区| 欧美性猛交xxxx乱大交丰满| 日本三级理论久久人妻电影 | 亚欧美闷骚院| 日本一区二区三区有码视频| 日本视频一两二两三区| 一级做a爰片在线播放| 国产无套内射又大又猛又粗又爽 | 日本一区二区不卡精品| 人妻夜夜爽天天爽三区麻豆av| 乱人伦无码中文视频在线| 少妇无码一区二区三区免费| 久久精品一本到东京热| 精品中文字幕人妻一二| 中文字幕无码色综合网| 欧美丰满熟妇性xxxx| 久久精品国产99久久久古代 | 艳妇乳肉豪妇荡乳在线观看|