注冊用戶即可下載全站資源 關注Java幫幫微信公眾號
 

成為更優秀的程序員:退后一步看問題

9
發表時間:2018-11-19 14:02

請把下面的[客戶]、[老板]或其它任何東西換成你想要的名稱。

一天,在工作中…

Bug #3890 來自客戶:

日本韩国三级aⅴ在线观看有個程序出現了錯誤,程序提示說“SpeedCalculator::compute()里出現了除零情況”。

請盡快修復!

你打開SpeedCalculator.php,發現:

publicfunctioncompute(){return$this->distance/$this->time;}

修復bug

簡單!是誰寫的這段代碼,他怎么不用一點腦子!

publicfunctioncompute(){if($this->time==0){return0;}return$this->distance/$this->time;}

你就這樣修改完了,這個bug只用了你2分鐘。

后來,同樣的bug又出現在了RatioCalculatorMoneyCalculator中,當把它們也修正后,團隊中的所有人都認為,再也不會有這樣的問題出現了,這是最后一次!代碼現在又是堅固無比了!

一個月后,另外一個bug出現了。這次程序沒有崩潰,但客戶在報表中發現了錯誤的計算結果,是因為那句return 0;的代碼修改。

退后一步看問題

如果,我們不是匆匆忙忙的修改,而是退后一步,以更寬廣的視野看待些問題。

為什么這種事情會發生?

因為$this->time被賦值成 0.

日本韩国三级aⅴ在线观看簡單!讓我們阻止這種事情發生。

publicfunctionsetTime($time){if($time==0){thrownewInvalidArgumentException("Invalid value");}$this->time=$time;}

這樣,修改的效果不是更好嗎?你保證了數據的正確性。但這樣客戶并不是很高興,因為當他輸入0時,程序會跳到一個錯誤頁面。

那么,你應該在控制層捕捉這個錯誤,讓用一個漂亮的錯誤頁面顯示它們。

當做完了這些,你認識到,在RatioCalculatorMoneyCalculator中,你也應該這樣做,于是你拷貝/張貼,修改了它們兩個。

稍等一下,客戶更喜歡讓錯誤信息顯示成橘黃色的,而不是紅色的。于是,你再次拷貝/粘貼,再次修改一遍。

再退后一步

如果,我們不是修復這個不過,而是發現了一個普遍的要求?

日本韩国三级aⅴ在线观看為什么客戶會輸入 0 ?因為他犯了個錯誤。

日本韩国三级aⅴ在线观看這對我們的要求是什么?

  • 我們只需要這次防止用戶輸入 0 來避免“speedCalculationForm = 0”嗎?

  • 我們只需要讓“speedCalculationForm”日本韩国三级aⅴ在线观看里的數據合法就行了嗎?

  • 還是,我們要對所有的用戶輸入繼續校驗?

為什么不開發一個校驗工具包呢?

且慢!不要自己去開發一個!請退后一步想想,深呼吸,去使用現有的第三方校驗框架。

關于需求

日本韩国三级aⅴ在线观看我們,程序員,熱愛計算機技術。當你的客戶或老板,大聲的脫口說出他們想要的東西時,我們無法阻止,我們只能想象如何去實現它們。

但是,我們需要用更全面的眼光看問題。如果我們想對自己的工作更負責,我們應該去理解為什么他們會提出這樣的需求,而不是著急著去尋找解決方案。當然,這可能會占用你更多的精力。

是客戶真的需要“一個會躲避鼠標點擊的閃光的按鈕”嗎?還是他們需要的是另外一個功能——他們不了解的功能,需要你去幫他們定義的功能?這種事情同樣會發生在你自己身上!你真的需要用程序打開一個文件,往里面寫入一些信息嗎?還是,你真正需要的是一個日志系統?

退后一步看問題,看更大的藍圖、更完整的信息。雖然你是一個很優秀的編程高手,但編程的目的是為了解決問題。


支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區
Java幫幫公眾號生態

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

人工智能,爬蟲,學習教程

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

互聯網,職場,程序員那些事兒

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
合作品牌 非盈利生態-優質內容分享傳播者
關于我們
友鏈申請
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
全站內容非商業用途,內容來源于網友,并遵循 許可,如有異議請聯系客服。
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部