欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Web應(yīng)用程序開(kāi)發(fā)方法研究 - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >

Web應(yīng)用程序開(kāi)發(fā)方法研究

發(fā)表時(shí)間:2012-9-7

發(fā)布人:葵宇科技

瀏覽次數(shù):72

Web應(yīng)用程序開(kāi)發(fā)方法研究

摘要:如今已進(jìn)入了web2.0高速發(fā)展的網(wǎng)絡(luò)時(shí)代,各種基于互聯(lián)網(wǎng)的Web應(yīng)用程序如雨后春筍般出現(xiàn)。近幾年,Web開(kāi)發(fā)技術(shù)層出不窮,日趨成熟。本文介紹了Web技術(shù)的前世今生,對(duì)計(jì)算機(jī)科學(xué)前輩們?cè)杏能浖O(shè)計(jì)模式、JavaEE平臺(tái)下的流行開(kāi)發(fā)框架進(jìn)行了分析??偨Y(jié)了Web應(yīng)用程序開(kāi)發(fā)的一般步驟,提出了將軟件復(fù)用技術(shù),經(jīng)典設(shè)計(jì)模式、開(kāi)源框架合理應(yīng)用于程序開(kāi)發(fā)以達(dá)到高效開(kāi)發(fā)大型Web項(xiàng)目的思路。

關(guān)鍵詞: Web應(yīng)用程序 軟件復(fù)用 設(shè)計(jì)模式 MVC

一、Web應(yīng)用程序概述

Web應(yīng)用程序首先是“應(yīng)用程序”,它和用標(biāo)準(zhǔn)的程序語(yǔ)言,如C、C++等編寫(xiě)出來(lái)的程序沒(méi)有什么本質(zhì)上的不同。然而Web應(yīng)用程序又有自己獨(dú)特的地方,就是它是基于Web的,而不是采用傳統(tǒng)方法運(yùn)行的。換句話(huà)說(shuō),它是典型的瀏覽器/服務(wù)器架構(gòu)的產(chǎn)物??v觀歷史,Web技術(shù)經(jīng)歷了以下幾個(gè)發(fā)展階段。

客戶(hù)端技術(shù)

1、用超文本技術(shù)(HTML)實(shí)現(xiàn)信息與信息的連接。用統(tǒng)一資源定位技術(shù)(URI)實(shí)現(xiàn)全球信息的精確定位;用新的應(yīng)用層協(xié)議(HTTP)實(shí)現(xiàn)分布式的信息共享。2、JavaApplets和JavaScript語(yǔ)言隨心所欲地豐富HTML頁(yè)面的功能。

3、真正讓HTML頁(yè)面又酷又炫、動(dòng)感無(wú)限的CSS(Cascading Style Sheets)和DHTML技術(shù)。

服務(wù)器端技術(shù):

1、CGI(CommonGateway Interface)技術(shù)。CGI技術(shù)允許服務(wù)端的應(yīng)用程序根據(jù)客戶(hù)端的請(qǐng)求,動(dòng)態(tài)生成HTML頁(yè)面,使客戶(hù)端和服務(wù)端的動(dòng)態(tài)信息交換成為了可能。早期的CGI程序大多是編譯后的可執(zhí)行程序,其編程語(yǔ)言可以是C、C++、Pascal等任何通用的程序設(shè)計(jì)語(yǔ)言。后來(lái)的Perl語(yǔ)言結(jié)合了C語(yǔ)言的高效以及sh、awk等腳本語(yǔ)言的便捷,很快,Perl在CGI編程領(lǐng)域的風(fēng)頭就蓋過(guò)了它的前輩C語(yǔ)言。隨后,Python等著名的腳本語(yǔ)言也陸續(xù)加入了CGI編程語(yǔ)言的行列[9][13]。

2、專(zhuān)用于Web服務(wù)端編程的PHP(Personal Home Page Tools)語(yǔ)言。PHP語(yǔ)言將HTML代碼和PHP指令合成為完整的服務(wù)端動(dòng)態(tài)頁(yè)面,Web應(yīng)用的開(kāi)發(fā)可以用一種更加簡(jiǎn)便、快捷的方式實(shí)現(xiàn)動(dòng)態(tài)Web功能。

