编程的奥义
編程的意義,不在于熟練地掌握一門編程語言,不在于挑戰(zhàn)高難度的算法,而在于“應(yīng)用”。
一段程序,只有當(dāng)被用于解決實(shí)際問題時(shí),才接近編譯的本質(zhì)。
當(dāng)遇到難題時(shí),用一種程序的思想去解決問題,這就是程序員。程序員,亦是一個(gè)熟練掌握各種應(yīng)用軟件的電腦老鳥,但是在使用各類應(yīng)用軟件解決實(shí)際問題時(shí),總有個(gè)效率的問題。解決問題的效率,是評(píng)判一個(gè)應(yīng)用軟件是否成功的關(guān)鍵。
通用的應(yīng)用軟件,意在解決大部分用戶的應(yīng)用難題,所以包含了各種各樣的繁雜的功能,可供用戶使用并解決各類應(yīng)用難道,提高解決問題的效率,它好比是某個(gè)專業(yè)領(lǐng)域的專家,然而,正因?yàn)檐浖园墓δ苤炼?#xff0c;造成了在解決某些細(xì)節(jié)問題時(shí),有一個(gè)效率降低的問題。
舉個(gè)例子來說,做一個(gè)投票計(jì)數(shù)的記錄器,當(dāng)然可以用EXCEL來做,示例如下:
_____________________________________
|???????參選人甲????|??????參選人乙??????|??????參選人丙?????|
------------------------------------------------------------------
|??????0 票???????????? |??????1 票?????????????? |??????2 票????????????? |
-----------------------------------------------------------------
EXCEL這類的軟件,我統(tǒng)稱其為通用型應(yīng)用軟件,因?yàn)槠湓O(shè)計(jì)理念是解決大部件用戶的大部分應(yīng)用難題,提高大部分難題的解決效率。
但是,上面一個(gè)例子在實(shí)際應(yīng)用時(shí),就出現(xiàn)效率的問題了。當(dāng)參選人甲增加一票時(shí),你如何修改“0 票”這個(gè)數(shù)據(jù)呢?首先,要選中相應(yīng)的單元格,然后修改其中的內(nèi)容,比如輸入字符“1 票”將“0 票”這個(gè)數(shù)據(jù)覆蓋。然后,當(dāng)參選人丙增加一票時(shí),用戶要移動(dòng)光標(biāo)位置到相應(yīng)的單元,再次輸入相應(yīng)的更新后的字符數(shù)據(jù)。但是,這樣一來,操作的效率顯示比較低,用戶或者移動(dòng)鼠標(biāo)或者按鍵盤方向鍵,然后往鍵盤上打字輸入更新后的字符數(shù)據(jù);當(dāng)更改其它單元數(shù)據(jù)時(shí),重復(fù)此操作。
為了解決通用型應(yīng)用軟件在解決某方面問題時(shí)效率低下的問題,從程序員的角度出發(fā),不是想方設(shè)法弄清楚EXCEL軟件中是否有更好的更高效的處理方法,也不是墨守成規(guī)式地忽視效率問題被動(dòng)地接受EXCEL軟件在這個(gè)方面的處理短板。
為了解決通用型應(yīng)用軟件在解決某方面問題時(shí)效率低下的問題,從程序員的角度出發(fā),應(yīng)該是怎樣呢?程序員的第一個(gè)想法,應(yīng)該是——我要做一個(gè)軟件,解決這個(gè)問題,提高問題的解決效率。是的,學(xué)習(xí)的目的不就是于“學(xué)以致用”嗎?學(xué)了,懂了,就要會(huì)“用”,而且要“用”得好,“用”得對(duì)!
很多人學(xué)了多年程序,但是一直沒有多大的成績(jī)出來,糾其原因,我想大部分還是因?yàn)槠洳荒軐⑺鶎W(xué)學(xué)以致用!
用VC編寫的一個(gè)小軟件,將單元格顯示記錄數(shù)據(jù)的方式,改為按鈕方式,當(dāng)數(shù)據(jù)增加時(shí),用戶只需要點(diǎn)擊相應(yīng)的投票按鍵,省去了打字更新數(shù)據(jù)的繁瑣操作,而且采用圖形可視界面代替表格界面,使數(shù)據(jù)更直觀。附上軟件的效果圖,如下圖所示:
?
轉(zhuǎn)載于:https://www.cnblogs.com/techstone/archive/2012/08/17/2664467.html
總結(jié)
- 上一篇: CDU集训代码:输入输出训练
- 下一篇: javascript DOM(08-21