书籍详情
SOD框架企业级应用数据架构实战
作者:邓太华 著
出版社:北京航空航天大学出版社
出版时间:2020-06-01
ISBN:9787512432109
定价:¥109.00
购买这本书可以去
内容简介
全书主要从系统架构师的角度,讲述应用系统中所有有关数据问题的解决方案,这些方案小到一个具体的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
SOD框架“企业级”应用数据架构实战第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
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
SOD框架“企业级”应用数据架构实战第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
猜您喜欢