3、Microsoft借鑒PHP的思想,在其Web服務(wù)器IIS 3.0中引入了ASP技術(shù)。ASP使用的腳本語(yǔ)言是我們熟悉的VBScript和JavaScript。

4、Servlet技術(shù)問(wèn)世,JSP技術(shù)誕生。Servlet和JSP的組合(還可以加上JavaBean技術(shù))讓Java開(kāi)發(fā)者同時(shí)擁有了類(lèi)似CGI程序的集中處理功能和類(lèi)似PHP的HTML嵌入功能,此外,Java的運(yùn)行時(shí)編譯技術(shù)也大大提高了Servlet和JSP的執(zhí)行效率[15][16]。

兩種重要的企業(yè)開(kāi)發(fā)平臺(tái):

 Web服務(wù)端開(kāi)發(fā)技術(shù)的完善使開(kāi)發(fā)復(fù)雜的Web應(yīng)用成為了可能。兩個(gè)最重要的企業(yè)級(jí)開(kāi)發(fā)平臺(tái)——J2EE和.NET在2000年前后分別誕生于Java和Windows陣營(yíng),它們隨即就在企業(yè)級(jí)Web開(kāi)發(fā)領(lǐng)域展開(kāi)了你死我活的拼爭(zhēng)。平臺(tái)針?shù)h相對(duì)的競(jìng)爭(zhēng)關(guān)系促使了Web開(kāi)發(fā)技術(shù)以前所未有的速度提高和躍進(jìn)。J2EE是純粹基于Java的解決方案,J2EE體系及相關(guān)的軟件產(chǎn)品已經(jīng)成為了Web服務(wù)端開(kāi)發(fā)的一個(gè)強(qiáng)有力的支撐環(huán)境。和J2EE不同的是,Microsoft的.NET平臺(tái)是一個(gè)強(qiáng)調(diào)多語(yǔ)言間交互的通用運(yùn)行環(huán)境。ASP.NET超越了ASP的局限,可以使用VB.NET、C#等編譯型語(yǔ)言,支持WebForm、.NET Server Control、ADO.NET等高級(jí)特性??梢哉f(shuō).NET平臺(tái)中的ASP.NET是Web開(kāi)發(fā)技術(shù)在Windows平臺(tái)上的一個(gè)集大成者。

XML語(yǔ)言及相關(guān)技術(shù):

XML語(yǔ)言對(duì)信息的格式和表達(dá)方法做了最大程度的規(guī)范,應(yīng)用軟件可以按照統(tǒng)一的方式處理所有XML信息。這樣一來(lái),信息在整個(gè)Web世界里的共享和交換就有了技術(shù)上的保障。HTML語(yǔ)言關(guān)心的是信息的表現(xiàn)形式,而XML語(yǔ)言關(guān)心的是信息本身的格式和數(shù)據(jù)內(nèi)容。從這個(gè)意義上說(shuō),XML語(yǔ)言不但可以將客戶(hù)端的信息展現(xiàn)技術(shù)提高到一個(gè)新的層次,而且可以顯著提高服務(wù)端的信息獲取、生成、發(fā)布和共享能力。

可以預(yù)見(jiàn)的是,在未來(lái)的幾年里,還會(huì)有許多新的開(kāi)發(fā)技術(shù)或開(kāi)發(fā)平臺(tái)出現(xiàn)。從靜態(tài)技術(shù)到動(dòng)態(tài)技術(shù),從開(kāi)發(fā)平臺(tái)到應(yīng)用模型,從傳統(tǒng)Web到語(yǔ)義化Web……為了讓更多的人獲得更有價(jià)值的信息服務(wù),Web開(kāi)發(fā)者們也許還會(huì)經(jīng)歷一次又一次的技術(shù)浪潮,還會(huì)面臨更為嚴(yán)峻的技術(shù)挑戰(zhàn)。

二、基于JavaEE平臺(tái)的Web開(kāi)發(fā)技術(shù)

