這問題就跟一般 RDBMS 想在資料插入後取得自動產生的 ID 是一樣的意思~
不過在 MongoDB 上,這個問題相對似乎簡單了許多~。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification.
- Bertrand Meyer
Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems.
- Charles Connell
註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
註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日 星期三
一致性選擇
基本的一致性分類好像是「強一致性」和「弱一致性」,其中在 NoSQL 蠻常看到的「最終一致性」是弱一致性的其中一種
強一致性就是一般的關聯式資料庫保障的特性,即資料修改後,所有人馬上都會看到最新的資料;
弱一致性大致上就是資料更新後,有些人仍然會看到舊的資料。必須經過某段時間之後,慢慢才會讓所有人都獲得最新的資料。
強一致性就是一般的關聯式資料庫保障的特性,即資料修改後,所有人馬上都會看到最新的資料;
弱一致性大致上就是資料更新後,有些人仍然會看到舊的資料。必須經過某段時間之後,慢慢才會讓所有人都獲得最新的資料。
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 刪除。
訂閱:
文章 (Atom)