代碼的重復(fù)使用
當(dāng)你寫代碼的時(shí)候,問(wèn)一下你自己將來(lái)是否還會(huì)使用這段代碼,如果是,那就要把它分離出來(lái)成為一個(gè)常規(guī)的程序,你可以在其他地方調(diào)用。如果你發(fā)現(xiàn)你在一個(gè)新的句柄上用你過(guò)去使用過(guò)的代碼,那最好吧這段代碼拆分出來(lái)。
當(dāng)你寫句柄的時(shí)候,盡可能的使它普適化,如果能避免使用全局變量就應(yīng)該避免,因?yàn)槿绻蕾囉谄渌某绦蚨危徒档土藢?lái)再次使用這個(gè)句柄的可能性. 如果你只需要全局變量的值,應(yīng)該考慮用參數(shù)傳遞給句柄。
另一個(gè)提高你的代碼的可攜帶性的方法是去除關(guān)聯(lián)的某個(gè)特定的object.例如你想要計(jì)算兩個(gè)域的和 不可攜帶性的代碼可能象這樣: put SumFields()
function SumFields
return fld "Num1" + fld "Num2" + fld "Num3"
end SumFields
這個(gè)句柄只有當(dāng)三個(gè)域的名字都是特定的如例中所示才有效,而更方便的代碼應(yīng)該是這樣: put SumFields(fld "Num1", fld "Num2", fld "Num3")
function SumFields
put 0 into tSum
repeat with i = 1 to paramcount()
add param(i) to tSum
end repeat
return tSum
end SumFields
這個(gè)句柄不僅可以在任何地方是用,而且使用param 和paramCount 的結(jié)果是大大的擴(kuò)展了這個(gè)功能的使用,可以求任意個(gè)數(shù)的總和。
當(dāng)關(guān)聯(lián)到一個(gè)object的時(shí)候,盡可能使用名字,如果無(wú)法知道名字或者名字發(fā)生了改變,請(qǐng)使用Object的ID號(hào),避免使用一般的數(shù)字來(lái)命名object(l例如., "button 4"), 因?yàn)槟憧赡芨淖兯,而使得腳本不能正常運(yùn)行,用帶有描述性的名字也可以幫助你理解object的含義 (cd flds, grcs, wds, &c.). 如果你的程序需要數(shù)字命名也應(yīng)該這樣 "Bookmark 1," "Bookmark 2", 等。
代碼的速度
解釋性的語(yǔ)言通常比編譯的語(yǔ)言運(yùn)行慢,所以速度是一個(gè)重要的考量,這里是幾個(gè)建議可以使解釋器工作得更快:
- 如果語(yǔ)言本身提供了更簡(jiǎn)潔的詞來(lái)替換文字例如"comma" 和 "colon" ,就是用它們,因?yàn)檫@些解釋器可以處理得更快.
- 文本總是放在引號(hào)內(nèi),哪怕是一個(gè)詞的文字,而數(shù)字碼永遠(yuǎn)不要放在引號(hào)內(nèi)(除非是語(yǔ)言的需要)這可以提高解釋速度,否則解釋器在作為文本使用它前需要查找它是否是變量名.
- 用數(shù)字而不是數(shù)字的文字形式. (例如. "put myVar - 10 into cd fld "myField"", not "put myVar - ten into cd fld "myField"")
- 重復(fù)的操作要在變量中完成,而不是域中,因?yàn)檫M(jìn)入域,解釋器需要做很多額外的工作才能確認(rèn)文字,修改它并顯示出來(lái),在變量中先完成工作可以使速度有數(shù)量級(jí)的提升。
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁(yè) 常用的技巧 下一頁(yè) 命名規(guī)則
◎進(jìn)入論壇Flash專欄版塊參加討論
|