一、关于Bob大叔的Clean Code

  《代码整洁之道》主要讲述了一系列行之有效的整洁代码操作实践。软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。这本书的阅读对象为一切有志于改善代码质量的程序员,书中介绍的规则均来自作者Bob大叔多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

  最让我感受深刻的是封面图片和副标题,首先是封面图片:

  

  上面这张图是M104:草帽星系,其核心是一个质量超大的黑洞,有100万个太阳那么重,环绕着M104的光环就像一顶墨西哥草帽,仿佛经历了大爆炸之后碎片四溅的产物。联系到我们所经历过的没由整洁代码风格各异不可维护的软件项目,其实当你接手时之前的代码都是一个个的黑洞,存在着某天会定时爆发的风险,而当它真正爆发时,接手这个项目的所有人都会因此遭殃。

  其次,再说说副标题:“细节之中自有天地,整洁成就卓越代码”。本书讲述的就是一个又一个的细节之处,不好的处理和好的处理都一一道来,让我们形成整洁的规范。

Robert C. Martin,(Bob大叔)自1970年进入软件行业,从1990年起成为国际软件咨询师。是软件工程领域的大师级人物,是《敏捷软件开发:原则、模式与实践》、《敏捷软件开发:原则、模式与实践(C#版)》(邮电)、《极限编程实践》(邮电)等国内引进的畅销书的作者,其中第一本原著荣获美国《软件开发》第13届震撼(Jolt)大奖,Martin的敏捷系列书是软件工程界的权威书籍。

二、Clean Code精华笔记

文不如表,表不如图,奉上一张思维导图:

三、.NET平台的代码规范插件使用

3.1 StyleCop.Analyzers介绍

  StyleCop.Analyzers是一个开源的代码风格规则的审查项目,其github地址为:https://github.com/DotNetAnalyzers/StyleCopAnalyzers,用于.NET编译器平台的StyleCop分析器,该存储库包含使用.NET编译器平台的StyleCop规则的实现。 在可能的情况下,还会提供代码修复以简化纠正违规的过程。

  它具有以下几个好处:

  • 可以支持 C# 6
  • 使用 Roslyn 解析器,减少了自定义解析器的性能消耗
  • 当你写代码的时候解析器就会运行,当你编译的时候也会运行(不需要再设置 msbuild 任务或者安装任何 vs 插件)

  最近我们团队就采用了StyleCop.Analyzers作为代码审查插件,并将重要的规则设定为了Error级别,即如果你不改正编译不会通过。其实,Resharper也是一款不错的工具,但是因为其收费和重量级的特性,被我放弃了。

3.2 StyleCop.Analyzers安装

  为需要进行代码风格审查的.NET项目Nuget上直接搜索:StyleCop.Analyzers即可,目前最新版本为1.0.2.

  

3.3 设置规则列表

  这里我分享一个我们团队筛选过后的Ruleset文件(点我下载),它将作为StyleCop.Analyzers的分析基准,我一般将其放在解决方案的Solution Items中,即解决方案层级中(和Dockerfile类似放在项目层级中)

  

3.4 编辑具体项目的项目文件(csproj)

  为每个需要进行代码风格/规则审查的项目指定需要基准的Ruleset文件:(通过编辑项目文件)

  

3.5 测试代码风格检查

  写了一些代码之后,编译,查看错误信息窗口:

  

  可以看到未满足代码规则的点都被检查出来,只有改正之后才可以编译通过。

  最后,再次回顾一下《代码整洁之道》的副标题:

“细节之中自有天地,整洁成就卓越代码”  

参考资料

  Robert C.Martin著,《代码整洁之道》

  

  soulless,  《C# 代码规范和质量检查工具 StyleCop.Analyzers

  DotNetAnalyzers,《Using StyleCop Analyzers with .NET Core

作者:周旭龙

出处:http://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

《代码整洁之道》(Clean Code)- 读书笔记的更多相关文章

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

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

  2. 代码整洁之道Clean Code笔记

    @ 目录 第 1 章 Clean Code 整洁代码(3星) ?为什么要整洁的代码 ?什么叫做整洁代码 第 2 章 Meaningful Names 有意义的命名(3星) 第 3 章 Function ...

  3. 代码整洁之道Clean Code 读后感After Reading

    1.有意义的命名 名副其实,避免误导 做有意义的区分,简单明了2.函数 短小,职责单一 别重复自己3.注释 用代码来阐述 可怕的废话4.格式 垂直格式,垂直距离,空范围 横向格式,水平对齐,缩进5.错 ...

  4. “Clean Code” 读书笔记序

    最近开始研读 Robert C.Martin 的 “Clean Code”,为了巩固学习,会把每一章的笔记整理到博客中.而这篇博文作为一个索引和总结,会陆续加入各章的笔记链接,以及全部读完后的心得体会 ...

  5. Clean Code读书笔记

    第一章 整洁代码 1.编程要做什么 代码呈现了需求的细节,在某些层面上,这些细节无法被忽略或抽象,必须明确.而将需求明确到机器可以执行的细节程度,就是编程要做的事. 2.项目过程中经常遇到这样的问题: ...

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

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

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

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

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

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

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

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

随机推荐

  1. Nginx 入门学习教程

    昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...

  2. 排序系列 之 快速排序算法 —— Java实现

    基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变 ...

  3. 新版知乎登录之post请求

    前言 在上一篇文章中给大家讲解了requests发送post请求的几种方式,并分析了一些使用陷阱. 疑惑 在文章发表之后,有朋友给我留言说,知乎登录就没有使用提交Form表单(application/ ...

  4. BZOJ_3940_[Usaco2015 Feb]Censoring_AC自动机

    BZOJ_3940_[Usaco2015 Feb]Censoring_AC自动机 Description FJ把杂志上所有的文章摘抄了下来并把它变成了一个长度不超过10^5的字符串S.他有一个包含n个 ...

  5. BZOJ_2580_[Usaco2012 Jan]Video Game_AC自动机+DP

    BZOJ_2580_[Usaco2012 Jan]Video Game_AC自动机+DP Description Bessie is playing a video game! In the game ...

  6. linux学习之路(2)

    1.输入输出重定向  输入重定向中用到的符号及其作用 命令 < 文件 将文件作为命令的标准输入 命令 << 分界符 从标准输入中读入,直到遇见分界符才停止 命令 < 文件 1 ...

  7. 防XXS和SQL注入

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlsp ...

  8. STM32 Cube mx 安装

    原文链接:http://www.cnblogs.com/strongerHuang/p/5778216.html Ⅰ.写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32 ...

  9. Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一

    目录 验证码类型 官网最新效果 找个用极验证的网站 拼接验证码图片 编写自动化代码 核心run方法 模拟拖动方法 图片处理方法 初步运行结果 拼接图 图片存储到本地 @ 验证码类型 今天要搞定的验证码 ...

  10. 自定义GridLookUpEdit编辑器

    本文版权归博主  惊梦无痕  所有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作.SourceLink 前两天分享了GridControl的自定义编辑器,今天再来分享一下整理出来的GridLo ...