2012-03-13 58 views
1

我正在使用ColdFusion 8和9.使用標籤與CFSCRIPT是否有明顯的性能或可讀性好處?

我昨天正在閱讀一些ColdFusion最佳實踐。我遇到了一個建議儘可能使用CFSCRIPT的部分。原因是每個CFSET都是一個單獨的請求,需要由服務器打開和關閉(或者其他的東西)。由於CFSCRIPT是作爲一個單獨的代碼塊來處理的,因此只需要打開和關閉一個,從而縮短服務器進程的時間。這個建議是針對ColdFusion 5明確給出的。

我想知道這個建議今天是否成立,差不多十年後。就個人而言,我使用CFSCRIPT 99%的時間。但是,我確實與僅使用標籤的人一起工作。在我工作的一個項目,我遇到了這個代碼的函數中:

<cfset LOCAL.TrackingInfo = structnew()> 
<cfset LOCAL.TrackingInfo.referral = CGI.HTTP_REFERER> 
<cfset LOCAL.TrackingInfo.ipaddress = CGI.REMOTE_ADDR> 
<cfset LOCAL.TrackingInfo.useragent = CGI.HTTP_USER_AGENT> 
<cfset LOCAL.TrackingInfo.querystring = CGI.QUERY_STRING> 

我將修改它看起來像這樣:

<cfscript> 
    LOCAL.TrackingInfo = structNew(); 
    LOCAL.TrackingInfo.referral = CGI.HTTP_REFERER; 
    LOCAL.TrackingInfo.ipaddress = CGI.REMOTE_ADDR; 
    LOCAL.TrackingInfo.useragent = CGI.HTTP_USER_AGENT; 
    LOCAL.TrackingInfo.querystring = CGI.QUERY_STRING; 
</cfscript> 

對我來說,好處是可讀性。而且,在CFSCRIPT和JavaScript與Java(我所做的小Java)之間來回切換非常簡單。

使用CFSCRIPT有沒有實際的可讀性或性能好處?非初學者是否有理由繼續使用CF標籤?

+0

就個人而言,這是基於標籤的語言不同於JS等增強其可讀性的事實。我看着一個,我立即知道我正在工作。 – 2012-03-13 18:43:23

+0

另請參見:http:// stackoverflow。com/q/1312223/21960 – ale 2012-03-13 19:42:19

+0

我更喜歡cfscript,只是因爲我不必輸入太多(''一遍又一遍地讓人厭煩)。我傾向於只在我的視圖中使用標記,並將腳本中的控制器/模型保留下來。 – 2012-03-14 17:15:08

回答

3

現代版本的語言沒有真正的速度差異。就可讀性而言,對於誰在閱讀是完全主觀的。我與各種CF人合作。其中一些人非常難以遵循CFSCRIPT以及其他所有他們嘗試使用的方法(幾乎達到了過度殺傷的程度)。就我個人而言,我會說以你最舒服的方式去做,也是一種方法,無論你與誰合作的人是可以接受的。我認爲這裏的最終目標是製作團隊中的每個人都可以輕鬆理解和支持的代碼,如果有需要的話。可讀性論點的例子可能是因爲我知道這裏有人會說你CFSCRIPT塊是不是因爲這樣的可讀性:

<cfscript> 
    LOCAL.TrackingInfo = { referral = CGI.HTTP_REFERER, 
          ipaddress = CGI.REMOTE_ADDR, 
          useragent = CGI.HTTP_USER_AGENT, 
          querystring = CGI.QUERY_STRING }; 
</cfscript> 

我不認爲,雖然你們任何一個比其他「更正確」。只是個人編碼風格的差異。

或另一個例子,我與一個堅持所有CF標籤都是大寫字母以及屬性的人一起工作。他們說的原因是它有助於可讀性。當它全部大寫時,我不覺得它更容易閱讀或更難閱讀。如果有任何事情發生,我總覺得在這些特定項目的代碼搞亂時,總是要按住shift鍵或者打上大寫字母鎖就是一件麻煩事。

4

當這個問題提交給CF團隊時,有人指出使用cfscript存在微不足道的差異,但它很小,以至於沒人應該擔心。這就是cfscript函數寫入的方式(標籤),因此與附加函數調用相關的成本很小。如果您發現任何類型的負載或速度測試有所不同,我會感到驚訝。快速編輯:你在上面的例子中使用的東西不會有任何區別,我所做的說明僅僅是關於CF9中新的cfscript語言增強。

+0

答案地址。可讀性呢?如果您整天使用HTML處理,CFML更容易編寫。如果處理JavaScript,標籤看起來很陌生,但CFSCRIPT看起來不錯。你能解決可讀性方面的問題嗎? – 2012-03-13 18:36:37

+0

個人CFSCRIPT似乎對我來說更具可讀性。語法與其他編程/腳本語言的語法相反,缺少CFTAGS(打開和/或關閉)可以清理顯示並減少行數。在CFSCRIPT中編寫完整的CFC時尤其如此。 我真的更喜歡使用CFML標籤的唯一時間是查詢。 CFQUERY擁有如此強大的力量。 – Sureround 2012-03-13 18:43:20

+6

最初的問題是特別針對速度提出的,這是可以測量的。可讀性是基於意見的那些事情之一,所以我們有更難測量的時間。在我的觀點中,我比我能跟隨標籤更好地閱讀腳本。對我來說這不是一件容易的事,但其他人會認爲標籤更加冗長,因此更容易遵循。它是一個滑坡! – 2012-03-13 18:45:55

相關問題