1. 基本信息

C#代码整洁之道:代码重构与性能提升 ,英文名为Clean Code in C#。

作者:[英] 詹森·奥尔斯(Jason Alls) 著,刘夏 译

机械工业出版社,2022年4月出版。

1.1. 读薄率

书籍总字数489000字,笔记总字数8927字。

读薄率 8927÷489000≈1.83%

1.2. 读厚方向

1.2.1. 函数编程

  • Functional C#

  • Functional Programming in C#

  • JavaScript: Functional Programming for JavaScript Developers

  • Learning Java Functional Programming

1.2.2. 设计模式

  • Hands-On Design Patterns with Java

  • Spring 5 Design Patterns

1.2.3. TDD、BDD

  • 测试驱动开发 [美]Kent Beck 著

和原文的推荐书籍不一样,读厚方向只是我感兴趣的,原文每个章节都有推荐书籍,更多、更详细。

1.3. 笔记--章节对应关系

笔记 章节
读C#代码整洁之道笔记01 第01章 C#的编码标准和原则
读C#代码整洁之道笔记02 第03章 类、对象和数据结构
第04章 编写整洁的函数
读C#代码整洁之道笔记03 第11章 处理切面关注点
第05章 异常处理
第08章 线程与并发
读C#代码整洁之道笔记04 第13章 重构C#代码——识别代码坏味道
读C#代码整洁之道笔记05 第12章 使用工具改善代码质量
第06章 单元测试
读C#代码整洁之道笔记06 第09章 API的设计与开发
第10章 使用API密钥和Azure Key Vault保护API
读C#代码整洁之道笔记07 第02章 代码评审——过程及其重要性
第14章 重构C#代码——实现设计模式
第07章 端到端系统测试

2. 亮点

2.1. 4~10行方法

方法不宜超过4行,不应超过10行。4行方法,一目了然,强制倒逼自己思考这个方法是否承担了过多的责任,能否选择更合适的模式实现

2.2. 参数不多于2个

  • 列表中有很多out参数,则重构方法返回元组或对象

  • 对于方法的参数,请使用参数对象替换长的参数列表

  • 柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术

2.3. 确保所有对象的继承深度不大于1

  • 扁平化

  • 不会创建出非常深的类层次

    • 一个对象的多个状态和方法可能来自层次结构中的不同级别,导致代码更难理解

2.4. 圈复杂度降低到10以内

  • if/switch等条件语句的处理

  • 循环处理

    • 采用Lamdba

以上的量化指标,简单明了,在编码实践中,如果能够贯彻执行,相信对于提升编码水平一定是大有裨益。

3. 感想

3.1. 语言无关性

尽管这本书是写C#的,除了一些语法特性外,大部分建议都是语言无关的。

3.2. 笔记的益处

倒逼自己一本书至少要过3遍。1遍通读+勾画、2遍导图+笔记、3遍去粗取精+修订完善,如果算上这篇的总结和感想,那就是4遍了。

这使得自己查漏补缺,加深了认识和记忆。

3.3. 要不要读原文

有时间、有精力的情况下,当然是要去读原文咯。

毕竟各人知识背景不一样,我觉得重要的地方,你不一定觉得,相反, 我觉得不重要的,也许你觉得就是亮点。

更何况,原文有图有代码示例,更能加深印象和认识。

C#代码整洁之道读后总结与感想的更多相关文章

  1. 读<<代码整洁之道>>的感想

    花去了近一周的时间浏览一下这本书.总体感觉这本书写得不错. 我发现自己以前写的代码时多么的糟糕.有很多改进之处... 同时我也发现写出优秀的代码不易.优秀的代码不仅仅易读,并且易修改,易维护,程序易维 ...

  2. 读《Clean Code 代码整洁之道》之感悟

    盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊.我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手 最近项目中的 bug 有点多,改动代码十分吃力,每看一行代码都带一句 ...

  3. 2015年第11本:代码整洁之道Clean Code

    前一段时间一直在看英文小说,在读到<Before I fall>这本书时,读了40%多实在看不下去了,受不了美国人啰啰嗦嗦的写作风格,还是读IT专业书吧. 从5月9日开始看<代码整洁 ...

  4. Programming好文解读系列(—)——代码整洁之道

    注:初入职场,作为一个程序员,要融入项目组的编程风格,渐渐地觉得系统地研究下如何写出整洁而高效的代码还是很有必要的.与在学校时写代码的情况不同,实现某个功能是不难的,需要下功夫的地方在于如何做一些防御 ...

  5. 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周

    <代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...

  6. 《代码整洁之道》ch1~ch4读书笔记 PB16110698 (~3.8 第一周)

    <代码整洁之道>ch1~ch4读书笔记  <clean code>正如其书名所言,是一本关于整洁代码规范的“教科书”.作者在书中通过实例阐述了整洁代码带来的种种利处以及混乱代码 ...

  7. 《代码整洁之道》&《程序员的职业素养》

    这是why技术的第32篇原创文章 春节期间读了两本技术相关的书籍:编程大师Bob大叔的<代码整洁之道>和<代码整洁之道:程序员的职业素养>. <代码整洁之道>出版于 ...

  8. <读书笔记> 代码整洁之道

    概述      1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...

  9. <代码整洁之道>、<java与模式>、<head first设计模式>读书笔记集合

    一.前言                                                                                       几个月前的看书笔记 ...

  10. android开发系列之代码整洁之道

    说起代码整洁之道,想必大家想到更多的是那本经典重构书籍.没错,记得当时自己读那本书的时候,一边结合项目实战,一边结合书中的讲解,确实学到了很多东西,对我自己的编码风格影响极深.随着时间的流逝,书中很多 ...

随机推荐

  1. Redisson源码解读-分布式锁

    前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid).Redisson有一样功能是可重入的分布式锁.本文来讨论一下这个功能的特点以及源 ...

  2. fltp备份文件后统计验证

    上一篇(https://www.cnblogs.com/jying/p/16805821.html)记录了自己在centos使用lftp备份文件的过程,本篇记录自己对备份后的文件与源文件目录的对比统计 ...

  3. 支持JDK19虚拟线程的web框架之四:看源码,了解quarkus如何支持虚拟线程

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 前文链接 支持JDK19虚拟线程的web框架,之一:体 ...

  4. 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败

    问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...

  5. 【云原生 · Kubernetes】Kubernetes基础环境搭建

    1.系统镜像 安装运行环境系统要求为CentOS7.5,内核版本不低于3.10. CentOS-7.5-x86_64-DVD-1804.iso Chinaskill_Cloud_PaaS.iso Do ...

  6. 说一下 ArrayDeque 和 LinkedList 的区别?

    大家好,我是小彭. 在上一篇文章里,我们聊到了基于链表的 Queue 和 Stack 实现 -- LinkedList.那么 Java 中有没有基于数组的 Queue 和 Stack 实现呢?今天我们 ...

  7. 学习ASP.NET Core Blazor编程系列十三——路由(完)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  8. 卸载virtualbox中linux虚拟机的增强工具

    报错信息 vboxclient:the virtualbox kernel service is not running 前言 我由virtualbox换到vmware 遇到了这个问题,很烦每次都通知 ...

  9. 【中间件】Docker

    一.Docker (一)基础概念 1.概念 是linux容器的一种封装,它是最流行的Linux容器解决方案,由go语言开发 提供简单易用的容器使用接口,方便创建.使用和销毁 2.应用场景 自动打包.持 ...

  10. K8s 超详细总结

    一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机:万级容器:相如无亿,K8s有亿 ...