如何評估云代碼? |
發布時間: 2012/9/15 18:12:22 |
基于云的應用程序往往使用戶的創意靈感集中在供應商所說的“聲明式編程”(declarative programming)上:明確行為的點擊式規范,另外還有配置、設置、規則和公式。由于易于使用、含有多租戶的工作負載和容易測試,這些都是很好的選擇。但如果你的云應用程序用戶數量眾多,或者用戶的使用情況復雜,聲明式開發方法給你帶來的幫助將很有限:用不了多久,你會滿足于用表示層(視圖)和業務邏輯(控制器)來編寫代碼。在一些云環境下,你甚至會直接處理元數據和事務層(模型)。 當然,如果你在使用基于云的開放環境或部署環境,那么一開始就要面對模型、視圖和控制器模式(MVC)的所有三個層。對于IT專業人士來說,這不是什么新鮮事。 但是云開發領域的確帶來了一些新的挑戰,因為云開發這方面仍然處于早期階段。比如說: • 沒有中心機制:不但用戶們是分散的,開發人員也可能位于任何地方,服務分布在好幾個位置。對于應用模型、代碼、測試數據庫或應用程序工件(artifact)來說根本沒有中心存儲庫,除非你用偏愛的版本控制系統和維基創建一個中心存儲庫。就創建一個吧。 • 你要通常同時面對好幾種語言:即使面對的只是一個應用程序,你還是要用到大量的跨語言引用。比如說,你的代碼可能調用Java庫、內部應用函數或腳本。你的用戶界面可能調用jquery、JavaScript、JavaScript框架、原生文件系統實用工具、AJAX、Flex及其他語言。這種方法編寫出來的代碼功能很強、效率很高,但是可能會導致對代碼進行排除和調試會非常困難。盡量把所使用的語言總數控制在不超過5種。不妨試一試。 • 不同的開發工具會影響代碼結構:從代碼分析和設計直到代碼測試和部署,無不如此:一些工具允許(甚至鼓勵)使用極其精巧、擴展性極好的代碼結構。其中一些比較花哨的工具只出現在Windows平臺上,所以使用Mac和Linux的開發人員對于你編寫的系統會有不同的體驗,包括開發時間和部署時間。對代碼調試來說更是如此;對用戶界面來說同樣更是如此。 云代碼評估標準 假設云代碼可以正常運行,又能滿足用戶需求,還應該評估代碼的哪些方面呢?不妨看一下基本的方面: • 可部署性:雖然有可能在幾秒鐘內發布針對某個模塊的錯誤修正版,但是要做的正確事情是在任何部署之前有一個相當全面的測試周期(用于生產系統,Salesforce.com甚至要求全面測試)。不過如果是大型應用程序,部署環節可能包括對元數據、配置表、應用程序工件和測試數據連同代碼進行修改。當然,可以使用并發版本系統(CVS)和可編寫腳本的編程引擎實現部署自動化。測試的順序也可以實現自動化。真正的問題在于:這種自動化是不是果真已到位,測試周期是不是在合理的時間內完成?我們最近開發的一個系統最近花了好幾個小時才運行完畢強制性的測試周期。這使得應用程序實際運行起來問題重重,我們強烈建議根據這個基準來篩選供應商。 • 說明文檔的深度和寬度:你可以說我是不切實際的理想主義者,但是云應用程序要有比傳統應用程序更詳細的說明文檔。還要用不同的方式為云應用程序編寫說明文檔。大家都仍處在不斷學習的過程中,所以要確保根據這個基準來評估采購的應用程序和集成商的代碼。 另外還有一個老大難問題:可維護性。 下面這番話聽起來不像是出自顧問之口,但是“這完全取決于你的實際情況、你想要實現什么樣的目的。”比如說,如果你僅僅使用商業云應用程序,就沒必要試圖自己來維護。所以,“可維護性”就相當于“SLA”(服務級別協議)。(如果你使用開源云應用程序,可維護性又相當于“外頭知道該代碼庫的顧問有多少?”) 但是如果你在自行開發云應用程序,或者用頁面、觸發器和類來擴展現有的云應用程序,你就需要評估代碼,檢查代碼在分析、擴展和排錯等方面的簡易性。一種常見的誤解是,使用最普通、擴展性最好的代碼總是最好的辦法。雖然良好的擴展性和避免硬編碼是好事,但是倘若這些做法做得過頭了,就與代碼混淆沒有什么兩樣。要確保評估代碼的“可讀性指數”,為此請你的員工自己進行一次代碼走查(code walkthrough)。要是編程技術太抽象了,很不透明,那你將永遠依賴于最初編寫這些代碼的那家集成商。 本文出自:億恩科技【www.laynepeng.cn】 |