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