[Tool] 使用CodeMaid自动程序排版

前言

「使用StyleCop验证命名规则」这篇文章,指引开发人员透过StyleCop这个工具,来自动检验项目中产出的程序代码是否合乎命名规则。

但是在项目开发的过程中,如果只是验证命名规则、而没有统一程序排版,项目中很容易就会出现类似下列范例的程序代码产出。这样的产出,虽然能够正常地提供项目功能、并且符合微软的命名规则,但是因为程序排版凌乱的问题,大幅降低了这份程序代码的可维护性。

  • Bad Code

    public class Class1
    {
    private string _name = "Clark"; public string GetResult()
    {
    return (_count01 + _count02).ToString();
    } private int _count01 = 1; private int _count03 = 3; public string GetName()
    {
    return _name;
    } private int _count02 = 2;
    }

本篇文章介绍如何透过CodeMaid这个工具,来自动整理项目中程序代码的排版,在不增加开发人员负担的前提下,让团队的程序代码产出趋于一致、大幅提高程序代码的生产质量。主要为自己留个纪录,也希望能帮助到有需要的开发人员。

  • Good Code

    public class Class1
    {
    private int _count01 = 1;
    private int _count02 = 2;
    private int _count03 = 3;
    private string _name = "Clark"; public string GetName()
    {
    return _name;
    } public string GetResult()
    {
    return (_count01 + _count02).ToString();
    }
    }

安装

  1. 首先至微软的官方网站,下载CodeMaid安装档:「CodeMaid_v0.7.4.vsix」。

  2. 执行CodeMaid安装档:「CodeMaid_v0.7.4.vsix」,来安装CodeMaid。

执行

  1. 使用Visual Studio开启项目。

  2. Visual Studio上方工具栏中,开启CODEMAID选单、点选Configuration来开启CodeMaid设定画面。

  3. CodeMaid设定画面中,进入Reorganizing->General设定页面,勾选「Run organize at start cleanup」后,点击Save按钮完成设定。

  4. 后续就可以从Visual Studio上方工具栏中,开启CODEMAID选单、点选「Cleanup all Code」来自动排版项目内的所有程序代码。

  5. 自动排版功能执行结束之后,开启项目内的程序代码,会发现程序代码内容已经排列整齐、干净,大幅提高程序代码的可维护性。

延伸

CodeMaid所提供的程序代码自动排版功能,用起来很方便、排版结果也很简洁。但是在一些细节上,总是会有些许的排版定义,不符合团队成员对于程序代码质量的要求。不过还好的是,CodeMaid开放了许多排版条件的设定项目,让开发人员可以调整排版条件,来让排版结果趋近于团队成员对程序代码产出的要求。

1. Automatically run cleanup on file save

「Automatically run cleanup on file save」:位于Cleaning->General设定页面。当该选项设定为勾选时,会在档案存盘的同时,自动执行程序代码排版功能。

2. Run remove unused using statements

「Run remove unused using statements」:位于Cleaning->Visual Studio设定页面。当该选项设定为勾选时,会在执行程序代码排版功能时,移除没有使用的using定义。(开发阶段建议不要勾选该选项,因为移除未使用的using定义,会造成使用LINQ时找不到扩充方法的问题。)

3. Remove multple consecutive blank lines

「Remove multple consecutive blank lines」:位于Cleaning->Remove设定页面。当该选项设定为勾选时,会在执行程序代码排版功能时,移除连续多行的空白行。

4. Update #endregion tag with region name

「Update #endregion tag with region name」:位于Cleaning->Updae设定页面。当该选项设定为勾选时,会在执行程序代码排版功能时,为#endregion区域卷标加上区域名称。

5. Alphabetize members of the same group

「Alphabetize members of the same group」:位于Reorganizing->General设定页面。当该选项设定为勾选时,会在执行程序代码排版功能时,依照成员类型排序之后,增加依照字母顺序排序的工作项目。

参考数据

