20631,19776

Eva -- 使用者, 網路, 資料庫, 與JAVA程式之間的溝通利器.

Eva -- 使用者, 網路, 資料庫, 與JAVA程式之間的溝通利器.

您的評分:


出版日期:2013/03/29
出版:tedlin.tw / eva.logntw.com
作者:Ted Lin
語言:繁體中文(台灣)
頁數:266
產品類型:電子書
檔案格式:PDF(適合平板)

零售

零售
)檢舉
免費試閱
嵌入閱讀器至您的網頁

內容簡介



前言


我還記得我剛認識Java的1998年, 那是要用數據機去電話播接的私人BBS站還未消失, Internet在台灣剛流行起來的年代, 當然Google也還不流行, 學習Java程式設計的資料也以書本雜誌為主, 而我記得頭一個使用的IDE (Integrated development environment), 是現在己經消失的Kawa, 而我學習Java的主要用途, 純粹是學習物件導向程式設計的興趣.


在沒有太多的參考資料下, 當年我只看完一本薄薄的Java參考書, 就足夠讓我開始寫起聊天室, Java Applet, 資料庫的程式, 去感受程式設計的樂趣. 而時間轉移到在2013年的現在, 雖然JDK己被下載超過數十億次, 已經能做更多事情, 能夠參考資料也大量氾濫, 但程式設計師與樂趣之間的距離卻反而拉遠了. 一位2013年的Java程式設計師, 在學習完完整的Java語法之後, 只是向Java程式設計跨出了一小步, 相較於其它種程式語言的使用者, 等待Java程式設計師去面臨的挑戰更多.


要成為一個受大家肯定的Java程式設計師, 需要學習堆積如山的使用技巧, 包括在企業內的應用, 在手機上的應用, 如何使用IDE, 如何使用各式工具, 最後還有過程漫長, 多種變化方式的, 學習如何組合各式各樣framework, 學習一邊去服從它們的運作規則, 但同時又想讓它們服從於自己的需求. 在此目的下, 為了使用framework而所需要進行的繁瑣設定與校調, 雖然都不是一種設計的活動, 但卻都己成為目前Java程式設計中的常態活動.


我應該慶幸自己接觸Java接觸得算早, 因為看到目前的Java環境, 恐怕很難燃起主動去學習的興趣. 現在的Java初學者, 其面臨環境更複雜, 壓力也比以前大. 當時的我, 有時間慢慢地消化知識, 正確地去理解使用某項設計的原因; 但現在的初學者, 為了在短期限內成為戰力, 面對當前令人眼花撩亂的Java環境, 常常只能全盤接收, 匆忙吞下, 沒有懷疑的時間.


我偶爾會在論壇或BBS上, 聽到有人討論某個framework可以解決某種問題, 但令人疑惑的是, 我卻鮮少在討論中看到有人提及使用某個framework的’C/P值’ (cost-performance ratio). 在這個可說是framework百花齊放的時代, 若不從效益的觀點去篩選工具, 很快就會筋疲力竭, 燃盡熱情. 而對於開發老手來說, 對於framework的優缺點可能己了然於心; 但對於初學者來說, 若沒有一種評選依據可參考, 則只能犧牲許多寶貴時間於失敗的嘗試之上.



==========================================================================================


本書從一個工具開發者的觀點傳達第一手的資訊, 說明一組新的程式語言工具的開發原因, 使用效果, 與跟其它工具的差異之處. 其所涵蓋的每個設計內容, 都有其使用的理由與應用的時機, 值得您細細地品嚐與欣賞.



章節目錄



內容

1. 前言 10
1.1. 什麼是Framework 11
1.2. Framework的迷思 12
1.2.1. 工具仍有助益, 但其型式值得被改革 13
1.3. 新趨勢與新技術 14
1.3.1. 簡單型式的新工具 15
1.4. 排版的方式 17
1.5. 程式範例的下載 18

