標(biāo)題:
程序與軟件
[打印本頁(yè)]
作者:
liuyang
時(shí)間:
2012-3-28 01:36
標(biāo)題:
程序與軟件
程序與軟件是兩會(huì)事。軟件依靠程序代碼實(shí)現(xiàn)其業(yè)務(wù)。編程技術(shù)的基本東西不會(huì)變的,與語(yǔ)言無(wú)關(guān)。算法,類(lèi)型結(jié)構(gòu)是程序的靈與肉。算法立足于數(shù)學(xué)邏輯,類(lèi)型結(jié) 構(gòu)與平臺(tái)相關(guān),但必須要有。其它的諸如面向?qū)ο蚣夹g(shù)中的封裝,繼承,多態(tài)都只是一個(gè)時(shí)代的產(chǎn)物是軟件開(kāi)發(fā)中專(zhuān)有的,不屬于程序的屬性,就像COM等技術(shù), 最終也會(huì)過(guò)時(shí)。
編程中基本的邏輯結(jié)構(gòu)很簡(jiǎn)單,順序,循環(huán),分支。也是人基本的思考方式。
程序運(yùn)行的實(shí)質(zhì)都是存儲(chǔ)在內(nèi)存中的數(shù)據(jù)變化,因此對(duì)它們需要的是精準(zhǔn)控制,所以指針很重要,可惜的是現(xiàn)在很多語(yǔ)言避諱它,只有深入了解指針才能對(duì)程序的生死把握住。
類(lèi)型結(jié)構(gòu),如果學(xué)過(guò)單片機(jī)的,理解起來(lái)就容易多了,實(shí)際就是將一堆0,1填入到指定內(nèi)存中,讀數(shù)據(jù)時(shí)位寄存器中存儲(chǔ)指向該結(jié)構(gòu)起點(diǎn),然后CPU跑該數(shù)據(jù)大小次數(shù),每次寄存器中的值加1,這樣數(shù)據(jù)段就入棧了可以做其它的。
基于win32平臺(tái)的基本數(shù)據(jù)類(lèi)型有整型(4字節(jié)x8位)32位CPU的標(biāo)準(zhǔn)類(lèi)型,字節(jié)型(1字節(jié)x8位),字符型(2字節(jié)x8位),長(zhǎng)整型(8字節(jié)x8位),其它的都是這幾個(gè),僅叫法不同等,所以學(xué)程序,學(xué)的是數(shù)學(xué)邏輯類(lèi)型節(jié)構(gòu)
關(guān)于軟件開(kāi)發(fā)
學(xué)習(xí)軟件開(kāi)發(fā)其實(shí)是要立足于平臺(tái)的,當(dāng)然不得不提下Java,它所謂的跨平臺(tái)是生活在虛擬機(jī)的陰影下的,也就是說(shuō)把傳統(tǒng)上根據(jù)平臺(tái)的外理由虛擬機(jī)代勞了, 虛擬機(jī)的開(kāi)發(fā)者也就是傳統(tǒng)上的程序員,說(shuō)穿了Java開(kāi)發(fā)者是站在前人肩上的空中樓閣,當(dāng)操作系統(tǒng)被一家完全壟斷時(shí)它就沒(méi)價(jià)值了,只能回歸它的初衷上去。
Win32平臺(tái)下,需要理解的有消息流,句柄。Windows是消息驅(qū)動(dòng)模式,操作系統(tǒng)有一個(gè)消息隊(duì)列,每個(gè)進(jìn)程也有。每一個(gè)消息都有至少一個(gè)作用對(duì)象與 引發(fā)源。一般來(lái)說(shuō)引發(fā)源不太關(guān)心;作用對(duì)象才是重點(diǎn),它們用句柄表示,在整個(gè)系統(tǒng)運(yùn)行中它們是唯一的。這是對(duì)軟件平臺(tái),程序中關(guān)心的就是消息內(nèi)容與作用對(duì) 象,消息產(chǎn)生時(shí)作用的對(duì)象執(zhí)行相關(guān)的功能。
在一個(gè)項(xiàng)目面前,要分解,這是一種處理問(wèn)題的能力,與知識(shí)無(wú)關(guān),就好比我要看電視,我知道的就是按開(kāi)關(guān),至于別的我不清楚,軟件的使用者也是,當(dāng)他按下開(kāi) 關(guān),我們的程序就收到一條消息button,作用對(duì)象就是我的電源線(句柄),產(chǎn)生結(jié)果就是線路通電,如何通的電就是觸發(fā)的功能。所以軟件開(kāi)發(fā)對(duì)用戶是需 求的分解,哪些是用戶去引發(fā)的(引發(fā)源),哪些是引發(fā)的直接后果(消息),哪些是被迫參與的對(duì)象(句柄),哪些是我們要處理的事情(業(yè)務(wù),即程序段)。
然后是根據(jù)平臺(tái)作消息與對(duì)象的對(duì)應(yīng)的處理部分,最后就是落到實(shí)處的代碼。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1