前一陣子在公司收到USER的問題信
原本可以透過UI從資料庫撈取全部資料
但過了一天之後同樣的動作卻發生404的錯誤訊息...
做了許多交叉測試
最後發現當資料庫筆數超過一定數量(大約三萬筆),就會造成這種情形...
思考了一陣子並且與主管及同事討論後
主要的解決方案方向是,將原本一次撈取三萬筆,分為兩次撈取
但是若將來資料超過 7 萬筆,又會遇到相同問題,因此這個解決方案無法使用
雖然我本身有 HTML、PHP的開發經驗,但因為公司的專案都是用 JSP + SSH(struts spring hibernate) 撰寫
加上我才來公司一個多月
所以對於這方面來說,我著實是一個菜鳥,怕改了這個 CODE,別的問題又接踵而來
而且公司的測試環境也沒有很完善,導致開發、維護都綁手綁腳...
但畢竟是公司的事情,總不能放著不管
因此花了一些時間把測試環境及測試用的資料庫都與 Production 同步
接著就開始逐行程式碼研究,也慢慢的把程式加上自己理解的註解
看了一段時間後也不知道該從哪邊下手改寫,此時不知道哪來的靈感
發現我根本都沒有去翻 LOG 檔案,一看才發現原來問題是因為 EXCEL 檔案過大(6MB)才導致的
後來發現了有一行程式碼
Row dataRow = sheet.createRow((short) m + sheetRowNum);
沒錯..就是這個 short 害我跟同事將近耗了一個禮拜的時間在 Debug ...
把它改為
Row dataRow = sheet.createRow( m + sheetRowNum);
直到目前都沒有遇到問題了~真是感動!!!
所以說阿...基本的程式觀念很重要以外,會看錯誤訊息也非常的重要!
因為你不知道程式在運行的時候到底是長怎樣
這時候有 LOG 幫助下很容易讓你朝對的方向去思考解決方案
另外在寫 CODE 的時候,千萬要註解當時的邏輯想法,讓往後維護的開發人員能夠了解你當初為什麼會這樣寫
以上就是我剛進公司遇到的棘手問題