框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) mobi 下载 网盘 caj lrf pdf txt 阿里云

框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)电子书下载地址
- 文件名
- [epub 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) epub格式电子书
- [azw3 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) azw3格式电子书
- [pdf 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) pdf格式电子书
- [txt 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) txt格式电子书
- [mobi 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) mobi格式电子书
- [word 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) word格式电子书
- [kindle 下载] 框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版) kindle格式电子书
内容简介:
《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》从最基本的设计原则和准则出发,全方位介绍了设计框架的最佳实践,是微软工程师从.NET Framework开发伊始到现如今的.NET这二十来年间宝贵经验的总结。
与第2版发布时的2008年相比,今天的软件开发范式用翻天覆地来形容也不为过,容器化、云服务、跨平台、DevOps等,都对今天的软件开发者和框架设计者提出了更高的要求。本书对第2版的内容进行了全面的更新,以适应当下发展的潮流。
《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》虽然是面向.NET平台上的框架设计的,但对其他平台的框架设计同样具有非凡的借鉴价值。通过阅读本书,读者可以了解到如何设计出一个对使用者而言简单、易用且具有一致性的优秀框架。
书籍目录:
导论
1
1.1 设计精良的框架的特质
2
1.1.1 设计精良的框架是简单的
2
1.1.2 设计精良的框架设计成本高昂
3
1.1.3 设计精良的框架充满权衡
4
1.1.4 设计精良的框架会借鉴过往经验
5
1.1.5 设计精良的框架旨在不断发展
5
1.1.6 设计精良的框架是完整统一的
6
1.1.7 设计精良的框架是一致的
6
2 框架设计基础
7
2.1 渐进式框架
9
2.2 框架设计基本原则
12
2.2.1 场景驱动设计原则
12
2.2.2 低门槛原则
18
2.2.3 对象模型自文档化原则
22
2.2.4 分层架构原则
27
总结
29
3 命名准则
30
3.1 大小写约定
30
3.1.1 标识符的大小写规则
31
3.1.2 大写首字母缩写词
33
3.1.3 大写复合词和常见术语
36
3.1.4 大小写敏感
38
3.2 通用命名约定
38
3.2.1 词汇选择
39
3.2.2 使用简写和首字母缩写词
41
3.2.3 避免使用特定于编程语言的名称
41
3.2.4 命名现有 API 的新版本
43
3.3 程序集、DLL 和包的命名
45
3.4 命名空间的命名
47
3.4.1 命名空间和类型名称的冲突
48
3.5 类、结构体和接口的命名
50
3.5.1 泛型参数的命名
52
3.5.2 通用类型的命名
52
3.5.3 枚举的命名
53
3.6 类型成员的命名
55
3.6.1 方法的命名
55
3.6.2 属性的命名
55
3.6.3 事件的命名
57
3.6.4 字段的命名
58
3.7 命名参数
59
3.7.1 命名运算符重载参数
59
3.8 命名资源
60
总结
60
4 类型设计准则
61
4.1 类型和命名空间
63
4.2 在类和结构体之间选择
66
4.3 在类和接口之间选择
68
4.4 抽象类设计
75
4.5 静态类设计
76
4.6 接口设计
77
4.7 结构体设计
79
4.8 枚举设计
83
4.8.1 设计标记枚举
89
4.8.2 添加枚举值
92
4.9 嵌套类型
93
4.10 类型和程序集元数据
95
4.11 强类型字符串
97
总结
100
5 成员设计
101
5.1 一般成员设计准则
101
5.1.1 成员重载
101
5.1.2 显式实现接口成员
111
5.1.3 在属性和方法之间选择
114
5.2 属性设计
119
5.2.1 索引属性设计
120
5.2.2 属性变更通知事件
123
5.3 构造函数设计
124
5.3.1 类型构造函数准则
130
5.4 事件设计
132
5.5 字段设计
136
5.6 扩展方法
139
5.7 运算符重载
146
5.7.1 重载 operator==
149
5.7.2 转换运算符
149
5.7.3 比较运算符
151
5.8 参数设计
152
5.8.1 在枚举参数和布尔参数之间选择
154
5.8.2 参数验证
156
5.8.3 参数传递
159
5.8.4 参数数量可变的成员
162
5.8.5 指针参数
165
5.9 在成员签名中使用元组
166
总结
171
6 可扩展性设计
172
6.1 可扩展性机制
172
6.1.1 非密封类
172
6.1.2 受保护的成员
174
6.1.3 事件和回调
175
6.1.4 虚成员
180
6.1.5 抽象(抽象类和接口)
181
6.2 基类
183
6.3 密封
185
总结
187
7 异常
188
7.1 抛出异常
192
7.2 选择抛出正确的异常类型
196
7.2.1 错误消息设计
199
7.2.2 异常处理
200
7.2.3 包装异常
205
7.3 使用标准异常类型
206
7.3.1 Exception和SystemException
206
7.3.2 ApplicationException
207
7.3.3 InvalidOperationException
207
7.3.4 ArgumentException、ArgumentNullException 和 ArgumentOutOfRangeException
207
7.3.5 NullReferenceException、IndexOutOfRangeException 和 AccessViolationException
208
7.3.6 StackOverflowException
208
7.3.7 OutOfMemoryException
209
7.3.8 ComException、SEHException和ExecutionEngineException
210
7.3.9 OperationCanceledException 和 TaskCanceledException
210
7.3.10 FormatException
210
7.3.11 PlatformNotSupportedException
211
7.4 设计自定义异常
211
7.5 异常和性能
212
7.5.1 测试者-执行者模式
212
7.5.2 Try模式
213
总结
216
8 使用准则
217
8.1 数组
217
8.2 特性
220
8.3 集合
223
8.3.1 集合参数
224
8.3.2 集合属性和返回值
225
8.3.3 在数组和集合之间选择
229
8.3.4 实现自定义集合
230
8.4 DateTime 和 DateTimeOffset
231
8.5 ICloneable
233
8.6 IComparable
和 IEquatable
234
8.7 IDisposable
236
8.8 Nullable
236
8.9 Object
237
8.9.1 Object.Equals
237
8.9.2 Object.GetHashCode
238
8.9.3 Object.ToString
240
8.10 序列化
241
8.11 Uri
243
8.11.1 System.Uri 的实现准则
244
8.12 System.Xml 的使用
245
8.13 相等运算符
246
8.13.1 值类型上的相等运算符
248
8.13.2 引用类型上的相等运算符
248
9 通用设计模式
249
9.1 聚合组件
249
9.1.1 面向组件的设计
251
9.1.2 因子类型
253
9.1.3 聚合组件准则
254
9.2 异步模式
256
9.2.1 选择异步模式
256
9.2.2 基于任务的异步模式
258
9.2.3 异步方法的返回类型
263
9.2.4 为现有的同步方法制作一个异步变体
265
9.2.5 异步模式一致性的实现准则
268
9.2.6 经典异步模式
272
9.2.7 基于事件的异步模式
273
9.2.8 IAsyncDisposable
273
9.2.9 IAsyncEnumerable
273
9.2.10 await foreach 的使用准则
274
9.3 依赖属性
276
9.3.1 依赖属性设计
277
9.3.2 附加属性的设计
279
9.3.3 依赖属性校验
280
9.3.4 依赖属性变更通知
280
9.3.5 依赖属性中的值强制
281
9.4 Dispose 模式
282
9.4.1 基本Dispose模式
284
9.4.2 可终结类型
290
9.4.3 限定作用域的操作
293
9.4.4 IAsyncDisposable
296
9.5 工厂
299
9.6 LINQ 支持
303
9.6.1 LINQ 概览
303
9.6.2 实现 LINQ 支持的方法
304
9.7 可选功能模式
309
9.8 协变和逆变
312
9.8.1 逆变
315
9.8.2 协变
316
9.8.3 模拟协变模式
319
9.9 模板方法
321
9.10 超时
323
9.11 XAML 可读类型
324
9.12 操作缓冲
326
9.12.1 数据转换操作
338
9.12.2 向缓冲区中写入固定大小或预定大小的数据
343
9.12.3 使用 Try-Write 模式向缓冲区中写入数据
344
9.12.4 部分写入缓冲区和OperationStatus
348
9.13 最后
353
附录A C#编码风格约定
354
A.1 通用风格约定
355
A.1.1 花括号的使用
355
A.1.2 空格的使用
357
A.1.3 缩进的使用
358
A.1.4 垂直空白
360
A.1.5 成员修饰符
361
A.1.6 其他
362
A.2 命名约定
367
A.3 注释
368
A.4 文件组织
369
附录B 过时的准则
371
B.3 命名准则中的过时准则
371
B.3.8 命名资源
371
B.4 类型设计准则中的过时准则
372
B.4.1 类型和命名空间
372
B.5 成员设计准则中的过时准则
374
B.5.4 事件的设计
374
B.7 异常设计准则中的过时准则
375
B.7.4 设计自定义异常
375
B.8 常见类型使用准则中的过时准则
376
B.8.10 序列化
376
B.9 通用设计模式中的过时准则
383
B.9.2 异步模式
383
B.9.4 Dispose 模式
394
附录C API规范示例
398
附录D 不兼容变更
403
D.1 修改程序集
404
D.1.1 改变程序集的名称()
404
D.2 添加命名空间
405
D.2.1 添加与现有类型冲突的命名空间()
405
D.3 修改命名空间
405
D.3.1 修改命名空间的名称或改变大小写()
405
D.4 移动类型
405
D.4.1 通过 [TypeForwardedTo] 移动类型()
405
D.4.2 不通过 [TypeForwardedTo] 移动类型()
406
D.5 删除类型
406
D.5.1 删除类型()
406
D.6 修改类型
407
D.6.1 密封一个非密封的类型()
407
D.6.2 解封一个密封类型()
407
D.6.3 改变类型名称的大小写()
407
D.6.4 改变类型名称()
407
D.6.5 改变类型的命名空间()
408
D.6.6 为结构体添加 readonly 修饰符()
408
D.6.7 从结构体中移除 readonly 修饰符()
408
D.6.8 为现有接口添加基接口()
408
D.6.9 为同一个泛型接口添加第二个声明()
409
D.6.10 将类变更为结构体()
409
D.6.11 将结构体变更为类()
410
D.6.12 将 struct 变更为 ref struct()
410
D.6.13 将 ref struct 变更为(非ref)struct()
410
D.7 添加成员
411
D.7.1 通过 new 修饰符掩盖基类成员()
411
D.7.2 添加抽象成员()
411
D.7.3 为非密封类型添加成员()
411
D.7.4 为非密封类型添加覆写成员()
412
D.7.5 为结构体添加第一个引用类型字段()
412
D.7.6 为接口添加成员()
412
D.8 移动成员
413
D.8.1 将成员移动到基类中()
413
D.8.2 将成员移动到基接口中()
413
D.8.3 将成员移动到派生类型中()
413
D.9 删除成员
413
D.9.1 从非密封类型中删除终结器()
413
D.9.2 从密封类型中删除终结器()
414
D.9.3 删除非覆写成员()
414
D.9.4 删除虚拟成员的override()
414
D.9.5 删除抽象成员的override()
414
D.9.6 删除或重命名可序列化类型的私有字段()
415
D.10 重载成员
415
D.10.1 为成员添加第一个重载()
415
D.10.2 为引用类型参数添加可选参数重载()
416
D.11 更改成员签名
416
D.11.1 重命名方法的参数()
416
D.11.2 添加或删除方法的参数()
416
D.11.3 改变方法参数的类型()
417
D.11.4 重新排列具有不同类型的方法参数()
417
D.11.5 重新排列具有相同类型的方法参数()
417
D.11.6 改变方法的返回类型()
418
D.11.7 改变属性的类型()
418
D.11.8 将成员的可见性从 public 变更为其他的可见性()
418
D.11.9 将成员的可见性从 protected 变更为 public()
419
D.11.10 将虚(或抽象)成员从 protected 变更为 public()
419
D.11.11 添加或删除 static 修饰符()
419
D.11.12 改为(或不再)按引用传递参数()
419
D.11.13 改变按引用传递参数的风格()
420
D.11.14 为结构体的方法添加 readonly 修饰符()
420
D.11.15 从结构体的方法中删除 readonly 修饰符()
420
D.11.16 将必需参数变更为可选参数()
421
D.11.17 将可选参数变更为必需参数()
421
D.11.18 改变可选参数的默认值()
421
D.11.19 改变常量字段的值()
421
D.11.20 将抽象成员变更为虚成员()
422
D.11.21 将虚成员变更为抽象成员()
422
D.11.22 将非虚成员变更为虚成员()
422
D.12 改变行为
423
D.12.1 将运行时错误异常变更为使用错误异常()
423
D.12.2 将使用错误异常变更为有用的行为()
423
D.12.3 改变方法返回值的类型()
423
D.12.4 抛出新的异常类型()
424
D.12.5 抛出新的异常类型,且它是从现有的异常类型中派生的()
424
D.13 最后
424
作者介绍:
Krzysztof Cwalina 是微软的软件架构师,是.NET框架团队的初始成员之一,在职业生涯中,他成功设计了许多.NET API。目前,他正致力于帮助微软的不同团队开发不同编程语言下的可复用 API。Krzysztof 拥有爱荷华大学计算机科学专业的学士学位和硕士学位。
Jeremy Barton 是.NET Core Libraries团队的一名工程师。在使用 C# 设计和开发小型框架十几年后,他于 2015 年加入.NET团队,从事全新的.NET Core项目中密码学相关类库的跨平台开发工作。Jeremy 毕业于罗斯-霍曼理工学院计算机科学和数学专业。
Brad Abrams 是微软通用语言运行时(Common Language Runtime,CLR)和.NET 框架团队的初始成员之一。从 1998 年开始,他就一直在为.NET框架做设计。Brad 从构建基类库(BCL)开始他的框架设计生涯,而这个库后来成为.NET框架的核心部分。此外,他还是通用语言规范(Common Language Specification,CLS)、.NET框架设计指南和.NET框架中ECMA/ISO通用语言基础架构(Common Language Infrastructure,CLI)标准实现的主要作者。Brad编写和合著了多本出版物,包括Programming in the .NET Environment和.NET Framework Standard Library Annotated Reference的卷一和卷二。Brad 毕业于北卡罗来纳州立大学计算机科学专业,你可以在他的博客上了解他最近的想法。Brad现在是Google的集团产品经理(Group Product Manager),他正在为 Google Assistant孵化新项目。
译者简介
王桥,2016年毕业于厦门大学,现在是微软的软件开发工程师。他在大学毕业后就一直深耕于 Web开发领域,在 TypeScript/JavaScript 和 . NET 等方面有丰富的编程实战经验。
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
暂无相关书籍摘录,正在全力查找中!
在线阅读/听书/购买/PDF下载地址:
原文赏析:
暂无原文赏析,正在全力查找中!
其它内容:
书籍介绍
《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》从最基本的设计原则和准则出发,全方位介绍了设计框架的最佳实践,是微软工程师从.NET Framework开发伊始到现如今的.NET这二十来年间宝贵经验的总结。
与第2版发布时的2008年相比,今天的软件开发范式用翻天覆地来形容也不为过,容器化、云服务、跨平台、DevOps等,都对今天的软件开发者和框架设计者提出了更高的要求。本书对第2版的内容进行了全面的更新,以适应当下发展的潮流。
《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》虽然是面向.NET平台上的框架设计的,但对其他平台的框架设计同样具有非凡的借鉴价值。通过阅读本书,读者可以了解到如何设计出一个对使用者而言简单、易用且具有一致性的优秀框架。
网站评分
书籍多样性:5分
书籍信息完全性:5分
网站更新速度:6分
使用便利性:5分
书籍清晰度:6分
书籍格式兼容性:6分
是否包含广告:9分
加载速度:6分
安全性:7分
稳定性:4分
搜索功能:3分
下载便捷性:9分
下载点评
- 不亏(263+)
- 少量广告(601+)
- 图书多(302+)
- 下载速度快(505+)
- 赞(676+)
- azw3(453+)
- 速度快(677+)
下载评价
- 网友 养***秋:
我是新来的考古学家
- 网友 冯***卉:
听说内置一千多万的书籍,不知道真假的
- 网友 寇***音:
好,真的挺使用的!
- 网友 习***蓉:
品相完美
- 网友 步***青:
。。。。。好
- 网友 薛***玉:
就是我想要的!!!
- 网友 訾***雰:
下载速度很快,我选择的是epub格式
- 网友 敖***菡:
是个好网站,很便捷
- 网友 訾***晴:
挺好的,书籍丰富
- 网友 石***烟:
还可以吧,毕竟也是要成本的,付费应该的,更何况下载速度还挺快的
- 网友 菱***兰:
特好。有好多书
- 网友 沈***松:
挺好的,不错
- 网友 益***琴:
好书都要花钱,如果要学习,建议买实体书;如果只是娱乐,看看这个网站,对你来说,是很好的选择。
- 网友 屠***好:
还行吧。
- 网友 林***艳:
很好,能找到很多平常找不到的书。
喜欢"框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)"的人也看了
朗文国际儿童英语 活动手册4(附网络下载) mobi 下载 网盘 caj lrf pdf txt 阿里云
致山姆的信 mobi 下载 网盘 caj lrf pdf txt 阿里云
劳动保护丛书--可靠性与安全生产(孙桂林) mobi 下载 网盘 caj lrf pdf txt 阿里云
畅游世界--畅游美国,看这本就够了 mobi 下载 网盘 caj lrf pdf txt 阿里云
天然药物化学实验指导 mobi 下载 网盘 caj lrf pdf txt 阿里云
玛德琳在伦敦出版80周年英汉双语珍藏本(赠玛德琳贴纸) 路德维格.贝梅尔曼斯 著 王霖霖 译 mobi 下载 网盘 caj lrf pdf txt 阿里云
SL小刺猬金妮系列·校园运动会 塔米·萨奥尔 幼儿情商启蒙绘本 聪明宝贝3-6岁故事书 绘本阅读幼儿园儿童绘本 阅读 启蒙故事书 mobi 下载 网盘 caj lrf pdf txt 阿里云
数独阶梯训练3(360道原创数独题由日本经验丰富数独团队精心编排,题型丰富,由易到难,让你充分享受“升级打怪”的乐趣) mobi 下载 网盘 caj lrf pdf txt 阿里云
用Delphi开发共享软件 mobi 下载 网盘 caj lrf pdf txt 阿里云
稻盛和夫给年轻人的忠告 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 应用营养学 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 故事咨询师-心理辅导的隐喻操作 李永强 郝琦 清华大学出版社【正.版】 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 高压开关设备生产运行实用技术 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 全国注册咨询工程师执业资格考试应试图典:工程咨询概论 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 魔笛/幼儿音乐绘本 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 我的小小自然博物馆·动物朋友(全8册) mobi 下载 网盘 caj lrf pdf txt 阿里云
- 产品概念手绘教程+产品渲染技法全教程 共2册 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 正版画说奶牛常见病防治侯引绪编 奶牛病类症鉴别与诊治奶牛疾病防治及安全用药奶牛生产养殖技术全书奶牛养殖技术书籍养牛书籍 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 英汉钢铁冶金技术详解词典 mobi 下载 网盘 caj lrf pdf txt 阿里云
- 刘兴诗爷爷讲述:中国地理 学校指定推荐版本 (套装共3册) mobi 下载 网盘 caj lrf pdf txt 阿里云
书籍真实打分
故事情节:7分
人物塑造:9分
主题深度:7分
文字风格:3分
语言运用:8分
文笔流畅:3分
思想传递:4分
知识深度:8分
知识广度:4分
实用性:5分
章节划分:7分
结构布局:4分
新颖与独特:8分
情感共鸣:9分
引人入胜:4分
现实相关:4分
沉浸感:5分
事实准确性:7分
文化贡献:6分