在基于JavaEE陣營(yíng)的web應(yīng)用開(kāi)發(fā)過(guò)程中,JSP/Servlet是主要的實(shí)現(xiàn)技術(shù)。但是JSP并沒(méi)有很好地實(shí)現(xiàn)業(yè)務(wù)邏輯與用戶(hù)界面的分離,符合MVC設(shè)計(jì)模式的Struts框架很好地解決了這一問(wèn)題。這里首先對(duì)MVC設(shè)計(jì)模式進(jìn)行概要介紹,然后對(duì)Struts、Hibernate等框架應(yīng)用的主要思想進(jìn)行詳細(xì)的描述。

1、MVC設(shè)計(jì)模式

MVC(ModeI—View—Controller),即把一個(gè)應(yīng)用按照Model,View,Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層一模型層、視圖層、

控制層,如圖1所示:


(1)視圖層

視圖(View)代表用戶(hù)交互界面,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理以及用戶(hù)的請(qǐng)求,而不包括對(duì)視圖上的業(yè)務(wù)流程的處理。

(2)模型層

模型(Model)就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)是MVC最主要的核心。(3)控制層

控制(Controller)可以從用戶(hù)接收請(qǐng)求,將模型與視圖匹配在一起.共同完成用戶(hù)的請(qǐng)求,可將其視為一個(gè)分發(fā)器.控制層并不做任何的數(shù)據(jù)處理。MVC設(shè)計(jì)模式達(dá)到了分而治之的目的,但是在具體實(shí)現(xiàn)上并不是千篇一律。比如我們熟悉的Struts框架只是其中的一種實(shí)現(xiàn)[13]。

2、流行Web開(kāi)發(fā)框架介紹

軟件系統(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉及到的知識(shí),內(nèi)容,問(wèn)題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)??蚣?#xff0c;即framework,其實(shí)就是某種應(yīng)用的半成品,把不同應(yīng)用程序中有共性的一些東西抽取出來(lái),做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。這樣每次開(kāi)發(fā)就不用白手起家,而是可以在這個(gè)基礎(chǔ)上開(kāi)始搭建。

使用框架的最大好處:減少重復(fù)開(kāi)發(fā)工作量、縮短開(kāi)發(fā)時(shí)間、降低開(kāi)發(fā)成本。同時(shí)還有其它的好處,如:使程序設(shè)計(jì)更合理、程序運(yùn)行更穩(wěn)定等?;谶@些原因,基本上現(xiàn)在在開(kāi)發(fā)中,都會(huì)選用某些合適的開(kāi)發(fā)框架,來(lái)幫助快速高效的開(kāi)發(fā)應(yīng)用系統(tǒng)。

常見(jiàn)的JAVA框架:

(1)Struts框架

Struts是一種基于Java的技術(shù)。web應(yīng)用程序開(kāi)發(fā)人員通過(guò)Struts即可充分利用面向?qū)ο笤O(shè)計(jì)、代碼重用以及“編寫(xiě)一次、到處運(yùn)行”的優(yōu)點(diǎn),它是使用Servlet和JSP技術(shù)的一種MVC實(shí)現(xiàn)。Struts本質(zhì)上是一款開(kāi)源軟件。Struts的作用是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。如果我們想混合使用Servlet和JSP的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的應(yīng)用,Struts是一個(gè)不錯(cuò)的選擇[5]。

(2)Spring框架

Spring 也表示是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性由Rod Johnson創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益[6]。

(3)Hibernate框架

Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任[5]。

(4)SSH框架

SSH為struts+spring+hibernate的一個(gè)集成框架,是目前較流行的一種Web應(yīng)用程序開(kāi)源框架。集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開(kāi)發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,利用Hibernate框架對(duì)持久層提供支持,業(yè)務(wù)層用Spring支持。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的Java對(duì)象,然后編寫(xiě)基本的DAO接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類(lèi)來(lái)實(shí)現(xiàn)Java類(lèi)與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪(fǎng)問(wèn),最后由Spring完成業(yè)務(wù)邏輯[5]。

三、Web應(yīng)用軟件復(fù)用性的探討

