這問題就跟一般 RDBMS 想在資料插入後取得自動產生的 ID 是一樣的意思~
不過在 MongoDB 上,這個問題相對似乎簡單了許多~。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2013年6月21日 星期五
2013年6月10日 星期一
利用 Guava 的 MapMaker 產生 weak value 版的 WeakHashMap
續前篇「WeakHashMap 的使用」
目標是想要有個 Map,能夠快速儲存、取得我存在 Map 上的某個 Object;但當 Object 不再使用的時候,它又能自動消失。
由於根據自己的測試(以及 [1] 中網友 Cowan 的回應),WeakHashMap 似乎不太適合這個用途,因此就想來嘗試 [1] 中提到的 MapMaker 了。
目標是想要有個 Map,能夠快速儲存、取得我存在 Map 上的某個 Object;但當 Object 不再使用的時候,它又能自動消失。
由於根據自己的測試(以及 [1] 中網友 Cowan 的回應),WeakHashMap 似乎不太適合這個用途,因此就想來嘗試 [1] 中提到的 MapMaker 了。
WeakHashMap 的使用
通常使用 HashMap 的目的,就是希望在記憶體中存放一張列表,而需要列表中的某個東西時,能夠很快地把想要的物件取出來。
但有時又希望當 HashMap 上的物件沒有使用時,能夠從記憶體中消失~
一般狀況下這必須要由程式設計師手動處理,也就是當確定某個 Key 不再需要時,手動將它從 HashMap 中移除。
不過也許也可以利用 Java 的 Weak Reference 特性來處理,即 WeakHashMap 這個物件。
但有時又希望當 HashMap 上的物件沒有使用時,能夠從記憶體中消失~
一般狀況下這必須要由程式設計師手動處理,也就是當確定某個 Key 不再需要時,手動將它從 HashMap 中移除。
不過也許也可以利用 Java 的 Weak Reference 特性來處理,即 WeakHashMap 這個物件。
HashMap 的 Concurrency 問題
因為目前可能需要用沒有 Concurrent Package 版本的某個 HashMap 相關的 Class
所以要先整理一下 HashMap 系列的東西,在多執行緒環境下可能的問題。
所以要先整理一下 HashMap 系列的東西,在多執行緒環境下可能的問題。
2013年6月7日 星期五
2013年6月6日 星期四
(書籤) SOA Design Patterns
在系統設計的階段,常常遇到一些問題,需要從系統設計面就嘗試去解決
目前已經有不少眾所皆知的 Design Pattern 可以解決某些常見的問題
所以記錄一下可以查詢的地方!
參考資料:
1、SOA Patterns
2、10 Soa Design Patterns Every Architect Should Know
目前已經有不少眾所皆知的 Design Pattern 可以解決某些常見的問題
所以記錄一下可以查詢的地方!
參考資料:
1、SOA Patterns
2、10 Soa Design Patterns Every Architect Should Know
2013年6月5日 星期三
2013年6月4日 星期二
衡量 ReentrantReadWriteLock 的記憶體使用量
考慮使用 ReentrantReadWriteLock 來處理 Concurrent 的問題
但要這樣做的話,ReentrantReadWriteLock 有可能要全部暫存在記憶體裡面~
因此要簡單地先衡量使用 ReentrantReadWriteLock 有可能要處理多少程度的記憶體問題。
但要這樣做的話,ReentrantReadWriteLock 有可能要全部暫存在記憶體裡面~
因此要簡單地先衡量使用 ReentrantReadWriteLock 有可能要處理多少程度的記憶體問題。
用 Java 處理 Microsoft Excel (2):使用 Apache Poi
續前文「用 Java 處理 Microsoft Excel (1):使用 JXL」
目標一樣是要把包含某些 key 的列全部刪掉~這次改用 Apache Poi [1] 來嘗試。
目標一樣是要把包含某些 key 的列全部刪掉~這次改用 Apache Poi [1] 來嘗試。
用 Java 處理 Microsoft Excel (1):使用 JXL
因為要幫同事處理 Excel 檔,因此嘗試了使用 JXL 這個 Open Source Library [1] 來試試看。
目標是在別的地方找到了一串 key,要在 Excel 裡面把對應的 Row 刪除。
目標是在別的地方找到了一串 key,要在 Excel 裡面把對應的 Row 刪除。