狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

開(kāi)發(fā)中的常見(jiàn)問(wèn)題

admin
2010年8月13日 18:24 本文熱度 5227
一.不定義常量(constant),代碼中隨意使用數(shù)字,并且不加任何注釋
癥狀和例子:
判斷"chipType == 2" - 2是什么意思?為什么不定義一個(gè)常數(shù) "REALMONEY = 2",然后使用這個(gè)常數(shù)?
惡劣后果:
旁人不知道該數(shù)字什么含義,時(shí)間一長(zhǎng)包括自己在內(nèi)都不知道其準(zhǔn)確含義。代碼重構(gòu)不可能(無(wú)法替換某個(gè)常數(shù)所有的出現(xiàn)之處、無(wú)法穩(wěn)妥改動(dòng)數(shù)值)
正確做法:
代碼中任何常數(shù)都必須被定義。不要隨手使用數(shù)字

二.代碼對(duì)一些僅用于標(biāo)識(shí)事物種類(lèi)的數(shù)值敏感(not agnostic to number value that represents type information)
癥狀和例子:
隨意指定一些值,以標(biāo)識(shí)一些事物的不同種類(lèi)。目前常常用來(lái)作為客戶(hù)端與服務(wù)器端的協(xié)議,各端往往需要對(duì)數(shù)值的含義作出分析,然后執(zhí)行相應(yīng)的動(dòng)作。此外數(shù)值的指定非常隨意,無(wú)規(guī)律、無(wú)準(zhǔn)則
惡劣后果:
代碼完全沒(méi)有robustness,一個(gè)數(shù)值的改變即可導(dǎo)致程序出錯(cuò)
正確做法:
對(duì)于代表種類(lèi)信息的數(shù)值、或者是代表個(gè)體的數(shù)值,或者稱(chēng)之為"標(biāo)識(shí)型"數(shù)值,程序應(yīng)該盡量做到對(duì)具體數(shù)值不敏感。如果數(shù)值影響算法,那么應(yīng)該明確數(shù)值生成的規(guī)則,有一定規(guī)律,而不是兩個(gè)開(kāi)發(fā)人員私下協(xié)議"我給你個(gè)1你就應(yīng)該做什么"(如果需要這樣的話(huà),證明是協(xié)議需要設(shè)計(jì))

三.不使用枚舉類(lèi)型
癥狀和例子:
用一堆整數(shù)來(lái)代表一些事物的類(lèi)別
惡劣后果:
因?yàn)椴荒茏龅絫ype safe,很容易錯(cuò)誤使用而不被檢測(cè)。如果寫(xiě)代碼時(shí)cut and paste一些類(lèi)似的賦值語(yǔ)句,則很容易把完全風(fēng)馬牛不相及的值賦予給變量。此外一堆整數(shù)雖然都是為了標(biāo)識(shí)一類(lèi)物體的不同種,但這種關(guān)聯(lián)無(wú)法貫徹。此外定義一堆水果種類(lèi)與定義一系列交通工具,彼此無(wú)本質(zhì)區(qū)別,代碼編譯時(shí)都是整數(shù)
正確做法:
在Java中,應(yīng)該使用Enum枚舉類(lèi)型。在Actionscript中,沒(méi)有Enum的情況下,可以定義一個(gè)類(lèi),然后用這個(gè)類(lèi)的實(shí)體(instance)作為標(biāo)識(shí),如:

* 定義一個(gè)叫Fruit的類(lèi)
* 構(gòu)建多個(gè)Fruit實(shí)體,分別賦予多個(gè)全局變量(global、static),每個(gè)變量名為某種水果如: APPLE、ORANGE
* 把上述對(duì)象當(dāng)作常數(shù)使用

四.不支持國(guó)際化
癥狀和例子:
在代碼中寫(xiě)死文字信息,比如簡(jiǎn)體中文
惡劣后果:
網(wǎng)站和客戶(hù)端都需要i18n支持,一旦代碼中到處都是寫(xiě)死的文字信息,非常難改變過(guò)來(lái)
正確做法:
現(xiàn)代IDE中對(duì)國(guó)際化、ResourceBundle等的支持已經(jīng)非常好,需要做的事情就是學(xué)會(huì)使用

五.所有條件判別代碼擠在一個(gè)龐大的函數(shù)中
癥狀和例子:
所以if...then或者switch...case語(yǔ)句,把所有情況判斷后的處理代碼塞在一個(gè)地方
惡劣后果:
首先,這種做法讓代碼閱讀、檢查不舒服,太長(zhǎng)太不好理解;其次,也是最主要的缺陷:完全沒(méi)有可擴(kuò)展性。每次多一中情況的發(fā)生,就必須去改這個(gè)龐大的函數(shù)。雖然說(shuō)改動(dòng)也許可以只局限于一個(gè)函數(shù),但實(shí)際上這個(gè)函數(shù)所在的類(lèi)(文件)已經(jīng)被修改,所以嚴(yán)格來(lái)說(shuō)這個(gè)類(lèi)及其一切相關(guān)代碼都需要被重新測(cè)試
正確做法:
使用Command pattern;或者最簡(jiǎn)單是把對(duì)應(yīng)某個(gè)條件的處理代碼抽離到獨(dú)立的類(lèi),把這個(gè)類(lèi)更進(jìn)一步抽象出通用接口。這樣每次有新的條件需要處理,我們可以增添新的處理邏輯到新的類(lèi)里面,然后把這個(gè)類(lèi)通過(guò)polymorphism傳遞給中央處理程序

六.參數(shù)寫(xiě)死在代碼中
癥狀和例子:
最常見(jiàn)的問(wèn)題是把URL寫(xiě)死在代碼中,基于當(dāng)前有限的理解,對(duì)系統(tǒng)和商業(yè)領(lǐng)域作了很多假設(shè)
惡劣后果:
導(dǎo)致代碼的兼容性極差,完全沒(méi)有portability。系統(tǒng)從一個(gè)環(huán)境挪到另一個(gè)環(huán)境,問(wèn)題就會(huì)不斷出現(xiàn)
正確做法:
細(xì)心、不怕麻煩、抽象出可配置的參數(shù),設(shè)計(jì)時(shí)考慮部署和運(yùn)營(yíng)的方便

該文章在 2010/8/13 18:24:44 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved