在當今的開發環境之下,快即是好。
當今諸如 “快速應用開發 ”,“敏捷軟件開發 ” 以及 “非同步 JavaScript 和 XML “(如今我們甚至無法耐心地等待網頁的重新載入) 等流行詞彙和術語讓您見識到究竟身處於怎樣一個快節奏的世界當中。
但是做事趕時間並不意味着您工作要加班加點——您工作時需要動些腦筋。此文,將為您提供縮短網頁應用開發的十大省時技巧。
一、使用框架
框架提取出了常規代碼,給您編寫網頁應用提供了一個基本的構造和基礎。
框架中一個非常典型的例子就是 Rails,Rails 就是 Ruby 程序語言的一個網頁應用開發框架。通過為您提供預先編寫好的代碼程序包 (舉個例子,像多用户輸入驗證方式)——您不僅僅節省了用 Ruby 編寫您自己代碼的時間——您也很清楚這些程序包已經受住了其他開發人員的測試以及檢驗,這可以在廣度測試時為您減少不少麻煩,另外還可以避免一些因缺少測試而導致潛在的漏洞。
同樣的好處對於使用諸如 MooTools 的 JavaScript 框架也是適用的。這些框架提供給您的一些類方法都是由核心開發者和社羣提供,並在諸多瀏覽器下經受廣泛測試的考驗。客户端指令碼語言框架還有 jQuery,Prototype JS,以及 YUI 。如果您想用一些非主流的 JS 框架,您可以看看這個極具潛力的 JavaScript 框架 清單。
對於服務器端的框架,您可以考慮 CakePHP ,CodeIgniter ,Zend ,或者 symphony 。如果您喜歡 VB 以及 C#之類微軟支持的語言,您可以考慮.Net 框架 。
您甚至是可以使用像 960Grid 或者 BluePrint 這樣的 CSS 框架來快速編寫和規範您自己風格的頁面結構。
二、使用整合開發環境
當然,您可以只用一個 Notepad 這樣的文字編輯器和 FTP 就可建立網頁應用及其頁面。但是我想大多數人都認為,這並不是一個可用在開發複雜和健壯網站專案之上的明智方法。
整合開發環境 (IDE),為您準備了建立和管理大型網站專案所需要的工具集合。整合開發環境的功能一直在變,但它們都有如下一些常見的功能
專案管理以及團隊協作功能。
除錯以及診斷功能。
語法提示以及自動完成功能 (IDE 會猜測您想寫的語法)
語法高亮
內建 FTP,能同步本地和遠端主機上的檔案
“IDE” 這個詞可能有些花哨,有些人還對此不太熟悉,但是大資料人應該聽説過 Adobe 的 Dreamweaver 。 Dreameweaver 就可以看成是一個整合開發環境。因為它含有上面提到的一些功能,幫您更快的編寫代碼。 (他通常適用於前端的製作。但是它也支持服務器端的語言,像 PHP 和 ASP.NET)
如今網上有大量的 IDE,您所要做的就是為您自己 (或者您的團隊) 挑選一個。像一些流行的,功能齊全的 IDE,如 Eclipse, Komodo IDE, NetBeans, Visual Studio, 以及 Aptana Studio.
如果,您看到這裏後,依然決心要使用一個文字編輯器,您至少應該看看為代碼工作者準備的文字編輯器集錦 這篇文章。
三、適當的模組化
模組化是建立易於維護和擴充套件複雜應用的關鍵之所在。本質上這意味着代碼要以小的部件來編寫,而不是將所有代碼寫成一個大檔案。
模組化開頭有其自身的時間成本 (因為您必須在設計檔案結構方面花費不少心思。) 但是,當您需要變更某一部件或者想要擴充套件您的應用時,這會為您節省掉不少時間。
模組化也使得 bug 限制在模組之內,如果有地方發生問題,您會很快的找到問題所在。
但是模組化的濫用會導致代碼的臃腫和太多不必要的 include 語句,這會極大的拖慢整個應用的執行速度。因此在模組化程度過高和過低之間,我們需要到一個好的平衡點。
一些模組化設計模式就包含 MVC 和 PAC 模式。
四、使用瀏覽器工具高效排除前端疑難問題
沒有處理比跨瀏覽器的相容和解析問題更糟糕的事情了。這杆子事會使您瘋掉,它給您帶來的挫敗感差不多讓您覺得不砸掉點東西難解心頭之恨。但是整合進瀏覽器的除錯工具會使得尋找和診斷前端問題變得分為迅速和高效。
Firebug 和 Web Developer 是絕對必要的省時利器,它們已經成了前端網頁開發者的必備工具。 Firbug 可以輕鬆的檢視 DOM,以瞭解其原理,以及可以在執行中調整 CSS/HTML/JS, 除此之外,也可以幫您除錯和註釋 (profile) 您的 JavaScrpt 代碼,幫您弄起初究竟是什麼狀況導致了您的指令碼執行中斷。 Web Developer 給您提供了一系列有用的工具,像有的工具可以讓您點選一個頁面元素就可以看到有哪些樣式宣告影響了該元素,也可以使您很方便的禁用 JavaScript 和 CSS,讓您瞭解在沒有 JavaScript 或者 CSS 的情況下, 您的頁面是如何工作的。
如果您需要在 IE 瀏覽器下除錯,您可以嘗試嘗試 IE 開發者工具條 。它在功能上跟 Firebug 和 Web Developer 很相似。如果您想找更多的整合在瀏覽器內的 IE 除錯工具來幫您 i 節省除錯時間,您可以點選這個連結。
五、代碼重用
如果您發現您自己老是在做重複的事情,這時候您應該反思反思您的代碼結構了。考慮學習一下常見的設計模式它會幫助您建立可重用的靈活的方法,函式,以及物件。
打個比方,如果,您需要頻繁的連結到資料庫,您可能需要建立一個資料庫的訪問類,來處理資料庫的連結,查詢以及資料的提交。
六、 線上協作以及追蹤專案狀態
實際上——您工作並不孤單。無論您是為一個開發團隊工作或是為某人工作 (這個人可能是您上司或者您的客户),您都應該充分享受線上協作和追蹤專案狀態説給您帶來的好處。
您在行政性任務上花費的時間越少,或者在在無窮無盡的會議上花費的時間越少 (或者,更糟的,是那種需要出差的面對面會議)——您在代碼上花費的時間就越多。
像 Basecamp, Lighthouse, 和 activeCollab 這類工具就給您提供了一站式團隊協作服務,讓您隨時追蹤專案的狀態,您也可以設定專案的目標和里程碑 (milestones)——這樣所有人就可以自動同步,為您省下頻繁回覆電子郵件的時間,您也無需在進度確認會議上花費大量無用時間。
這些工具 l 另外會幫助您區分事情輕重,確保了所有的事情都在一個集中的地方組織和記錄下來。
七、代碼的自動格式化和標準化
您需要將您的所有代碼格式標準化,這樣做不僅僅這是一個很好的習慣,而且日後您一旦需要回來看這些代碼,這會幫您很快的理解這些代碼。
代碼的自動格式化可以讓您一鍵格式化您所有的代碼,而不是一行一行來做這事,這也確保了代碼編寫的一致性。自動的格式化也減少了手動修改產生錯誤的風險、
我們有許多工具來幫助我們做這事,很多是網絡版的工具 。對於 CSS 而言,一個流行的開源解決方案就是 CSSTidy (Clean CSS is an CSSTidy 的線上版本) 。對於 HTML 我們有 HTML Tidy 。
對於指令碼,我們有 PHP Source Code Formatter, Ruby Script Beautifier, 和 Code Beautifier Plus (這個工具是用來格式化 C#, ActionScript, and Java).
八、在需求收集和規劃階段多花時間
預防遠勝過補救。或許某些思想學派的人物強調不要在計劃上浪費時間——確保您已經收集到了您需要知道的所有資訊,在做功課方面花費必要時間依然是必要的。如果在需求收集方面沒做足功課會導致功能氾濫 (feature Creep) , 原因就是各種未曾預料到的功能需求
九、使用已經編寫好的代碼
PHP Classes Repository Screen shot.
古人以及幫我們發明了車軲轆,所以我們也沒必要親自再搗鼓出車軲轆來。如果在某個地方看到某個感興趣的功能,其他人極有可能已經為您寫好了代碼 (嗯,不僅僅是為您,而是為我們大家。) 對於 PHP 而言, PHP Classes Repository 為您提供了大批的類和指令碼供您下載和使用。 Hot Scripts 則提供了其他語言的各種指令碼。如果您只是想要一些小的代碼段,您可以去 devSnippets 上面淘淘寶。
注意:只有當您具備充足的經驗,能分辨出好代碼和差代碼,上面的這個辦法才會真正幫您大忙。否則您會發現您終成品中代碼 bug 叢生,書寫混亂。
十、精簡功能
您必須對網頁應用的某些功能做一個評估,以判斷在這個功能上面的時間投入是否值得。
您的多用户真的需要一個並不經常更新的內容管理系統為每一個類別的文章提供一個自定義的 RSS 輸出嗎? 您真的需要一個網站樣式轉換器來幫您檢測到多用户地理位置哪裏,然後將網站呈現不同的風格。
編寫網站功能就是一場艱苦的戰鬥 ,不要在對終端多用户無用的功能上耗費開發時間,況且這些功能而且會使多用户介面複雜化。