SOD 框架企業級應用數據架構實戰

深藍醫生

買這商品的人也買了...

商品描述

全書主要從系統架構師的角度,講述應用系統中所有有關數據問題的解決方案,這些方案小到一個具體的API使用,
大到整個系統架構的設計,從解決方案的合理性、易用性和擴展性來逐步設計擴展,
一步一步分析當前遇到的問題,給出這類問題的最佳實踐的解決方案。
通過對這個問題的分析解決過程,引導普通的開發人員擺脫煩瑣的、
枯燥無聊的數據增刪改查工作,完成從菜鳥到專家的蛻變過程。
本書適合於有一定編程開發基礎知識的程序員進一步學習掌握與數據應用相關的開發知識,
更適合於有一定開發經驗的程序員鞏固提高數據開發方面的理論知識,
也適合於打算進階系統架構師的朋友學習設計和使用系統架構。

作者簡介

鄧太華

曾經使用筆名“深藍醫生”在CSDN等博客網站上寫了很多博客文章,現為某電商項目創業公司創始人。
非計算機專業,2002年誤打誤撞進入IT領域,先是做計算機硬件和網絡維護,後成為專職程序員。
2004年到北京發展,2008年開始擔任軟件架構師,因此在系統架構方面有超過10年的工作經驗。

在做技術的過程中遇到了各種“坑”,將解決這些“坑”的經驗匯集起來便有了PDF.NET框架:一個專注於數據開發的框架。
2010年將PDF.NET開源,2014年更名為SOD框架。
此外,還推出了一個基於WCF的消息服務框架——iMSF,
是基於長連接TCP雙工通信的支持消息推送和Actor模型的消息服務框架(此框架在2015年開源)。
除了研究技術問題,對管理和業務問題也比較感興趣,2013年提出了“三維度(場景+角色+時間)”理論,
是一種符合國人思維方式的業務分析方法論。

目錄大綱

目錄
第1章軟件開發中的“二·八定律”1
1.1大部分項目是沒有技術含量的1
1.2大部分時間是在做重複的增刪改查工作4
1.3工作996,生病ICU5
1.4迷茫的開發人員9

第2章數據的基礎概念和應用10
2.1數據漫話史——抽象、表示與存儲10
2.1.1“數”的起源10
2.1.2原始的數字15
2.1.3河圖與十進制16
2.1.4八卦與二進制19
2.1.5易經與量子理論31
2.1.6數據、信息和知識36
2.1.7數據的載體——存儲介質44
2.2算法+數據結構=程序52
2.3數據與面向對象編程55
2.4數據與函數式編程56
2.5數據的成本58
2.5.1CPU寄存器和內存數據58
2.5.2進程內緩存和分佈式緩存59
2.5.3持久化數據源62
2.6數據與消息62
2.6.1命令、事件與消息62
2.6.2實時消息與消息隊列64
2.7XML與數據文件66
2.8關係數據庫與NoSQL70
2.9大數據71

第3章數據庫應用開發73
3.1數據庫分類73
3.1.1嵌入式數據庫73
3.1.2服務器數據庫75
3.2數據庫驅動程序76
3.2.1ODBC76
3.2.2OLEDB78
3.2.3ADO.NET79
3.2.4SOD84
3.3數據訪問組件的最佳實踐89
3.3.1數據訪問模式89
3.3.2配置數據連接93
3.3.3管理數據連接對象96
3.3.4優化數據命令對象100
3.3.5查詢中使用長連接104
3.3.6使用跨組件的事務107
3.3.7跟踪SQL執行情況114
3.4數據庫應用開發基礎123
3.4.1常見的SQL工具123
3.4.2SQL標準126
3.4.3SQL方言128
3.4.4存儲過程129
3.4.5參數化查詢130
3.5數據查詢與映射136
3.5.1SQL滿天飛的窘境136
3.5.2SQLMAP的架構規範137
3.5.3集中管理SQL查詢141
3.5.4定義SQL與程序的映射144
3.5.5處理複雜查詢152
3.5.6自動生成代碼155

