返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • C#代码整洁之道:代码重构与性能提升
  • 新商品上架
    • 作者: 詹森·奥尔斯著
    • 出版社: 机械工业出版社
    • 出版时间:2022-04
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 詹森·奥尔斯著
    • 出版社:机械工业出版社
    • 出版时间:2022-04
    • ISBN:9780405310647
    • 版权提供:机械工业出版社

    C#语言曾主要用于开发Windows桌面应用和游戏程序,而现在已经在多个领域得到了广泛应用,如Web应用程序和云应用程序。C#在移动开发领域的影响力也与日俱增。尽管C#拥有大量的编程特性,但专业人士还是会在工作中遇到由糟糕的代码导致的效率、伸缩性和维护方面的相关问题。本书将帮助你识别这些问题,并使用有效的编码解决它们。
    本书首先对比了良好的代码与劣质的代码以帮助大家理解编码标准、原则与方法的重要性,之后讨论了如何进行代码审查、代码审查在代码改进过程中的作用以及业界的编码标准。本书还介绍了单元测试,深入研究了测试驱动开发的方法,并探讨了如何处理切面关注点。你将学到如何在C#中恰当处理对象、结构体、异常等。我们还将研究API的设计并使用工具改善代码质量,通过学习反面案例来避免不当的编码实践。

    阅读本书,你将学到开发符合业界编码标准的整洁、易读、可扩展且易于维护的C#代码的方法。

    本书涵盖以下主题:
    如何编写能够持续修改与完善的代码。
    使用C#控制台应用程序实践“失败-通过-重构”的工作流程。
    使用设计模式解决切面关注点问题。
    编写提供含义明确的信息的自定义C#异常。
    如何识别质量不佳、需要重构的C#代码。
    如何使用API密钥对API进行保护,以及使用Azure Key Vault对数据进行保护。
    如何使用分析和重构工具提升代码性能。

    基本信息
    商品名称: C#代码整洁之道:代码重构与性能提升 开本: 16开
    作者: [英]詹森·奥尔斯(Jason Alls) 定价: 119.00
    ISBN号: 9787111703624 出版时间: 2022-04-25
    出版社: 机械工业出版社 印刷时间: 2022-04-25
    版次: 1 印次: 1

    第1章 C#的编码标准和原则  1

    1.1 技术要求  2

    1.2 良好的代码与劣质的代码  2

    1.2.1 劣质的代码  3

    1.2.2 良好的代码  14

    1.3 编码标准、原则和方法的必要性  18

    1.3.1 编码标准  19

    1.3.2 编码原则  19

    1.3.3 编码方法  19

    1.3.4 编码规则  20

    1.3.5 模块化  20

    1.3.6 KISS原则  20

    1.3.7 YAGNI原则  21

    1.3.8 DRY原则  21

    1.3.9 SOLID原则  21

    1.3.10 奥卡姆剃刀法则  22

    1.4 总结  22

    1.5 习题  22

    1.6 参考资料  23

    第2章 代码评审—过程及其重要性  24

    2.1 代码评审流程  25

    2.2 准备代码评审  25

    2.3 引导代码评审  26

    2.3.1 创建pull request  27

    2.3.2 响应pull request  28

    2.3.3 反馈对被评审人的影响  30

    2.4 确定评审内容  33

    2.4.1 公司编码规范与业务需求  34

    2.4.2 命名规则  34

    2.4.3 代码格式  34

    2.4.4 测试  35

    2.4.5 架构规范和设计模式  35

    2.4.6 性能和安全性  36

    2.5 何时发起代码评审  36

    2.6 提供并回应评审反馈  37

    2.6.1 评审人提供反馈意见  38

    2.6.2 被评审人回应反馈  38

    2.7 总结  39

    2.8 习题  39

    2.9 参考资料  40

    第3章 类、对象和数据结构  41

    3.1 技术要求  41

    3.2 组织类  42

    3.3 一个类应当只具备一种职责  43

    3.4 从注释生成文档  45

    3.5 内聚和耦合  48

    3.5.1 紧耦合范例  48

    3.5.2 低耦合范例  49

    3.5.3 低内聚范例  50

    3.5.4 高内聚范例  51

    3.6 为变化而设计  52

    3.6.1 面向接口编程  52

    3.6.2 依赖注入和控制反转  54

    3.6.3 DI范例  54

    3.6.4 IoC范例  56

    3.7 迪米特法则  57

    3.8 不可变对象与数据结构  59

    3.9 对象应当隐藏数据并暴露方法  60

    3.10 数据结构体应当暴露数据而无须包含方法  61

    3.11 总结  62

    3.12 习题  62

    3.13 参考资料  63

    第4章 编写整洁的函数  64

    4.1 理解函数式编程  65

    4.2 保持方法短小  67

    4.3 代码缩进  69

    4.4 避免重复代码  70

    4.5 避免多个参数  71

    4.6 实现单一职责原则  72

    4.7 总结  76

    4.8 习题  76

    4.9 参考资料  77

    第5章 异常处理  78

    5.1 检查型异常和非检查型异常  79

    5.2 避免NullReferenceException  82

    5.3 业务规则异常  84

    5.3.1 范例1—使用业务规则异常进行条件处理  86

    5.3.2 范例2—使用正常程序流程进行条件处理  87

    5.4 异常应当提供有意义的信息  89

    5.5 创建自定义异常  90

    5.6 总结  92

    5.7 习题  93

    5.8 参考资料  93

    第6章 单元测试  94

    6.1 技术要求  95

    6.2 为何要进行良好的测试  95

    6.3 了解测试工具  98

    6.3.1 MSTest  99

    6.3.2 NUnit  105

    6.3.3 Moq  110

    6.3.4 SpecFlow  114

    6.4 TDD方法实践—失败、通过与重构  117

    6.5 删除冗余的测试、注释以及无用代码  122

    6.6 总结  123

    6.7 习题  123

    6.8 参考资料  124

    第7章 端到端系统测试  125

    7.1 端到端测试  125

    7.1.1 登录模块(子系统)  127

    7.1.2 管理员模块(子系统)  129

    7.1.3 测验模块(子系统)  131

    7.1.4 对三模块系统执行E2E测试  132

    7.2 工厂  134

    7.3 依赖注入  140

    7.4 模块化  145

    7.5 总结  147

    7.6 习题  147

    7.7 参考资料  147

    第8章 线程与并发  148

    8.1 理解线程的生命周期  149

    8.2 添加线程参数  150

    8.3 使用线程池  151

    8.3.1 任务并行库  152

    8.3.2 ThreadPool.QueueUserWorkItem()方法  153

    8.4 使用互斥量同步线程  154

    8.5 使用信号量处理并行线程  156

    8.6 限制线程池使用的处理器数目及线程数目  158

    8.7 避免死锁  159

    8.8 避免竞态条件  164

    8.9 理解静态构造器和静态方法  166

    8.9.1 添加静态构造器  167

    8.9.2 在代码中添加静态方法  168

    8.10 可变性、不可变性与线程安全  170

    8.10.1 编写可变且线程不安全的代码  171

    8.10.2 编写不可变且线程安全的代码  172

    8.11 理解线程安全  173

    8.12 同步方法依赖  177

    8.13 使用Interlocked类  177

    8.14 通用建议  180

    8.15 总结  181

    8.16 习题  181

    8.17 参考资料  182

    第9章 API的设计与开发  183

    9.1 技术要求  184

    9.2 什么是API  184

    9.3 API代理  185

    9.4 API设计准则  186

    9.4.1 明确定义软件边界  189

    9.4.2 理解高质量API文档的重要性  190

    9.4.3 传递不可变结构体而非可变对象  192

    9.4.4 测试第三方API  195

    9.4.5 测试自己的API  196

    9.5 使用RAML设计API  197

    9.5.1 安装Atom和MuleSoft的Workbench插件  198

    9.5.2 创建项目  198

    9.5.3 从RAML语言无关设计规范生成C# API代码  200

    9.6 总结  203

    9.7 习题  204

    9.8 参考资料  204

    第10章 使用API密钥和Azure Key Vault保护API  206

    10.1 技术要求  207

    10.2 范例API项目—股息日历  207

    10.3 访问Morningstar API  208

    10.4 在Azure中创建股息日历ASP.NET Core Web应用程序  210

    10.5 使用API密钥保护股息日历API  215

    10.5.1 创建repository  216

    10.5.2 设置认证和鉴权功能  218

    10.6 测试API密钥安全功能  223

    10.7 添加股息日历代码  226

    10.8 限制API调用  232

    10.9 总结  235

    10.10 习题  236

    10.11 参考资料  236

    第11章 处理切面关注点  237

    11.1 技术要求  238

    11.2 装饰器模式  238

    11.3 代理模式  240

    11.4 使用PostSharp实现AOP  242

    11.4.1 扩展“方面”框架  242

    11.4.2 扩展架构框架  244

    11.5 创建可重用的解决切面关注点问题的类库  245

    11.5.1 添加缓存关注点  245

    11.5.2 添加文件日志功能  246

    11.5.3 添加日志关注点  247

    11.5.4 添加异常处理关注点  249

    11.5.5 添加安全关注点  249

    11.5.6 添加验证关注点  252

    11.5.7 添加事务关注点  256

    11.5.8 添加资源池关注点  257

    11.5.9 添加配置关注点  257

    11.5.10 添加检测关注点  258

    11.6 总结  259

    11.7 习题  259

    11.8 参考资料  259

    第12章 使用工具改善代码质量  260

    12.1 技术要求  261

    12.2 什么是高质量代码  261

    12.3 清理代码并进行代码度量  262

    12.4 执行代码分析  264

    12.5 使用快速操作  267

    12.6 使用JetBrains dotTrace探查工具  267

    12.7 使用JetBrains ReSharper  271

    12.8 使用Telerik JustDecompile工具  279

    12.9 总结  280

    12.10 习题  280

    12.11 参考资料  281

    第13章 重构C#代码—识别代码坏味道  282

    13.1 技术要求  282

    13.2 应用程序级别代码坏味道  283

    13.2.1 布尔盲点  283

    13.2.2 组合爆炸  284

    13.2.3 人为复杂性  285

    13.2.4 数据泥团  286

    13.2.5 粉饰注释  286

    13.2.6 重复代码  286

    13.2.7 意图不明  287

    13.2.8 可变的变量  287

    13.2.9 怪异的解决方案  288

    13.2.10 霰弹式修改  290

    13.2.11 解决方案蔓延  291

    13.2.12 不可控的副作用  292

    13.3 类级别代码坏味道  292

    13.3.1 过高的圈复杂度  292

    13.3.2 发散式变化  295

    13.3.3 向下类型转换  296

    13.3.4 过度的字面量使用  296

    13.3.5 依恋情结  296

    13.3.6 狎昵关系  298

    13.3.7 不恰当的暴露  298

    13.3.8 巨大的类  298

    13.3.9 冗赘类  298

    13.3.10 中间人类  299

    13.3.11 孤立的变量和常量类  299

    13.3.12 基本类型偏执  299

    13.3.13 被拒绝的遗赠  299

    13.3.14 夸夸其谈未来性  299

    13.3.15 命令,而非询问  300

    13.3.16 临时字段  300

    13.4 方法级别的代码坏味道  300

    13.4.1 不合群的方法  300

    13.4.2 过高的圈复杂度  300

    13.4.3 人为复杂性  300

    13.4.4 无用的代码  301

    13.4.5 过多的返回数据  301

    13.4.6 依恋情结  301

    13.4.7 过长或过短的标识符  301

    13.4.8 狎昵关系  301

    13.4.9 过长的代码行  301

    13.4.10 冗赘方法  301

    13.4.11 过长的方法  302

    13.4.12 参数过多  302

    13.4.13 过度耦合的消息链  302

    13.4.14 中间人方法  302

    13.4.15 怪异的解决方案  302

    13.4.16 夸夸其谈未来性  302

    13.5 总结  302

    13.6 习题  303

    13.7 参考资料  304

    第14章 重构C#代码—实现设计模式  305

    14.1 技术要求  306

    14.2 实现创建型设计模式  306

    14.2.1 实现单例设计模式  306

    14.2.2 实现工厂方法设计模式  307

    14.2.3 实现抽象工厂设计模式  308

    14.2.4 实现原型设计模式  311

    14.2.5 实现建造者设计模式  313

    14.3 实现结构型设计模式  317

    14.3.1 实现桥接设计模式  317

    14.3.2 实现组合设计模式  319

    14.3.3 实现外观设计模式  321

    14.3.4 实现享元设计模式  323

    14.4 行为型设计模式概述  325

    14.5 关于整洁代码和重构的思考  326

    14.6 总结  328

    14.7 习题  328

    14.8 参考资料  329

    参考答案  330

    ......

    本书介绍如何使用各种工具、模式和方法将可读性、可维护性与可扩展性均不尽如人意的代码重构为整洁的代码。
    本书首先介绍C#的编码标准和原则,然后详细讨论代码评审的过程并说明其重要性,接着介绍类、对象与数据结构以及函数式编程的基础知识,之后介绍异常处理、单元测试、端到端系统测试、线程与并发、API的设计与开发、API密钥与API安全、处理切面关注点等C#相关知识,后介绍一系列工具来提升代码质量,并介绍重构C#代码的方法。

    本书适合使用C#编程的所有开发人员阅读。

    Jason Alls拥有超过21年的Microsoft技术编程工作经验,曾就职于一家澳大利亚公司。他初负责呼叫中心管理报告软件的开发,该软件服务于全球客户,包括电信供应商、银行、航空公司和警察机构。后续开发过GIS市场营销应用程序,在银行部门负责Oracle和SQL Server间的数据迁移。从2005年获得C# MCAD认证以来,他一直在参与各种桌面、Web 和移动应用程序的开发。

    他目前任职于全球知名的英国教育公司GL Education,使用ASP.NET、Angular和C#进行阅读障碍测试,评估软件的开发与支持工作。

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购