|
這是一個經(jīng)常被問到的問題,問的理所當(dāng)然。作為一個程序員,為什么我就非要被認(rèn)為知道如何開發(fā)Web應(yīng)用程序呢?這個問題沒有一個簡單的答案,甚至那些教育機構(gòu)都未必能清楚的知道;我上的那個大學(xué)并沒有提供任何關(guān)于這個主題的課程。所以,像大多數(shù)在這個領(lǐng)域里的web開發(fā)人員一樣,我只是通過去做,去實驗才學(xué)會了這些。沒有人告訴我如何去做,我從給自己做點什么東西開始,學(xué)會如何開發(fā)web應(yīng)用程序是在這個過程中的一個副產(chǎn)品。這是學(xué)習(xí)任何語言的一個非常有效的方法。
你很幸運,我在這里將會把如何開發(fā)一個web應(yīng)用程序的主要過程都講一下。希望能幫助你入門。
Web應(yīng)用程序與網(wǎng)站之間的區(qū)別
首先,我要說明,開發(fā)一個web應(yīng)用程序跟開發(fā)一個網(wǎng)站是不一樣的。雖然在總體上有很大相似之處,但開發(fā)它們所需要的時間有巨大的差別。那究竟web應(yīng)用程序和網(wǎng)站有什么不同呢?通常,維基百科能幫助我們解釋這個問題,讓我們來看看維基百科是如何定義 應(yīng)用軟件的:
應(yīng)用軟件,通常也被稱作應(yīng)用,指的是專門為幫助用戶去執(zhí)行一個或多個相關(guān)特定任務(wù)而設(shè)計的計算機軟件。企業(yè)軟件,會計軟件,辦公套件,繪圖軟件,媒體播放器等都屬于這種軟件。
跟應(yīng)用軟件相對照的是系統(tǒng)軟件和中間件,它們管理計算機效能,管理如何跟計算機集成,但通常這些工作并不會直接反映到使用戶受益的任務(wù)執(zhí)行上。舉個例子,一個不是很恰當(dāng)?shù)膶嶓w類比,應(yīng)用軟件跟系統(tǒng)軟件之間的關(guān)系就好比一個電燈泡和一個發(fā)電廠之間的關(guān)系,發(fā)電廠(系統(tǒng)軟件)只是產(chǎn)生電能,它自己沒有任何真正的用途,除非利用一個電燈泡這樣的應(yīng)用工具才能為用戶提供服務(wù)。
從里面,我總結(jié)出來自己對web應(yīng)用程序的定義:
一個web應(yīng)用程序是一個能夠讓用戶完成某些特定任務(wù)的網(wǎng)站。而一個普通的網(wǎng)站的主要目標(biāo)是給用戶提供信息(博客,新聞,指導(dǎo),等)。
Web應(yīng)用程序的開發(fā)過程
現(xiàn)在特征已經(jīng)弄清楚了,我們就可以開始定義開發(fā)一個web應(yīng)用程序的整個過程了。當(dāng)然,這依賴于工程的大小,過程中的某些步驟可能很小,在你的腦海里就能完成這種工作,但把事情整個的了解一下總是有好處的。同時還有一點很重要的你要明白,這篇文章并不會對每個步驟進行深層次的描述。
步驟一:分析
開發(fā)一個web應(yīng)用的第一步是分析你的需求。你此時應(yīng)該定義出一個盡量周全的你的應(yīng)用應(yīng)該提供的功能清單。如果是你為一個客戶做這些工作,你需要明白他們想要什么(要確保你們對方都知道對方在說些什么)。從你們的討論中,你能總結(jié)出需求和軟件規(guī)格。你即使是為自己開發(fā),我也建議你把希望這個web應(yīng)用能夠做的功能寫下來。
步驟二:設(shè)計
一旦你弄清楚了這個web應(yīng)用需要做哪些事情,你就可以開始設(shè)計了。這個步驟通常會反反復(fù)復(fù)進行很多次,每一次都把設(shè)計細(xì)化一些。你第一要做的是畫出頁面流程圖(畫在紙上,或使用軟件工具,憑各自所好吧。我喜歡用紙,這樣我可以做更快速的改變)。頁面流程圖通常是很抽象的黑白繪畫,畫出你將要實現(xiàn)的web應(yīng)用的樣子(你可以加一些色彩,但盡量保持簡單)。
這個步驟能夠讓你知道你的應(yīng)用最終會是個什么樣子。跟37signals倡導(dǎo)的相反,我建議使用一些詞語描述,適度細(xì)化。當(dāng)我想到一個很好的想法時,或想到事情該如何做時,我會把它標(biāo)注到紙上(例如,當(dāng)點擊這個按鈕時應(yīng)該使另外一個元素改變或隱藏,我會把這寫在流程圖上)。
當(dāng)你對做出的草圖滿意后,你可以開始制作實體模型了。
實體模型仍然是些圖案,但有色彩和細(xì)節(jié)。最終的實體模型看起來應(yīng)該像你將要實現(xiàn)的web應(yīng)用的一個截屏圖。如果你為一個客戶開發(fā),他會看看這些東西,并給你他的認(rèn)可。然而,很多人都喜歡跳過這一步(大多數(shù)都是非設(shè)計人員),他們喜歡直接奔向網(wǎng)頁原型。
原型是用HTML開發(fā)出來,使用CSS渲染(有時也是有Javascript)。頁面布局要做出來,鏈接能夠點,顏色,字體,字體大小要設(shè)定好(如果你做了實體模型,這個會很容易)。這一步非常的重要,因為這里所有的東西都能用于你最終的應(yīng)用中。如果允許的話,在你的原型上做一些可用性測試,從長期的效果來看,這能使你避免大量的失誤。
在這個步驟的最后,你基本上就知道了你的web應(yīng)用是如何組織到一起的了。登錄頁面有些什么,用戶如何從主頁轉(zhuǎn)向到各個頁面。
我建議你去聽一下Ryan Singer在“Web應(yīng)用的未來”研討會上做的他是如何設(shè)計37signals的演講。
步驟三:實現(xiàn)
選擇一個框架
現(xiàn)在我們已經(jīng)知道了要去開發(fā)什么東西,那就要把它做出來。這一部分的工作很多,你大部分的時間都要花在這個上面。你第一個要做的決定是如何著手,采用什么樣的技術(shù),什么框架。你有很多選擇的余地,你需要選出一個適合你的。下面是一個最常用的框架的列表:
沒有一個明確的標(biāo)準(zhǔn)說哪個框架最好。它們都各有不同,每個都有自己的長處。最重要的是你要知道它們?nèi)魏我粋€都能讓你開發(fā)出好用的web應(yīng)用。
開發(fā)
一旦你知道了如何去開發(fā),那就要甩開臂膀開干了。這個開發(fā)工作可以看作有很多塊,但說到底,這都是標(biāo)準(zhǔn)的編程活動了。在后臺,你要創(chuàng)建類,對象,服務(wù),過程,以及持久層來把這些對象保存到數(shù)據(jù)庫中。后臺是整個應(yīng)用的核心,對任何應(yīng)用來說,它跟普通的編程沒有什么區(qū)別。接著是前臺的開發(fā),你現(xiàn)在編寫的代碼才是真正給用戶使用的操作界面。你把后臺的程序和原型界面集成到一起,把系統(tǒng)各部分集成到一起。你還可以把你在開發(fā)過程中想到的一些很炫的小功能用JavaScript實現(xiàn)。
再說一次,有很多種途徑可以實現(xiàn)后臺程序。建議你去讀一讀跟你選擇的框架相關(guān)的資料,弄清楚如何實現(xiàn)這一部分的工作。通常,這些知識會跟面向?qū)ο缶幊?/a>有關(guān),但有些框架正在慢慢的向領(lǐng)域驅(qū)動設(shè)計發(fā)展。
步驟四:打磨拋光
現(xiàn)在應(yīng)用程序已經(jīng)開發(fā)出來,各個獨立的模塊也集成到了一起。你需要通過測試來確保你在步驟一中定義的需求和軟件規(guī)格是否被實現(xiàn)(這個問題在你開發(fā)的整個過程中都要記在腦中)。你要確保那些愚蠢的用戶不能通過試圖做一些你還沒有實現(xiàn)的操作而把你的應(yīng)用弄壞(參考 白盒 和 黑盒測試)。你同時還要確保你的程序能夠在各種瀏覽器里(希望不是IE6)都能正確的運行。
現(xiàn)在也是你做一些小的調(diào)整,改進你的應(yīng)用程序給人的感覺的時候,讓它趨于完美。
步驟五:發(fā)布和后續(xù)工作
這最后一步(但不是就此完結(jié))是發(fā)布你的應(yīng)用,讓用戶能夠真正使用它(如果這個應(yīng)用是個公眾開發(fā)的應(yīng)用,別忘了做新聞宣傳)。如果你愿意,先發(fā)布一個Beta版,這樣只有一小部分用戶能夠發(fā)現(xiàn)你的應(yīng)用里的大問題(因為你的程序里肯定會有bug),他們會幫助你改進程序的質(zhì)量。不要忙著增加功能,要專注于把你目前的程序變的穩(wěn)固。
當(dāng)經(jīng)過了beta階段,你的程序已經(jīng)變得十分的穩(wěn)固,聽取用戶反饋的意見,自己試用一下自己的應(yīng)用,你可以開始思考如何使應(yīng)用變的更好。找出不和諧的地方,消除掉。以后每次的迭代都要經(jīng)過上面所說的五個步驟,但就像我最初說的,你現(xiàn)在已經(jīng)有了一個可以運行的應(yīng)用程序,你很容易直接在心里完成這些步驟,直接奔向在代碼里測試你的功能。
恭喜,你已經(jīng)自豪的成為一個web應(yīng)用程序的作者了。
[英文出處]:How to develop web applications
it知識庫:如何開發(fā)Web應(yīng)用程序,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。