就編程的最佳/最常見實踐而言,代碼應該在哪裏防止某些函數被調用,同時記住性能?何時阻止函數調用?
例如,如果我有一個函數可以在錯誤的時間被調用時中斷,那麼這些方法中哪個最常見?
答:
Data *someData = new Data;
while(running)
{
ProcessData(someData);
};
void ProcessData(Data *data)
{
if(data)
data->member = 5;
}
B:
Data *someData = new Data;
while(running)
{
if(someData)
ProcessData(someData);
};
void ProcessData(Data *data)
{
data->member = 5;
}
編輯:澄清一下,我問功能是否自己應該做的驗證或依賴客戶端代碼不調用的函數,而處於錯誤的狀態。
在函數深度調用5次的情況下,爲每個函數添加驗證可能會給代碼添加相當多的批量,並可能會損害性能,但更重要的是降低代碼的可讀性。
所以我問什麼普通開發者會期望在這種情況下
你是問,如果過程數據()應承擔「數據」是有效的,它被稱爲前,還是應該過程數據()默默若無效忽略? – seand
也許斷言可能會有幫助,如果不好的輸入是不正確的編碼的結果。他們將從發佈代碼中刪除。 –