今天談到的是安全感。
程序中有些不必要的代碼如何產生的?
比較典型的老代碼:
bool foo = IsBook ?true:false
其實等效於:
bool foo = IsBook
多出了“?true:false”這樣的語句,其實並無必要,也不能提高可讀性,但是顯得很明確、很安全。
我記得n年前,寫過很多這樣的代碼:
bool IsBook;
if (IsBook==true)
// more code
爲何我這樣寫,而不是
bool IsBook;
if (IsBook)
// more code
我的項目經理,拿來代碼先都把多餘的"==true"砍了下去——砍的時候我就在現場看着,感覺臉上紅一陣白一陣的。
回頭想想,得出3個結論:
1. 我這樣做是因爲C語言的影響。c語言條件判斷總是有貓膩,比如0和null的特別處理。對應這樣的語言,還是明確一點更好
2. 在pascal,c#這樣的本身就很清晰、有強類型的語言,應該採用簡潔的方式
3. 更重要的是,提升我的能力——以後絕不讓我的經理或者同事在我的代碼中找得到這樣的低級問題。
4. 比重要還重要的,提升我的情商——正面的面對代碼中的存在的問題。
被人當面砍代碼是不快的。但是這種不快的情感力量讓我每時每刻都要追求把代碼寫的更漂亮。而不是輕易的將就,不會輕易的說“就這樣吧,將就下吧”。這是曾經的不快打開了我的潛能,看到了更多的可能性。
如何克服這樣的不安全意識?唯有多多訓練。
不如現在開始吧。還是前面的文章提到的“系列號相加的代碼”,看看不必要的代碼在哪裏?
// old code
var serials = "";
if (serialout != null && serialin != null)
{
serials = serialout + splitter + serialin;
}
else if (serialout != null && serialin == null)
{
serials = serialout;
}