前一段時間,在專案裡遇到這樣乙個問題。
我提供了一些函式,比如a(),b(),c().....。之後其他人根據具體情況呼叫不同的函式。這些函式有乙個
共同點,就是呼叫方式非常相似。
使用者可能會這樣使用這些函式
if(condition == 1) a();
else if(condition == 2) b();
else if(condition == 3) c();
else ...
現在是看不出來有什麼問題。但是問題在於呼叫函式沒有這麼簡單,舉乙個複雜點的例子。
使用者可能這樣使用
if(condition == 1)
}while(condition1)
}else
if(condition == 2)
}while(condition1)
}else ...
以上只是為了說明,每種情況的處理方法都差不多,但是都很複雜,有那麼多得條件和操作。
現在出現問題了,呼叫者總會用錯這些條件,比如condition2成立應該跳出迴圈,但是忘記break了。
或者又有其它的一些錯誤。總之即使呼叫a的情況弄對了,有的時候就偏偏忘記改呼叫b的那段**。
導致問題總是接連不斷的出現。
當然,有人說了,你這個明顯有重複**,改成引數化不就行了。
可以改成這樣:
void func(int condition)
之後上面那段洛里囉嗦的**就可以這樣改
do}while(condition1)。
但是關鍵的這個func函式應該由誰來提供呢?一開始我只是提供了a,b,c...這些函式,我本以為使用者
可以自己寫乙個func函式,但是我錯了,使用者並沒有這麼做,而是赤裸裸的按照最笨的那種方法。當我
發現時,已經晚了,程式中到處都是這樣的**,以至於我苦不堪言。雖然單獨提供a,b,c...可以使程式
更加靈活(萬一使用者對函式有了不同的使用情況),但是到現在為止沒有出現什麼特例的使用情況。
而我也非常後悔,為什麼自己不在當初提供乙個引數化的方法。
加班,到底是誰的錯?
公司一專案組朝九晚九,到底是誰的錯?諮詢,實施,還是研發?亦或者是專案組成員內部管理機制 每逢專案要上線,問題就頻頻曝出,持續整合,測試,交付為何始終無人接管,code review 為何做不起來?浮躁的氣氛,真的讓人覺得很頭疼.好吧,客戶是上帝,但是從公司的長遠發展上來看,即便客戶是上帝,公司內部...
到底是誰中了單身的毒?
倡導單身主義的女郎愈來愈多。不知是女人們愈來愈有用,還是男人們愈來愈沒用了。同時,倡導單身主義的紳士也越來越多了,不知是男人們越來越自戀,還是女人們越來越沒有魅力。一直憂國憂民的我看了一則新聞之後直冒冷汗 話說北京市今年春天關閉了160所幼兒園,原因是招不到學生了。往上一層是 人們 晚婚晚育了 再往...
到底是誰革了手機的命?!
做產品工作,最重要的是搞清楚產品的本質 核心屬性。往往由於對事物本質與核心屬性理解的不同,不覺中就悄然改變了產品的定義。手機現在就是這麼乙個狀況,亂花漸入迷人眼 的雜象,正在模糊著手機的本質和核心屬性,重塑著手機的定義。手機被革了命!是移動網際網路的應用熱潮讓手機變成了以網際網路訪問為中心而丟了命?...