從上面提到的開(kāi)發(fā)框架產(chǎn)生的背景中可看出,隨著軟件規(guī)模的不斷擴(kuò)大,其復(fù)雜度將不斷提高。隨著時(shí)間的推進(jìn),技術(shù)的進(jìn)步,開(kāi)發(fā)者們從其他工業(yè)領(lǐng)域借鑒的經(jīng)驗(yàn)中認(rèn)識(shí)到只有實(shí)行軟件工業(yè)化生產(chǎn).才能滿(mǎn)足日益增長(zhǎng)的軟件需求。同時(shí)不斷提出各種技術(shù)、理論和方法來(lái)開(kāi)發(fā)軟件,希望以最小的人力、物力和財(cái)力資源來(lái)獲得更大的軟件生產(chǎn)規(guī)模以及更可靠的軟件質(zhì)量[1]

(1)基于構(gòu)件的軟件復(fù)用

在眾多的軟件復(fù)用開(kāi)發(fā)方法中,基于構(gòu)件的軟件開(kāi)發(fā)方法是一條有效實(shí)際的軟件復(fù)用途徑。所謂構(gòu)件是指系統(tǒng)中可以明確辨識(shí)的構(gòu)成成份,軟件構(gòu)件是系統(tǒng)中具有一定意義的獨(dú)立構(gòu)成成份。

構(gòu)件應(yīng)具備的基本特征:(1)復(fù)用:復(fù)用是構(gòu)件最基本的性質(zhì)。構(gòu)件的設(shè)計(jì)必須滿(mǎn)足能在新的應(yīng)用項(xiàng)目中使用;(2)封裝:是對(duì)外界隱藏構(gòu)件的設(shè)計(jì)和實(shí)現(xiàn)細(xì)節(jié),僅通過(guò)接口與外界交互,可以保證構(gòu)件功能復(fù)用的完整性和構(gòu)件開(kāi)發(fā)及交互的獨(dú)立性;(3)組裝:構(gòu)件可以通過(guò)組裝形成新的構(gòu)件或系統(tǒng),組裝是構(gòu)件復(fù)用的手段;(4)粒度:構(gòu)件是有大小的,與領(lǐng)域相關(guān)的構(gòu)件粒度大;(5)層次:構(gòu)件可以按層次進(jìn)行劃分,企業(yè)級(jí)應(yīng)用系統(tǒng)的復(fù)雜邏輯可以通過(guò)分層來(lái)解決[2]。

開(kāi)發(fā)某個(gè)應(yīng)用時(shí),在設(shè)計(jì)各個(gè)模塊、類(lèi)等時(shí)就要注入軟件重用的思想,因?yàn)樵谲浖O(shè)計(jì)分析階段的軟件復(fù)用更有通用性和重用性。這樣就能設(shè)計(jì)出重用性相對(duì)較高的復(fù)用構(gòu)件。并方便構(gòu)件庫(kù)的設(shè)計(jì).在以后進(jìn)行類(lèi)似系統(tǒng)開(kāi)發(fā)時(shí),可以根據(jù)需求從構(gòu)件庫(kù)中選取合適構(gòu)件直接加以復(fù)用,而不用重新設(shè)計(jì)開(kāi)發(fā)。在構(gòu)件庫(kù)中查找不到的情況下,按照軟件復(fù)用的思想設(shè)計(jì)新的復(fù)用構(gòu)件,并加以存儲(chǔ)[1]。

(2)基于范式抽象的軟件復(fù)用

所謂范式就是抽象的解決方案模板,它可在不同具體項(xiàng)目中使用。范式抽象就是在此基礎(chǔ)上提出的對(duì)范式的設(shè)計(jì)方法。針對(duì)不同的問(wèn)題域,就應(yīng)該有與之對(duì)應(yīng)的設(shè)計(jì)方法,這樣可以使范式的設(shè)計(jì)達(dá)到很高的重用性。針對(duì)面向?qū)ο蠓治鲭A段具體現(xiàn)狀,總結(jié)出下列范式抽象方法[4]

(1)關(guān)系抽象