[Tool] 使用CodeMaid自动程序排版的更多相关文章

  1. 代码整洁--使用CodeMaid自动程序排版

    在项目开发的过程中,如果只是验证命名规则.而没有统一程序排版,项目中很容易就会出现类似下列范例的程序代码产出.这样的产出,虽然能够正常地提供项目功能.并且符合微软的命名规则,但是因为程序排版凌乱的问题 ...

  2. 使用CodeMaid自动程序排版[转]

    前言 「使用StyleCop验证命名规则」这篇文章,指引开发人员透过StyleCop这个工具,来自动检验项目中产出的程序代码是否合乎命名规则. [Tool] 使用StyleCop验证命名规则 但是在项 ...

  3. linux下的c程序排版工具:indent

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010839382/article/details/30779523 Linux下有一个方便的c语言 ...

  4. linux下的c程序排版工具:indent 分类: linux 2014-06-14 20:05 720人阅读 评论(0) 收藏

    Linux下有一个方便的c语言程序排版工具,只要选择恰当的参数,可以轻易地使自己的程序具有统一的风格. 当然首先要安装indent,执行命令:apt-get install indent indent ...

  5. [Tool] 使用CodeMaid自動程式排版 - 摘自网络

    前言 「使用StyleCop驗證命名規則」這篇文章,指引開發人員透過StyleCop這個工具,來自動檢驗專案中產出的程式碼是否合乎命名規則. [Tool] 使用StyleCop驗證命名規則 但是在專案 ...

  6. 微信小程序开发——活动规则类文案文件读取及自动转换为小程序排版代码

    前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版 ...

  7. QT中|Qt::Tool类型窗口自动退出消息循环问题解决(setQuitOnLastWindowClosed必须设置为false,最后一个窗口不显示的时候,程序会退出消息循环)

    为application 设置setQuitOnLastWindowClosed属性,确实为true: 将其显示为false; 退出该应该程序不能调用QDialog的close消息槽,只能调用qApp ...

  8. C# 自动程序 windows 无法启动 XXXX 服务 错误5 拒绝访问

    遇到过两次 这样的问题了,所以记录一下 原因可能是服务所在文件的目录权限不够 解决方法: 1是查看服务对应的程序所在的目录 2是设置目录的安全权限 右击–属性–安全–添加相应的帐号,给予除完全控制外的 ...

  9. intellij自动缩进排版

    用鼠标选中需要缩进的代码块,然后输入命令 ctrl+alt+i ref: http://stackoverflow.com/questions/12264127/how-to-reindent-lin ...

随机推荐

  1. Scala spark mongodb

    最好的参考是Mongo官网的地址 https://docs.mongodb.com/spark-connector/getting-started/ 需要截图所示的包 代码地址 https://git ...

  2. 让Windows 7变成WIFI热点

    360要推便携路由器,个人觉得其主要目的是盯住了用户无线设备上的信息.因为如果用户移动设备都通过它这个路由器走的话,未加密的数据全部在他掌控之中. 其实Windows 7以上的系统是非常容易建立无线热 ...

  3. Zynq学习笔记(1)

    做硬件的第一个实例,一般当然是LED点灯啦~ 硬件:ZedBoard 软件:ISE 14.7 1.新建工程 2.选择平台 3.新建完成后,输入如下代码: `timescale 1ns / 1ps // ...

  4. CLR via C#深解笔记七 - 自动内存管理(垃圾回收)

    每个应用程序都要使用这样或者那样的资源,比如文件.内存缓冲区.屏幕空间.网络连接.数据库资源等.事实上,在面向对象的环境中,每个类型都代表可供程序使用的一种资源. 要使用这些资源,必须为代表资源的类型 ...

  5. CLR via C#深解笔记二 - 类型设计

    类型基础 所有类型都从System.Object派生   CLR要求所有对象都用new 操作符来创建. Employee e = new Employee("Constructor Para ...

  6. PowerPoint 打开文档发现.pptx中胡内容有问题

    一.问题的提出 有一个文件,在window 7操作系统中通过邮箱地址保存到本地,结果打开的时候出现[PowerPoint 打开文档发现 文件.pptx中胡内容有问题] 然后提示[如果您信任此演示文稿的 ...

  7. android判断EditText输入的数字、中文还是字母方法

    String txt = edInput.getText().toString(); Pattern p = Pattern.compile("[0-9]*");      Mat ...

  8. php 使用zendstudio 生成webservice文件 wsdl

    首先新建一个项目 在项目中新建下面这些文件 php类文件 test.php <?php class test { public function __construct() { } public ...

  9. 使用JavaScript判断用户是否为手机设备

    最近在做微信服务号开发,其中遇到一个问题是微信服务号查看的个人的消息,如果点击在浏览器中查看(iOS中是在Safari中打开)应该是跳转到登录页面,因为页面需要从后台获取,因为需要服务端判断,如果是存 ...

  10. [mysql]MySQL忘记密码

    1.修改MySQL的登录设置: vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi. 2.重新启动mysqld # /etc/init ...