寫的不是程序-------是態度

小弟不才,有幸和公司其他幾位技術牛人共同開發CDN系統。在開發Peer模塊的過程中,有這個一個看上去很簡單的task給到我。簡單的描述一下需求:刪除上傳目錄中的臨時文件,這些臨時文件以 “upload_”開頭,”.tmp”結尾。同時也會生成很多的源文件數據信息也保存在upload目錄下。於是小弟寫出瞭如下汗顏的代碼(僞代碼,僅供參考,本文重點不講代碼)

Private void deleteFile(String path) {
/*
* Do something
* Check the file name and file path to match the special conditions
*/
File[] deleteFiles = directory.listFiles(new FileFilter() {

public boolean accept(File pathname) {
Date lastModifiedDate = new Date(pathname.lastModified());
long interval = (now.getTime() - lastModifiedDate.getTime()) / 1000;

return interval > DELETE_TIME_INTERVAL;//大於一定時間的文件才被刪除 }
});
for (File df : deleteFiles) {
FileUtils.forceDelete(df);
}
}

小弟以爲上面這部分代碼就可以work了,可以完成了所以的工作!於是乎就提交,打包,放到測試環境開始run!結果可想而知,導致測試服務器上傳的視頻源文件和圖片源文件信息丟失,杯具呀!幸好是測試服務器,只能這樣感嘆一句。
好了,進入本文重點。其實主要是想再次給自己提醒一下:寫程序不能想當然,不能覺得是怎麼樣就是怎麼樣,所以寫的不是程序,其實是態度。
首先, 刪除文件必須考慮到刪除文件的訪問權限,是否可以被刪除,如果不能被刪除,如何處理這種case,雖然我利用了第三方的API,但是這個API接口是否能夠滿足自身開發的程序的需求,這個需要嚴格審查。第二點,刪除特殊文件目錄先的文件是,如果這個目錄下的文件目錄,修改時間是大於設定的刪除時間,但是此時文件夾中還包括剛剛上傳的文件,如何處理這種特殊的case。第三,刪除文件過程中,還可能遇到一些特殊的異常case,是否是依靠一個第三方API就能搞定。
看似很小小的一個刪除文件的case,其實後邊本質反應的是一個程序開發人員寫程序的嚴謹的態度,嚴謹的做事風格。這一點在外企體現的更爲明顯,我已近不是第一次因爲這個問題讓別的同事提醒了。記住一句話:小公司教人做事,大公司教人做人。(沒有歧視小公司的意思,江湖上流傳這句話,用在這裏挺合適)。如果一個程序員過不了這一關,就永遠無法成長爲一個技術牛人。這句話希望與各位博友共勉。
所以這裏引用一下公司同事說過的話。什麼是寫程序?其實就是滿足如下三點就能寫出很好的程序。
1. 算法和數據結構;
2. 儘可能考慮到正常的case;
3. 儘可能考慮到異常的case。
我覺得如上三句話總結的比較好,所以在此應用,有不同理論的同學,還請息怒。
所以,寫出本人主要是想讓自己記住,如何從一個程序員成長爲一個技術大牛,其實很簡單:寫的不是程序,是態度!細節決定成敗!
以上總結希望能夠和各位共勉!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章