針對(duì)具體的項(xiàng)目,會(huì)分析出大量的關(guān)系模型。例如在學(xué)校排課表系統(tǒng)中,需要定義教師類(lèi),它包括教師姓名、性別、職稱(chēng)等有關(guān)教師的基本信息,同時(shí),為了便于教師很快得出自己的上課表,還需要定義一個(gè)與教師對(duì)應(yīng)的教師課表類(lèi),這個(gè)類(lèi)顯示了一周中教師的課程安排情況;在網(wǎng)上購(gòu)物系統(tǒng)中,需要定義一個(gè)購(gòu)物者類(lèi),包括了購(gòu)物者的相關(guān)信息,同時(shí)為了得到購(gòu)物者所購(gòu)的物品,還需定義一個(gè)購(gòu)物車(chē)類(lèi),該類(lèi)描述了購(gòu)物者與所購(gòu)買(mǎi)的物品的對(duì)應(yīng)關(guān)系。這兩個(gè)系統(tǒng)的具體業(yè)務(wù)是不同的,但教師類(lèi)與教師課表類(lèi)、購(gòu)物者類(lèi)與購(gòu)物車(chē)類(lèi)的關(guān)系卻是基本相同的,都是一個(gè)實(shí)體對(duì)另一個(gè)實(shí)體的擁有關(guān)系,同樣,所進(jìn)行的操作也基本相同,諸如都涉及到對(duì)所擁有實(shí)體的查詢(xún)操作等。因此可將這種關(guān)系抽象出來(lái),定義為擁有關(guān)系,然后在此關(guān)系的基礎(chǔ)上定義相應(yīng)的操作。這種關(guān)系就可以以范式的形式保存起來(lái),在不同的項(xiàng)目中都可重用這種范式。同樣,還可抽象出許多其他的關(guān)系范式,如實(shí)體——內(nèi)容關(guān)系,上下級(jí)關(guān)系等。這些關(guān)系都是不依賴(lài)于具體的項(xiàng)目和業(yè)務(wù)的,可重復(fù)使用,只是在針對(duì)具體的業(yè)務(wù)時(shí),在相關(guān)屬性和方法上稍作修改就可以了[3]。

(2)相似對(duì)象抽象

在不同項(xiàng)目的OOA階段,還會(huì)分析出大量的相似對(duì)象或類(lèi),例如用戶(hù)、用戶(hù)組、角色、權(quán)限等在所有涉及到權(quán)限管理的系統(tǒng)中都會(huì)出現(xiàn)這類(lèi)對(duì)象;在一些相同領(lǐng)域的項(xiàng)目中,由于涉及的領(lǐng)域的標(biāo)準(zhǔn)化,有些對(duì)象的相似性以及相同的機(jī)率會(huì)更大。對(duì)于這些相似程度如此大的對(duì)象來(lái)說(shuō),由于其在項(xiàng)目開(kāi)發(fā)中的相對(duì)獨(dú)立性,把這些對(duì)象模型以范式的形式保存起來(lái)會(huì)使分析的結(jié)果得到更大的重用[3]。

按照上述思想進(jìn)行的范式抽象稱(chēng)為相似對(duì)象抽象,這種抽象依據(jù)的是分析階段的對(duì)象模型,這種對(duì)象模型具有獨(dú)立的、高度的相似性,抽象出來(lái)的范式可稱(chēng)為對(duì)象范式。這種范式與具體項(xiàng)目之間的相似可稱(chēng)為表面相似性。表面相似越接近,范式的重用性就越大。

四、淺談軟件設(shè)計(jì)模式

