• C#代码整洁之道:代码重构与性能提升
  • C#代码整洁之道:代码重构与性能提升
21年品牌 40万+商家 超1.5亿件商品

C#代码整洁之道:代码重构与性能提升

全新正版 极速发货

86.65 7.3折 119 全新

库存2件

广东广州
认证卖家担保交易快速发货售后保障

作者(英)詹森·奥尔斯

出版社机械工业出版社

ISBN9787111703624

出版时间2022-04

装帧平装

开本16开

定价119元

货号31425367

上书时间2024-06-09

书香美美

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
前言<br/>关于作者<br/>关于审校者<br/>第1章 C#的编码标准和原则  1<br/>1.1 技术要求  2<br/>1.2 良好的代码与劣质的代码  2<br/>1.2.1 劣质的代码  3<br/>1.2.2 良好的代码  14<br/>1.3 编码标准、原则和方法的必要性  18<br/>1.3.1 编码标准  19<br/>1.3.2 编码原则  19<br/>1.3.3 编码方法  19<br/>1.3.4 编码规则  20<br/>1.3.5 模块化  20<br/>1.3.6 KISS原则  20<br/>1.3.7 YAGNI原则  21<br/>1.3.8 DRY原则  21<br/>1.3.9 SOLID原则  21<br/>1.3.10 奥卡姆剃刀法则  22<br/>1.4 总结  22<br/>1.5 习题  22<br/>1.6 参考资料  23<br/>第2章 代码评审—过程及其重要性  24<br/>2.1 代码评审流程  25<br/>2.2 准备代码评审  25<br/>2.3 引导代码评审  26<br/>2.3.1 创建pull request  27<br/>2.3.2 响应pull request  28<br/>2.3.3 反馈对被评审人的影响  30<br/>2.4 确定评审内容  33<br/>2.4.1 公司编码规范与业务需求  34<br/>2.4.2 命名规则  34<br/>2.4.3 代码格式  34<br/>2.4.4 测试  35<br/>2.4.5 架构规范和设计模式  35<br/>2.4.6 性能和安全性  36<br/>2.5 何时发起代码评审  36<br/>2.6 提供并回应评审反馈  37<br/>2.6.1 评审人提供反馈意见  38<br/>2.6.2 被评审人回应反馈  38<br/>2.7 总结  39<br/>2.8 习题  39<br/>2.9 参考资料  40<br/>第3章 类、对象和数据结构  41<br/>3.1 技术要求  41<br/>3.2 组织类  42<br/>3.3 一个类应当只具备一种职责  43<br/>3.4 从注释生成文档  45<br/>3.5 内聚和耦合  48<br/>3.5.1 紧耦合范例  48<br/>3.5.2 低耦合范例  49<br/>3.5.3 低内聚范例  50<br/>3.5.4 高内聚范例  51<br/>3.6 为变化而设计  52<br/>3.6.1 面向接口编程  52<br/>3.6.2 依赖注入和控制反转  54<br/>3.6.3 DI范例  54<br/>3.6.4 IoC范例  56<br/>3.7 迪米特法则  57<br/>3.8 不可变对象与数据结构  59<br/>3.9 对象应当隐藏数据并暴露方法  60<br/>3.10 数据结构体应当暴露数据而无须包含方法  61<br/>3.11 总结  62<br/>3.12 习题  62<br/>3.13 参考资料  63<br/>第4章 编写整洁的函数  64<br/>4.1 理解函数式编程  65<br/>4.2 保持方法短小  67<br/>4.3 代码缩进  69<br/>4.4 避免重复代码  70<br/>4.5 避免多个参数  71<br/>4.6 实现单一职责原则  72<br/>4.7 总结  76<br/>4.8 习题  76<br/>4.9 参考资料  77<br/>第5章 异常处理  78<br/>5.1 检查型异常和非检查型异常  79<br/>5.2 避免NullReferenceException  82<br/>5.3 业务规则异常  84<br/>5.3.1 范例1—使用业务规则异常进行条件处理  86<br/>5.3.2 范例2—使用正常程序流程进行条件处理  87<br/>5.4 异常应当提供有意义的信息  89<br/>5.5 创建自定义异常  90<br/>5.6 总结  92<br/>5.7 习题  93<br/>5.8 参考资料  93<br/>第6章 单元测试  94<br/>6.1 技术要求  95<br/>6.2 为何要进行良好的测试  95<br/>6.3 了解测试工具  98<br/>6.3.1 MSTest  99<br/>6.3.2 NUnit  105<br/>6.3.3 Moq  110<br/>6.3.4 SpecFlow  114<br/>6.4 TDD方法实践—失败、通过与重构  117<br/>6.5 删除冗余的测试、注释以及无用代码  122<br/>6.6 总结  123<br/>6.7 习题  123<br/>6.8 参考资料  124<br/>第7章 端到端系统测试  125<br/>7.1 端到端测试  125<br/>7.1.1 登录模块(子系统)  127<br/>7.1.2 管理员模块(子系统)  129<br/>7.1.3 测验模块(子系统)  131<br/>7.1.4 对三模块系统执行E2E测试  132<br/>7.2 工厂  134<br/>7.3 依赖注入  140<br/>7.4 模块化  145<br/>7.5 总结  147<br/>7.6 习题  147<br/>7.7 参考资料  147<br/>第8章 线程与并发  148<br/>8.1 理解线程的生命周期  149<br/>8.2 添加线程参数  150<br/>8.3 使用线程池  151<br/>8.3.1 任务并行库  152<br/>8.3.2 ThreadPool.QueueUserWorkItem()方法  153<br/>8.4 使用互斥量同步线程  154<br/>8.5 使用信号量处理并行线程  156<br/>8.6 限制线程池使用的处理器数目及线程数目  158<br/>8.7 避免死锁  159<br/>8.8 避免竞态条件  164<br/>8.9 理解静态构造器和静态方法  166<br/>8.9.1 添加静态构造器  167<br/>8.9.2 在代码中添加静态方法  168<br/>8.10 可变性、不可变性与线程安全  170<br/>8.10.1 编写可变且线程不安全的代码  171<br/>8.10.2 编写不可变且线程安全的代码  172<br/>8.11 理解线程安全  173<br/>8.12 同步方法依赖  177<br/>8.13 使用Interlocked类  177<br/>8.14 通用建议  180<br/>8.15 总结  181<br/>8.16 习题  181<br/>8.17 参考资料  182<br/>第9章 API的设计与开发  183<br/>9.1 技术要求  184<br/>9.2 什么是API  184<br/>9.3 API代理  185<br/>9.4 API设计准则  186<br/>9.4.1 明确定义软件边界  189<br/>9.4.2 理解高质量API文档的重要性  190<br/>9.4.3 传递不可变结构体而非可变对象  192<br/>9.4.4 测试第三方API  195<br/>9.4.5 测试自己的API  196<br/>9.5 使用RAML设计API  197<br/>9.5.1 安装Atom和MuleSoft的Workbench插件  198<br/>9.5.2 创建项目  198<br/>9.5.3 从RAML语言无关设计规范生成C# API代码  200<br/>9.6 总结  203<br/>9.7 习题  204<br/>9.8 参考资料  204<br/>第10章 使用API密钥和Azure Key Vault保护API  206<br/>10.1 技术要求  207<br/>10.2 范例API项目—股息日历  207<br/>10.3 访问Morningstar API  208<br/>10.4 在Azure中创建股息日历ASP.NET Core Web应用程序  210<br/>10.5 使用API密钥保护股息日历API  215<br/>10.5.1 创建repository  216<br/>10.5.2 设置认证和鉴权功能  218<br/>10.6 测试API密钥安全功能  223<br/>10.7 添加股息日历代码  226<br/>10.8 限制API调用  232<br/>10.9 总结  235<br/>10.10 习题  236<br/>10.11 参考资料  236<br/>第11章 处理切面关注点  237<br/>11.1 技术要求  238<br/>11.2 装饰器模式  238<br/>11.3 代理模式  240<br/>11.4 使用PostSharp实现AOP  242<br/>11.4.1 扩展“方面”框架  242<br/>11.4.2 扩展架构框架  244<br/>11.5 创建可重用的解决切面关注点问题的类库  245<br/>11.5.1 添加缓存关注点  245<br/>11.5.2 添加文件日志功能  246<br/>11.5.3 添加日志关注点  247<br/>11.5.4 添加异常处理关注点  249<br/>11.5.5 添加安全关注点  249<br/gt;11.5.6 添加验证关注点  252<br/>11.5.7 添加事务关注点  256<br/>11.5.8 添加资源池关注点  257<br/>11.5.9 添加配置关注点  257<br/>11.5.10 添加检测关注点  258<br/>11.6 总结  259<br/>11.7 习题  259<br/>11.8 参考资料  259<br/>第12章 使用工具改善代码质量  260<br/>12.1 技术要求  261<br/>12.2 什么是高质量代码  261<br/>12.3 清理代码并进行代码度量  262<br/>12.4 执行代码分析  264<br/>12.5 使用快速操作  267<br/>12.6 使用JetBrains dotTrace探查工具  267<br/>12.7 使用JetBrains ReSharper  271<br/>12.8 使用Telerik JustDecompile工具  279<br/>12.9 总结  280<br/>12.10 习题  280<br/>12.11 参考资料  281<br/>第13章 重构C#代码—识别代码坏味道  282<br/>13.1 技术要求  282<br/>13.2 应用程序级别代码坏味道  283<br/>13.2.1 布尔盲点  283<br/>13.2.2 组合爆炸  284<br/>13.2.3 人为复杂性  285<br/>13.2.4 数据泥团  286<br/>13.2.5 粉饰注释  286<br/>13.2.6 重复代码  286<br/>13.2.7 意图不明  287<br/>13.2.8 可变的变量  287<br/>13.2.9 怪异的解决方案  288<br/>13.2.10 霰弹式修改  290<br/>13.2.11 解决方案蔓延  291<br/>13.2.12 不可控的副作用  292<br/>13.3 类级别代码坏味道  292<br/>13.3.1 过高的圈复杂度  292<br/>13.3.2 发散式变化  295<br/>13.3.3 向下类型转换  296<br/>13.3.4 过度的字面量使用  296<br/>13.3.5 依恋情结  296<br/>13.3.6 狎昵关系  298<br/>13.3.7 不恰当的暴露  298<br/>13.3.8 巨大的类  298<br/>13.3.9 冗赘类  298<br/>13.3.10 中间人类  299<br/>13.3.11 孤立的变量和常量类  299<br/>13.3.12 基本类型偏执  299<br/>13.3.13 被拒绝的遗赠  299<br/>13.3.14 夸夸其谈未来性  299<br/>13.3.15 命令,而非询问  300<br/>13.3.16 临时字段  300<br/>13.4 方法级别的代码坏味道  300<br/>13.4.1 不合群的方法  300<br/>13.4.2 过高的圈复杂度  300<br/>13.4.3 人为复杂性  300<br/>13.4.4 无用的代码  301<br/>13.4.5 过多的返回数据  301<br/>13.4.6 依恋情结  301<br/>13.4.7 过长或过短的标识符  301<br/>13.4.8 狎昵关系  301<br/>13.4.9 过长的代码行  301<br/>13.4.10 冗赘方法  301<br/>13.4.11 过长的方法  302<br/>13.4.12 参数过多  302<br/>13.4.13 过度耦合的消息链  302<br/>13.4.14 中间人方法  302<br/>13.4.15 怪异的解决方案  302<br/>13.4.16 夸夸其谈未来性  302<br/>13.5 总结  302<br/>13.6 习题  303<br/>13.7 参考资料  304<br/>第14章 重构C#代码—实现设计模式  305<br/>14.1 技术要求  306<br/>14.2 实现创建型设计模式  306<br/>14.2.1 实现单例设计模式  306<br/>14.2.2 实现工厂方法设计模式  307<br/>14.2.3 实现抽象工厂设计模式  308<br/>14.2.4 实现原型设计模式  311<br/>14.2.5 实现建造者设计模式  313<br/>14.3 实现结构型设计模式  317<br/>14.3.1 实现桥接设计模式  317<br/>14.3.2 实现组合设计模式  319<br/>14.3.3 实现外观设计模式  321<br/>14.3.4 实现享元设计模式  323<br/>14.4 行为型设计模式概述  325<br/>14.5 关于整洁代码和重构的思考  326<br/>14.6 总结  328<br/>14.7 习题  328<br/>14.8 参考资料  329<br/>参考答案  330

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

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP