如何開發Web應用程式

這是一個經常被問到的問題,問的理所當然。作為一個程式師,為什麼我就非要被認為知道如何開發Web應用程式呢?這個問題沒有一個簡單的答案,甚至那些教育機構都未必能清楚的知道;我上的那個大學並沒有提供任何關於這個主題的課程。所以,像大多數在這個領域裡的web開發人員一樣,我只是通過去做,去實驗才學會了這些。沒有人告訴我如何去做,我從給自己做點什麼東西開始,學會如何開發web應用程式是在這個過程中的一個副產品。這是學習任何語言的一個非常有效的方法。

你很幸運,我在這裡將會把如何開發一個web應用程式的主要過程都講一下。希望能説明你入門。

Web應用程式與網站之間的區別

首先,我要說明,開發一個web應用程式跟開發一個網站是不一樣的。雖然在總體上有很大相似之處,但開發它們所需要的時間有巨大的差別。那究竟web應用程式和網站有什麼不同呢?通常,維琪百科能説明我們解釋這個問題,讓我們來看看維琪百科是如何定義 應用軟體的:

應用軟體,通常也被稱作應用,指的是專門為説明使用者去執行一個或多個相關特定任務而設計的電腦軟體。企業軟體,會計軟體,辦公套件,繪圖軟體,媒體播放機等都屬於這種軟體。

跟應用軟體相對照的是系統軟體和中介軟體,它們管理電腦效能,管理如何跟電腦集成,但通常這些工作並不會直接反映到使使用者受益的任務執行上。舉個例子,一個不是很恰當的實體類比,應用軟體跟系統軟體之間的關係就好比一個電燈泡和一個發電廠之間的關係,發電廠(系統軟體)只是產生電能,它自己沒有任何真正的用途,除非利用一個電燈泡這樣的應用工具才能為使用者提供服務。

從裡面,我總結出來自己對web應用程式的定義:

一個web應用程式是一個能夠讓使用者完成某些特定任務的網站。而一個普通的網站的主要目標是給使用者提供資訊(博客,新聞,指導,等)。

Web應用程式的開發過程

現在特徵已經弄清楚了,我們就可以開始定義開發一個web應用程式的整個過程了。當然,這依賴于工程的大小,過程中的某些步驟可能很小,在你的腦海裡就能完成這種工作,但把事情整個的瞭解一下總是有好處的。同時還有一點很重要的你要明白,這篇文章並不會對每個步驟進行深層次的描述。

步驟一:分析

開發一個web應用的第一步是分析你的需求。你此時應該定義出一個儘量周全的你的應用應該提供的功能清單。如果是你為一個客戶做這些工作,你需要明白他們想要什麼(要確保你們對方都知道對方在說些什麼)。從你們的討論中,你能總結出需求和軟體規格。你即使是為自己開發,我也建議你把希望這個web應用能夠做的功能寫下來。

步驟二:設計

一旦你弄清楚了這個web應用需要做哪些事情,你就可以開始設計了。這個步驟通常會反反復複進行很多次,每一次都把設計細化一些。你第一要做的是畫出頁面流程圖(畫在紙上,或使用軟體工具,憑各自所好吧。我喜歡用紙,這樣我可以做更快速的改變)。頁面流程圖通常是很抽象的黑白繪畫,畫出你將要實現的web應用的樣子(你可以加一些色彩,但儘量保持簡單)。

Wireframe created using Draft for the iPad

Wireframe created using Draft for the iPad

這個步驟能夠讓你知道你的應用最終會是個什麼樣子。跟37signals宣導的相反,我建議使用一些詞語描述,適度細化。當我想到一個很好的想法時,或想到事情該如何做時,我會把它標注到紙上(例如,當點擊這個按鈕時應該使另外一個元素改變或隱藏,我會把這寫在流程圖上)。

當你對做出的草圖滿意後,你可以開始製作實體模型了。
實體模型仍然是些圖案,但有色彩和細節。最終的實體模型看起來應該像你將要實現的web應用的一個截屏圖。如果你為一個客戶開發,他會看看這些東西,並給你他的認可。然而,很多人都喜歡跳過這一步(大多數都是非設計人員),他們喜歡直接奔向網頁原型

