6、認(rèn)為帶前綴或標(biāo)簽的命名約定不好 你在創(chuàng)建一個(gè)變量時(shí),能通過(guò)數(shù)據(jù)類(lèi)型和用途識(shí)別它是最好的,大多數(shù)VBA開(kāi)發(fā)人員喜歡添加3個(gè)字符的前綴,或標(biāo)簽來(lái)確定數(shù)據(jù)類(lèi)型,例如,用于存儲(chǔ)姓氏的字符串?dāng)?shù)據(jù)類(lèi)型可能命名為strLastName,前綴確定了變量的數(shù)據(jù)類(lèi)型,LastName確定了變量的用途,有些開(kāi)發(fā)人員認(rèn)為這個(gè)前綴是沒(méi)有必要的,甚至?xí)斐筛蓴_,因此他們不使用前綴,在某些情況下,數(shù)據(jù)類(lèi)型的確是顯而易見(jiàn)的,但有時(shí)卻不那么明顯,添加前綴或標(biāo)簽不會(huì)增加工作量,但它的好處卻有很多,如: 標(biāo)簽是自文檔化(self-documenting)的。 在調(diào)試或修改代碼時(shí),你可以立即知道變量的數(shù)據(jù)類(lèi)型。 在投入生產(chǎn)幾個(gè)月后,你也許早已記不得那些變量的含義了,或者你已經(jīng)離開(kāi),后來(lái)的維護(hù)者在前綴或標(biāo)簽的提示下,能更快地讀懂代碼。 7、不會(huì)有任何空值 無(wú)論你采取什么措施,空值總是帶有破壞性,如果你正確地處理空值,程序?qū)?huì)更穩(wěn)定,VBA提供幾種工具來(lái)發(fā)現(xiàn)和處理空值。 使用IsNull()確定一個(gè)表達(dá)式或值是否為空,你不能對(duì)空值使用比較操作符,如var=Null或var<>Null,直接比較總是返回空(T-SQL有時(shí)會(huì)返回False)。 在Access中,遇到Null時(shí),Nz()返回一個(gè)值,而不是Null。 如果你需要處理Null變量,請(qǐng)使用Var數(shù)據(jù)類(lèi)型,它是唯一可以存儲(chǔ)Null的數(shù)據(jù)類(lèi)型。 8、我是唯一一個(gè)使用應(yīng)用程序的人,因此我在程序中嵌入了密碼 密碼和用戶id值永遠(yuǎn)都不應(yīng)該嵌入到代碼中,你可能是唯一被授權(quán)使用該應(yīng)用程序的人,但這并不意味著就可以直接將密碼嵌入到程序中,相反,不管是誰(shuí)要使用這個(gè)程序,都應(yīng)該提供一個(gè)對(duì)話框讓其輸入登錄憑據(jù)。 9、我寫(xiě)代碼時(shí)就做了測(cè)試,不用再測(cè)試了 當(dāng)你寫(xiě)代碼時(shí)就做了測(cè)試,這很好,但這樣做是不夠的,開(kāi)發(fā)人員通常不適合測(cè)試自己寫(xiě)的代碼,他們不會(huì)把自己想象成用戶,因此很難發(fā)現(xiàn)重大BUG,往往是走走過(guò)場(chǎng)罷了,要知道最終是要把程序投入生產(chǎn)環(huán)境,那時(shí)就不是你自己使用了,因此應(yīng)該找一些最終用戶來(lái)測(cè)試。 10、就我一個(gè)人開(kāi)發(fā),我只寫(xiě)代碼,文檔就免了 如果就你一個(gè)開(kāi)發(fā)人員,也許你不會(huì)寫(xiě)文檔,你認(rèn)為那只是耽誤自己的工作,但大多數(shù)開(kāi)發(fā)人員在修改非自己寫(xiě)的代碼之前,都希望有良好的文檔參考。別的不說(shuō),至少下面這些內(nèi)容應(yīng)該有文檔記錄。 例行的目的/任務(wù)/目標(biāo)。 傳遞的值和參數(shù)的簡(jiǎn)短定義。 對(duì)一些非常規(guī)的代碼寫(xiě)法,附上解釋和想法。 誰(shuí)創(chuàng)建的代碼,誰(shuí)在什么時(shí)候修改過(guò)代碼,修改了哪些內(nèi)容,當(dāng)你離職后,其他接收的人看到良好的注釋一定會(huì)從心底敬佩你。 |
[發(fā)布者:yezi] | ||
相關(guān)閱讀:
·北大新任校長(zhǎng)王恩哥:一所大學(xué)也要有夢(mèng)想
·物理學(xué)家王恩哥就任北京大學(xué)第十一任校長(zhǎng)
·研究生為助父“留任”校長(zhǎng)編造茂名“最大貪污
·專訪:中新高校校長(zhǎng)看好亞洲大學(xué)發(fā)展前景
·粵港合作“一試三證”首頒44張證書(shū)
|