第4章對象關係映射160
4.1對象與關係的阻抗160
4.1.1話語環境的思想衝突160
4.1.2結構的不匹配163
4.1.3繼承關係的難題164
4.1.4複雜的類關係167
4.1.5正視“阻抗誤配”168
4.2數據的容器——實體類170
4.2.1實體類的元數據映射170
4.2.2數據類型的映射173
4.2.3DBNull與null175
4.2.4強類型映射與弱類型映射176
4.2.5日期類型的處理177
4.2.6枚舉類型的屬性179
4.2.7實體類與DTO的映射181
4.3實體類的創建184
4.3.1默認方式創建184
4.3.2動態創建實體類185
4.3.3映射任意查詢結果186
4.3.4映射存儲過程190
4.3.5實體類生成工具193
4.3.6Code First197
4.4數據的更改狀態199
4.4.1更改通知接口199
4.4.2查詢更改狀態201
4.4.3重置更改狀態202
4.5實體類屬性的訪問203
4.5.1設置數據203
4.5.2獲取數據205
4.5.3數據訪問事件208
4.5.4索引器210
4.6實體對象查詢212
4.6.1實體對象查詢與數據訪問組件212
4.6.2查詢單個實體對象214
4.6.3查詢實體對象列表(List)216
4.6.4查詢父子實體219
4.6.5更新和刪除實體對象223
4.6.6高效插入實體對象列表的最佳實踐224
4.6.7微型ORM228
4.7ORM查詢語言——OQL231
4.7.1實體對象查詢的缺陷231
4.7.2JAVA框架中的ORM查詢語言233
4.7.3LINQ——EF框架的ORM查詢語言233
4.7.4OQL——SOD框架的ORM查詢語言236
4.7.5簡單查詢入門237
4.7.6鍊式表達式與多級表達式245
4.7.7操作符重載249
4.7.8指定查詢的實體類屬性253
4.7.9查詢條件表達式255
4.7.10構建複雜的查詢條件261
4.7.11靈活的排序方式266
4.7.12簡單的分頁方法269
4.7.13聚合運算277
4.7.14多實體類聯合查詢279
4.7.15高級子查詢287
4.7.16分組過濾289
4.7.17使用數據庫函數292
4.7.18使用數據庫鎖295
4.7.19批量更新和插入299
4.7.20動態條件查詢303
4.7.21使用接口查詢306
4.8大數據量查詢309
4.9實體類的序列化311
4.9.1應用場景建議311
4.9.2XML序列化313
4.9.3JSON序列化316
4.9.4二進制序列化318

第5章數據窗體開發321
5.1智能表單321
5.1.1數據控件322
5.1.2查詢控件324
5.1.3驗證控件327
5.1.4命令控件329
5.1.5數據綁定331
5.1.6表單數據填充331
5.1.7表單數據收集333
5.1.8表單數據保存334
5.2Web Form數據窗體開發335
5.2.1Web數據控件336
5.2.2Web窗體數據綁定342
5.2.3Web窗體表單處理346
5.2.4Web窗體列表和分頁控件355
5.3WinForms數據窗體開發356
5.3.1WinForms數據控件356
5.3.2WinForms窗體數據綁定359
5.3.3WinForms窗體表單處理361
5.4WinForms/WPF MVVM框架367
5.4.1MVVM原理簡介367
5.4.2MVVM窗體接口373
5.4.3MVVM命令處理接口375
5.4.4MVVM窗體示例382

第6章分佈式系統架構與數據開發398
6.1三層和多層應用架構398
6.1.1分層的網絡架構398
6.1.2軟件三層架構399
6.1.3SOD分層解決方案401
6.1.4多層應用架構403
6.2DDD架構403
6.2.1軟件複雜多變的難題403
6.2.2領域模型設計406
6.2.3領域驅動架構407
6.3DCI架構409
6.3.1DCI架構的本質410
6.3.2DCI架構的實現411
6.3.3業務分析三維度理論412
6.4洋蔥架構416
6.5分佈式混合架構實戰418
6.5.1系統分層模型419
6.5.2應用軟件架構422
6.5.3模塊式架構426
6.5.4混合式三層架構436
6.5.5消息服務框架437
6.6並發更新442
6.6.1電商平台的“減庫存”難題443
6.6.2Entity Framework的樂觀並發447
6.6.3並發更新小結449
6.7多數據源查詢449
6.7.1分佈式環境中的多數據源449
6.7.2集成開發工具的多數據源查詢451
6.8讀寫分離457
6.8.1應用場景457
6.8.2快照複製458
6.8.3事務複製460
6.8.4讀寫分離應用架構461
6.9分庫和分錶464
6.9.1垂直(縱向)切分464
6.9.2水平(橫向)切分466
6.9.3分庫分錶衍生的問題468
6.9.4使用分區表473
6.9.5使用鏈接服務器477
6.9.6SOD框架分庫分錶480
6.10分佈式事務493
6.10.1分佈式事務簡介493
6.10.2分佈式事務實現層面493
6.10.3二階段提交協議(2PC)496
6.10.4三階段提交協議(3PC)498
6.10.5基於微服務的3PC分佈式事務500
6.10.6實例——電商下單的分佈式事務514

第7章企業級解決方案應用示例535
7.1內存數據庫535
7.1.1架構設計536
7.1.2數據的持久化538
7.1.3構造“數據倉庫”539
7.1.4移花接木540
7.1.5打造“數據集市”542
7.1.6使用“內存數據庫”實例544
7.2異構數據庫同步546
7.2.1異構數據庫平台546
7.2.2數據同步流程和方案547
7.2.3SOD框架數據同步方案550
7.2.4實例介紹——數據導出554
7.2.5實例介紹——數據導入561
7.2.6實例介紹——演示程序568
7.3應用層事務數據複製579
7.3.1數據複製簡介579
7.3.2應用層事務日誌581
7.3.3應用層數據複製591
7.3.4實現方案設計593
附錄ASOD框架和開源社區613
A.1SOD框架發展歷史613
A.2.NET Core跨平台支持615
A.3向其他平台移植的可能性619
A.4SOD框架開源社區621
A.4.1GitHub和碼雲621
A.4.2Nuget程序包622
A.4.3社區資源625
A.4.4社區反饋627
後記628