常用的技巧
幾個(gè)防止spaghetti code的建議
澄清程序的流程
一種避免 spaghetti code的方法就是讓你的代碼的邏輯顯而易見。例如,你需要一個(gè)句柄來完成好多個(gè)不同的啟動(dòng)過程,你最好把它拆分成多個(gè)句柄,并且每個(gè)句柄只負(fù)責(zé) 一個(gè)特定的工作,如果你能使用描述性的名字,你就可以很容易的掌握這個(gè)句柄是做什么用的:
on startup
InitMenus
InitWindows
InitPrefs
end startup
解釋這些拆分的程序調(diào)用所需的額外時(shí)間試可以忽略不計(jì)的,而且分離這些程序可以使你在跟蹤代碼的漏洞的時(shí)候更方便。
為了讓你的代碼流程更清晰,你可以先寫注釋,把你的代碼所要完成的工作寫成注釋,然后再在其中填寫要執(zhí)行的代碼,這個(gè)技巧對(duì)于早期處理復(fù)雜的程序單元也非常有用,它可以讓你按照步驟的思考來解決問題。
很多詞在腳本語言里有縮寫的形式,請(qǐng)使用它們,它們節(jié)省空間并且從視覺上來說讓你的變量名和句柄名更突出,你還可以少打幾個(gè)字符。
你可以用括號(hào)來把邏輯和算法表達(dá)式集合在一起,讓代碼簡(jiǎn)潔:
if (the vis of wd "myWindow") then
而不是:
if the vis of wd "myWindow" = true
請(qǐng)記住,用 "=" 而不是 "is"來表達(dá)比較,這可以讓你的比較式看起來更顯眼。
有效的注釋
作為一般的原則,每一段代碼如果其功能不是顯而易見的話,都有必要加上注釋。例如:
這個(gè)就不必要:
-- Set the cursor to watch:
set the cursor to watch
但是這個(gè)代碼段就有必要寫一個(gè)簡(jiǎn)短的說明:
-- Update each card with the current date:
set the cursor to watch
put the short date into tDate
repeat with i = 1 to the number of cds
put tDate into fld "Date" of cd i
end repeat
注釋也可以用來作為視覺的引導(dǎo),來分別不同的代碼段落,這里就是一個(gè)用注釋來視覺分辨相關(guān)句柄的例子:
--=============================================--
-- WINDOW ROUTINES --
-- DocWindowRect()--
-- Returns the default size for new document windows--
function DocWindowRect
put the screenrect into r
add 4 to item 1 of r
add 4 to item 2 of r
subtract 4 from item 3 of r
subtract 4 from item 4 of r
return r
end DocWindowRect
-- UpdateAllWindows--
-- Allows each open window to refresh itself--
on UpdateAllWindows put windows() into tWdList
repeat for each line tWd in tWdList
send "UpdateThisWindow" to tWd
end repeat
end UpdateAllWindows
--=================================================--
注意上面的例子還包含了對(duì)每個(gè)句柄的簡(jiǎn)單描述,這樣就可以讓這些句柄在你掃描的時(shí)候更容易發(fā)現(xiàn).
你也可以在代碼中插入注釋,例如下例:
on MyHandler
global gMyGlobal
--
SomeStatementHere
AnotherStatement
--
StatmentForSomethingElse
MoreOfThat
end MyHandler
用注釋來分開代碼成不同的段落,可以使相關(guān)的代碼集中在一起,更容易分辨。而在句柄之間加入空白行,你可以快速的掠過你的代碼.
如果你不關(guān)心腳本的大小限制,你可以自由的使用注釋,SuperCard, HyperCars還有其他一些腳本語言環(huán)境通常限制腳本大小在32k以內(nèi),所以你如果面臨這樣的問題,就需要考慮只注釋重要的部分和那些用來視覺分界的來控制大小。
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁 翻譯:Scripting Style Guide 下一頁 常用的技巧-續(xù)
◎進(jìn)入論壇Flash專欄版塊參加討論
|