C#语言曾主要用于开发Windows桌面应用和游戏程序,而现在已经在多个领域得到了广泛应用,如Web应用程序和云应用程序。C#在移动开发领域的影响力也与日俱增。尽管C#拥有大量的编程特性,但专业人士还是会在工作中遇到由糟糕的代码导致的效率、伸缩性和维护方面的相关问题。《C#代码整洁之道:》一书将帮助你识别这些问题,并使用有效的编码解决它们。
《C#代码整洁之道:代码重构与性能提升》
在《C#代码整洁之道:代码重构与性能提升》一书中,你将学习如何识别那些可以编译,但可读性、可维护性与可扩展性均不尽如人意的代码。当然,你也将学到如何使用各种工具、模式和方法将上述问题代码重构为整洁的代码。
读者对象
本书适合具备良好的C#语言编程知识,同时希望提升自己发现问题代码的能力并编写整洁代码的开发人员阅读。
内容简介
第1章通过优秀代码和劣质代码的对比来说明编码的标准、原则、方法和约定的必要性。本章还将介绍模块化的设计思路以及KISS、YAGNI、DRY、SOLID和奥卡姆剃刀法则等设计规范。
第2章将详细讨论代码评审的过程并说明其重要性,具体包括如何准备代码以供审阅、如何引导代码评审、应当评审哪些内容、何时进行代码评审以及如何进行代码评审的反馈。
第3章涵盖类的组织、文档注释、内聚性、耦合、迪米特法则和不可更改的对象与数据结构等一系列主题。在本章学习结束之后,你将可以编写结构良好、符合单一职责原则、具备相应文档并且可扩展性良好的代码。
第4章将介绍函数式编程的相关知识,并探讨如何令函数保持短小精悍的状态,避免出现重复代码与过多的参数。在本章学习结束之后,你将能够描述函数式编程的知识、编写函数式代码、避免编写带有过多(两个以上)参数的函数、创建不可更改的数据对象或结构、保持方法短小并符合单一职责原则。
第5章将介绍检查型异常和非检查型异常,NullPointerException,如何规避和处理这些异常,业务规则异常,如何在异常中提供有意义的信息以及如何创建自定义异常。
第6章将结合SpecFlow介绍行为驱动开发(Behavior-Driven Development,BDD)方法,同时也将结合MSTest和NUnit工具介绍测试驱动开发(Test-Driven Development,TDD)方法。你将学到如何使用Moq编写测试替身、如何用TDD的方式令测试失败,或(实现功能)令测试通过,以及之后重构代码并确保测试通过。
第7章将使用范例工程演示如何进行手动的端到端测试,具体包括执行端到端测试、工厂的编码和测试、依赖注入的编码和测试,以及模块化系统测试。本章还会介绍如何针对模块化系统设计来执行端到端测试。
第8章将着眼于讲解以下内容:线程的生命周期、向线程传递参数、使用Thread-
Pool、互斥量、线程间同步、使用信号量处理并行线程、限制ThreadPool中的线程数目和处理器用量、防止死锁和竞态条件、静态方法和静态构造器、可变性与不可变性以及线程安全。第9章将向你解释API的定义、API代理、API的设计规范、使用RAML描述API的设计以及Swagger API开发。本章将使用RAML设计和语言无关的API,使用C#进行API的开发,并使用Swagger编写API的文档。
第10章将展示如何获取第三方API密钥,将密钥存储在Azure Key Vault中,并使用在Azure上开发、部署的API获得该密钥,最后实现API的密钥认证与鉴权功能来确保自身 API 的安全。
第11章将使用 PostSharp,使用面向方面开发(aspect-oriented development)中的方面(aspect)和特性(attribute)这两个基本元素来处理切面关注点。本章还将介绍代理对象和装饰器的使用方法。
第12章将介绍一系列工具来提升代码编写质量并提高现有代码的质量,包括如何进行代码度量、代码分析,并进行快速操作。其中涉及被称为dotTrace Prof?iler和ReSharper的JetBrains工具