首先引出模式的概念:對(duì)于某領(lǐng)域內(nèi)的專(zhuān)家知識(shí)和成功經(jīng)驗(yàn)的文檔記錄以及總結(jié),這樣的經(jīng)驗(yàn)在特定的環(huán)境下對(duì)于某類(lèi)問(wèn)題具有廣泛的適用性,并且模式定義了一組和成功經(jīng)驗(yàn)以及問(wèn)題解法相關(guān)聯(lián)的詞匯[8]。在辯證法的角度來(lái)看:模式是廣義化的并可重復(fù)使用的人類(lèi)經(jīng)驗(yàn)總結(jié),從這一角度來(lái)看,軟件工程領(lǐng)域的軟件重用概念與模式的理論是相通的。軟件設(shè)計(jì)模式其實(shí)就是“程序員進(jìn)行面向?qū)ο蟠a重用時(shí)的一種技術(shù)手段,進(jìn)而成為程序員之間、各項(xiàng)工程之間的通訊手段”。軟件設(shè)計(jì)模式屬于在更高層次上對(duì)程序代碼、程序流程圖的抽象,是對(duì)軟件編程思路、軟件設(shè)計(jì)流程的另一種表述。隨著計(jì)算機(jī)科學(xué)技術(shù)發(fā)展,前輩們多年來(lái)的智慧結(jié)晶創(chuàng)造出了一些經(jīng)典的設(shè)計(jì)模式。如創(chuàng)建型的單件模式、工廠模式,結(jié)構(gòu)型的適配器模式、外觀模式,行為型的迭代器模式、命令模式、狀態(tài)模式、解釋器模式等。軟件設(shè)計(jì)模式在軟件的發(fā)展過(guò)程中起到了里程碑的作用,促進(jìn)了軟件質(zhì)量,提高了軟件可靠性。更為重要的是,它提高了軟件的可讀性,為軟

件設(shè)計(jì)師們進(jìn)行軟件設(shè)計(jì)理念的交流提供了平臺(tái)。同時(shí)它為軟件設(shè)計(jì)師們開(kāi)辟了一條通往其他領(lǐng)域優(yōu)秀理念的大路,相信會(huì)有更多在其他行業(yè)廣泛應(yīng)用的理念會(huì)應(yīng)用于軟件設(shè)計(jì)領(lǐng)域,從而產(chǎn)生更多的軟件設(shè)計(jì)模式。軟件設(shè)計(jì)模式的出現(xiàn)是必然的,它反映了人類(lèi)思維活動(dòng)的規(guī)律,反映了各學(xué)科之間存在著必然的聯(lián)系;軟件設(shè)計(jì)活動(dòng)同樣是人類(lèi)智慧的結(jié)晶,多種軟件模式的產(chǎn)生正是其他學(xué)科領(lǐng)域的詞匯移植的結(jié)果。但是模式畢竟只是模式,實(shí)用高效才是硬道理,具體實(shí)踐中還要視實(shí)際情況靈活變通[7][8]。

五、Web應(yīng)用程序的開(kāi)發(fā)一般過(guò)程

不管是用什么平臺(tái),什么技術(shù),開(kāi)發(fā)每個(gè)Web應(yīng)用程序都有其共同的一些工作。技術(shù)、平臺(tái)要根據(jù)客戶(hù)要求、項(xiàng)目情況而定,關(guān)鍵是開(kāi)發(fā)程序的整體思想、解決方案。筆者總結(jié)出如下通俗易懂的步驟。

步驟(1):分析

開(kāi)發(fā)一個(gè)web應(yīng)用的第一步是分析客戶(hù)的需求。此時(shí)應(yīng)該

定義出一個(gè)盡量周全的該應(yīng)用應(yīng)該提供的功能清單。開(kāi)發(fā)者需要明白客戶(hù)想要什么(和客戶(hù)溝通時(shí)要確保你們對(duì)方都知道對(duì)方在說(shuō)些什么)。從與客戶(hù)的交流討論中總結(jié)出需求和軟件規(guī)格。

步驟(2):設(shè)計(jì)

一旦弄清楚了這個(gè)Web應(yīng)用需要做哪些事情,就可以開(kāi)始設(shè)計(jì)了??梢越Y(jié)合一些經(jīng)典的設(shè)計(jì)模式,將其靈活運(yùn)用。這個(gè)步驟通常會(huì)反反復(fù)復(fù)進(jìn)行很多次,每一次都把設(shè)計(jì)細(xì)化一些。第一要做的是畫(huà)出頁(yè)面流程圖。頁(yè)面流程圖通常是很抽象的黑白繪畫(huà),畫(huà)出將要實(shí)現(xiàn)的web應(yīng)用的樣子(可以加一些色彩,但盡量保持簡(jiǎn)單)。當(dāng)你對(duì)做出的草圖滿(mǎn)意后,你可以開(kāi)始制作實(shí)體模型了。實(shí)體模型仍然是些圖案,但有色彩和細(xì)節(jié)。最終的實(shí)體模型看起來(lái)應(yīng)該像你將要實(shí)現(xiàn)的Web應(yīng)用的一個(gè)截屏圖。不要忘記及時(shí)與客戶(hù)交流溝通,他會(huì)看看這些東西,并給予他的認(rèn)可。

