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