[經驗] 開發時應該考慮的大量資料問題
前陣子接手的一個 android 程式
它出現幾個我無法接受的問題
在程式的開發初期,因為時程趕,一切以功能優先
在這種情況下,忽略了幾個問題:
想法實際上比做法更為重要,我強調在處理這些問題時,應該有清楚的想法,
而不是只是抄別人的做法
方向:
它出現幾個我無法接受的問題
- 資料量大時 Crash
- 捲動速度慢
在程式的開發初期,因為時程趕,一切以功能優先
在這種情況下,忽略了幾個問題:
- 效率:因為初期沒有實體機器,都是用模擬器開發,勿以為在實機上就一定會夠快
- 記憶體:有些老師可能會跟人員說,Java 不用像 C 一樣管理記憶體,它會管理的很好,但是它還是不能讓開發人員亂寫的,在這裡,記憶體使用的問題也是被忽略了
- 大量資料:在開發功能階段,往往都只用個位數的資料在操作,但是如果沒考慮到資料量大的情況,到時就很難處理了
- 合理的行為:制定規格的人本身沒有足夠的使用 android 經驗,天馬行空的設計自己想要的 UI 行為,造成許多開發上的困難,甚至做出一些對架構不利的改動
想法實際上比做法更為重要,我強調在處理這些問題時,應該有清楚的想法,
而不是只是抄別人的做法
方向:
- 對於重覆的資源,做有效的管理,避免浪費過多的重覆成本在處理這些物件上,例如使用 static 物件,或是放在一個存活時間較長的物件上
- 找出花費成本最高的運算,如讀檔、網路、資料庫操作
- 使用一些延遲動作的技巧,來讓使用者感覺反應時間加快,如有互動的提示行為,在載入大量資料時顯示進度,雖然時間可能變長,但卻會讓使用者誤以為等的時間比較短
- 有需要的話,降低物件的階層數,很多層的物件,由其是 UI 元件,太多層級,可能造成較大的負擔
留言