原型是用HTML開發出來,使用CSS渲染(有時也是有JAVAscript)。頁面配置要做出來,連結能夠點,顏色,字體,字體大小要設定好(如果你做了實體模型,這個會很容易)。這一步非常的重要,因為這裡所有的東西都能用於你最終的應用中。如果允許的話,在你的原型上做一些可用性測試,從長期的效果來看,這能使你避免大量的失誤。

在這個步驟的最後,你基本上就知道了你的web應用是如何組織到一起的了。登錄頁面有些什麼,使用者如何從主頁轉向到各個頁面。

我建議你去聽一下Ryan Singer在「Web應用的未來」研討會上做的他是如何設計37signals的演講

步驟三:實現

選擇一個框架

現在我們已經知道了要去開發什麼東西,那就要把它做出來。這一部分的工作很多,你大部分的時間都要花在這個上面。你第一個要做的決定是如何著手,採用什麼樣的技術,什麼框架。你有很多選擇的餘地,你需要選出一個適合你的。下面是一個最常用的框架的清單:

沒有一個明確的標準說哪個框架最好。它們都各有不同,每個都有自己的長處。最重要的是你要知道它們任何一個都能讓你開發出好用的web應用。

開發

一旦你知道了如何去開發,那就要甩開臂膀開幹了。這個開發工作可以看作有很多塊,但說到底,這都是標準的程式設計活動了。在後臺,你要創建類,物件,服務,過程,以及持久層來把這些物件保存到資料庫中。後臺是整個應用的核心,對任何應用來說,它跟普通的程式設計沒有什麼區別。接著是前臺的開發,你現在編寫的代碼才是真正給使用者使用的操作介面。你把後臺的程式和原型介面集成到一起,把系統各部分集成到一起。你還可以把你在開發過程中想到的一些很炫的小功能用JavaScript實現。

再說一次,有很多種途徑可以實現幕後程式。建議你去讀一讀跟你選擇的框架相關的資料,弄清楚如何實現這一部分的工作。通常,這些知識會跟物件導向程式設計有關,但有些框架正在慢慢的向領域驅動設計發展。

步驟四:打磨拋光

現在應用程式已經開發出來,各個獨立的模組也集成到了一起。你需要通過測試來確保你在步驟一中定義的需求和軟體規格是否被實現(這個問題在你開發的整個過程中都要記在腦中)。你要確保那些愚蠢的使用者不能通過試圖做一些你還沒有實現的操作而把你的應用弄壞(參考 白盒 和 黑箱測試)。你同時還要確保你的程式能夠在各種瀏覽器裡(希望不是IE6)都能正確的運行

現在也是你做一些小的調整,改進你的應用程式給人的感覺的時候,讓它趨於完美。

步驟五:發佈和後續工作

這最後一步(但不是就此完結)是發佈你的應用,讓使用者能夠真正使用它(如果這個應用是個公眾開發的應用,別忘了做新聞宣傳)。如果你願意,先發佈一個Beta版,這樣只有一小部分使用者能夠發現你的應用裡的大問題(因為你的程式裡肯定會有bug),他們會説明你改進程式的品質。不要忙著增加功能,要專注于把你目前的程式變的穩固。

當經過了Beta階段,你的程式已經變得十分的穩固,聽取使用者回饋的意見,自己試用一下自己的應用,你可以開始思考如何使應用變的更好。找出不和諧的地方,消除掉。以後每次的反覆運算都要經過上面所說的五個步驟,但就像我最初說的,你現在已經有了一個可以運行的應用程式,你很容易直接在心裡完成這些步驟,直接奔向在代碼裡測試你的功能。

恭喜,你已經自豪的成為一個web應用程式的作者了。

[英文出處]:How to develop web applications

[譯文來源]:外刊IT評論

特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯繫,文章轉自alibuybuy

Comments are closed.