步驟(3):實(shí)現(xiàn)、選擇一個(gè)框架

現(xiàn)在已經(jīng)知道了要去開(kāi)發(fā)什么東西,那就要把它做出來(lái)。這一部分的工作很多,大部分的時(shí)間都要花在這個(gè)上面。第一個(gè)要做的決定是如何著手,采用什么樣的技術(shù),什么框架。這里有很多選擇的余地,開(kāi)發(fā)人員需要選出一個(gè)適合自己的。下面是一些常用的Web技術(shù)列表:

·ASP.NET

·PHP

·JSP

·Ruby> 本文在參閱大量資料的基礎(chǔ)上對(duì)Web應(yīng)用程序開(kāi)發(fā)進(jìn)行了分析總結(jié)。從Web應(yīng)用程序的發(fā)展講起,介紹了計(jì)算機(jī)前輩們的軟件設(shè)計(jì)思想、框架。隨著當(dāng)前軟件項(xiàng)目復(fù)雜度的提升,怎樣快速高效即“多、快、好、省”地開(kāi)發(fā)Web應(yīng)用程序成為人們關(guān)心的話(huà)題。筆者嘗試將軟件復(fù)用技術(shù)、設(shè)計(jì)模式、主流框架靈活運(yùn)用于實(shí)際的Web項(xiàng)目開(kāi)發(fā),以構(gòu)建高效的開(kāi)發(fā)方法。

參考文獻(xiàn):

[1] 董躍華,馬亞飛.軟件復(fù)用在綜合教務(wù)信息管理系統(tǒng)中的探索[J].江西理工大學(xué)學(xué)報(bào),2011,32(3):26-29.

[2] 江龍強(qiáng),汪海濤.基于構(gòu)件的軟件復(fù)用技術(shù)研究及在 MIS中的應(yīng)用[J].微型機(jī)與應(yīng)用,2011,30(17):16-18.

[3] 肖振南,陳紀(jì)銘.淺析軟件復(fù)用技術(shù)的應(yīng)用[J].電腦知識(shí)與技術(shù),2011,7(21):5163-5164.

[4] 熊風(fēng)光.基于構(gòu)件的軟件復(fù)用技術(shù)的研究[D].山西:中北大學(xué),2005.

[5] 百度百科. http://baike.baidu.com/view/25603.htm

[6] 維基百科. http://zh.wikipedia.org/wiki/Spring

[7] 閻宏.JAVA與模式[M].北京:電子工業(yè)出版社,2002.

[8] 王越超,姚娛.探討軟件設(shè)計(jì)模式背后的科學(xué)方法與科學(xué)哲學(xué)[J]. 廣州城市職業(yè)學(xué)院學(xué)報(bào),2010,4(1):45-49.

[9] 徐長(zhǎng)盛,戴超,謝立.一種快速開(kāi)發(fā)Web應(yīng)用程序方法的研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2004,6(7):25-29.

[10] 景曉璽,葛瑋,郝克剛. 基于JMS的企業(yè)即時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2009,26(3):167-169.

[11] 徐晶,許煒.消息中間件綜述[J].計(jì)算機(jī)工程,2005,31(16):73-76.

[12] 余童蘭,張娟,何杰[J].電腦知識(shí)與技術(shù),2010,6(25):7049-7051.

[13] 孫衛(wèi)琴.Java網(wǎng)絡(luò)編程精解[M].北京:電子工業(yè)出版社,2007.

[14] PaulJ.Deitel,Harvey M.Deitel.Java for programers[M]. 北京:電子工業(yè)出版社,2010.

[15]Eckel B.Thinking in Java[M].America:Person Education,2003.

[16]EnterpriseEngineering Software[EB/OL].http://www.intergraph.com/

相關(guān)案例查看更多