2. Eva與資料物件 19
2.1. 背景知識的需求 21
2.2. 資料物件的型別與規格 22
2.2.1. Bean與Property 23
2.2.2. Entity 26
2.2.2.1. 定義Entity時的注意事項 32
2.2.3. Struct 33
2.3. 自動維護好的物件相等性 37
2.3.1. 參考物件與數值物件的差異 39
2.4. 不同用途的資料物件 40
2.4.1. 空白資料物件 40
2.4.2. 唯讀的資料物件 42
2.4.3. 條件物件 43
2.4.4. 修改用的資料物件 47
2.4.4.1. *如何判斷Property被修改過 49
2.4.5. 資料物件狀態的轉變 50
2.4.5.1. *不理會物件的狀態變化 51
2.4.6. *讓過時的資料物件消失 52

3. Eva_ORM 54
3.1. 在了解細節前先試一下 54
3.2. 我們的ORM工具 57
3.2.1. Property與Column的對映 61
3.2.2. 可使用的Property型別 62
3.2.2.1. *資料轉換的Converter架構 63
3.2.2.2. *自訂Converter 66
3.2.2.3. *指定使用的Converter 70
3.3. 建立與使用Eva_ORM應用程式 74
3.3.1. 一個Entity對映一個資料表 75
3.3.2. 定義Entity的選項 76
3.3.2.1. 被對映資料表與其Column的命名 79
3.3.2.2. *更改預設命名的產生方式 85
3.3.3. 需有Key Property存在的場合 87
3.3.3.1. 自動編號的Key Property 89
3.3.4. 設定Property可為null 90
3.3.4.1. 新增物件的先後順序 91
3.3.5. Collection Property的對映 93
3.3.5.1. *Collection Property的命名 94
3.3.6. *執行效能或操作的方便性 102
3.3.7. *自訂Dialect 104
3.3.8. DBConnectionProvider與Connection Pool 111
3.3.9. *自訂DBConnectionProvider 114
3.3.9.1. *透過Web Service的使用與交易的保留 118
3.3.9.2. *連往多個資料庫 122
3.3.9.3. *分散式交易 125
3.4. 建立資料表的Schema 135
3.4.1. 自動建立的Schema 142
3.5. 對資料物件的操作 143
3.5.1. 如何找到所需的操作方法 153
3.5.2. 從簡單到複雜的條件設定方式 155
3.5.2.1. 為其它操作加入條件 164
3.5.3. *資料的一致性或查詢效能 166
3.5.4. 可隨時調整的JDBC參數 168
3.5.5. 巢狀Transaction與悲觀鎖定 169
3.5.6. 操作Collection Property 171
3.5.6.1. 副作用的差異 175
3.5.6.2. *多個應用程式同時存取的問題 175
3.5.6.3. *直接存取Collection Entity 178
3.5.7. 關於資料庫操作的回應 182
3.5.8. *自訂Collection型別 183
3.5.9. *使用Entity物件的Cache 193
3.5.10. 關注所執行的SQL命令 196
3.6. 預先載入 197
3.7. 使用前的評估 197

4. Eva_Struct 198
4.1. 程式語言與Struct 198
4.1.1. Java與Struct 199
4.1.2. 各種媒體與Struct 199
4.2. 我們的Struct工具 200
4.2.1. 指標 203
4.2.2. *無正負號變數 207
4.3. 預先載入 211

5. Eva_IOC 212
5.1. 其它的IOC工具 212
5.2. 我們的IOC工具 213
5.2.1. 我們的AOP工具 220
5.2.2. *透過AOP功能管理Transaction 225
5.2.3. *透過AOP功能操作資料庫 229
5.2.4. *AOP功能與契約式設計 235
5.3. 預先載入 239

6. Eva_Sort 240
6.1. *優先排序與部份排序 244

7. Eva_Cache 246
7.1. 我們的Cache工具 246
7.1.1. 讓命中率做出指數等級的提升 247
7.1.2. 操作Cache也像操作資料庫 248
7.1.2.1. *有條件地讓資料保持一致 254
7.1.3. *如何最佳地使用Cache 255

8. 附錄 258
8.1. Eva與其它工具 258
8.1.1. 在Web環境中執行Eva 258
8.1.2. *為Eva選擇不同的Compiler 260
8.1.3. *Eva_ORM與其它ORM工具一併使用 261
8.1.4. *Eva_Cache與其它的Cache併用 261
8.1.5. *Eva_IOC與其它的IOC工具併用 262



留言Facebook 留言