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