[Tool] 使用CodeMaid自动程序排版
[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();
}
}
安装
首先至微软的官方网站,下载CodeMaid安装档:「CodeMaid_v0.7.4.vsix」。
执行CodeMaid安装档:「CodeMaid_v0.7.4.vsix」,来安装CodeMaid。
执行
使用Visual Studio开启项目。
Visual Studio上方工具栏中,开启CODEMAID选单、点选Configuration来开启CodeMaid设定画面。
CodeMaid设定画面中,进入Reorganizing->General设定页面,勾选「Run organize at start cleanup」后,点击Save按钮完成设定。
后续就可以从Visual Studio上方工具栏中,开启CODEMAID选单、点选「Cleanup all Code」来自动排版项目内的所有程序代码。
自动排版功能执行结束之后,开启项目内的程序代码,会发现程序代码内容已经排列整齐、干净,大幅提高程序代码的可维护性。
延伸
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自动程序排版的更多相关文章
- 代码整洁--使用CodeMaid自动程序排版
在项目开发的过程中,如果只是验证命名规则.而没有统一程序排版,项目中很容易就会出现类似下列范例的程序代码产出.这样的产出,虽然能够正常地提供项目功能.并且符合微软的命名规则,但是因为程序排版凌乱的问题 ...
- 使用CodeMaid自动程序排版[转]
前言 「使用StyleCop验证命名规则」这篇文章,指引开发人员透过StyleCop这个工具,来自动检验项目中产出的程序代码是否合乎命名规则. [Tool] 使用StyleCop验证命名规则 但是在项 ...
- linux下的c程序排版工具:indent
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010839382/article/details/30779523 Linux下有一个方便的c语言 ...
- linux下的c程序排版工具:indent 分类: linux 2014-06-14 20:05 720人阅读 评论(0) 收藏
Linux下有一个方便的c语言程序排版工具,只要选择恰当的参数,可以轻易地使自己的程序具有统一的风格. 当然首先要安装indent,执行命令:apt-get install indent indent ...
- [Tool] 使用CodeMaid自動程式排版 - 摘自网络
前言 「使用StyleCop驗證命名規則」這篇文章,指引開發人員透過StyleCop這個工具,來自動檢驗專案中產出的程式碼是否合乎命名規則. [Tool] 使用StyleCop驗證命名規則 但是在專案 ...
- 微信小程序开发——活动规则类文案文件读取及自动转换为小程序排版代码
前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版 ...
- QT中|Qt::Tool类型窗口自动退出消息循环问题解决(setQuitOnLastWindowClosed必须设置为false,最后一个窗口不显示的时候,程序会退出消息循环)
为application 设置setQuitOnLastWindowClosed属性,确实为true: 将其显示为false; 退出该应该程序不能调用QDialog的close消息槽,只能调用qApp ...
- C# 自动程序 windows 无法启动 XXXX 服务 错误5 拒绝访问
遇到过两次 这样的问题了,所以记录一下 原因可能是服务所在文件的目录权限不够 解决方法: 1是查看服务对应的程序所在的目录 2是设置目录的安全权限 右击–属性–安全–添加相应的帐号,给予除完全控制外的 ...
- intellij自动缩进排版
用鼠标选中需要缩进的代码块,然后输入命令 ctrl+alt+i ref: http://stackoverflow.com/questions/12264127/how-to-reindent-lin ...
随机推荐
- SQLServer 获得所有表结构(包括表名及字段)
then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, ( then '√'else '' end) 标识, (case when (SE ...
- WCF中因序列化问题引起的异常和错误。
尝试对参数 http://tempuri.org/ 进行序列化时出错: parameters.InnerException 消息是“不应为数据协定名称为“DBNull:http://schemas.d ...
- 安卓开发笔记——重识Activity
Activity并不是什么新鲜的东西,老生常谈,这里只是随笔记录一些笔记. 每当说起Activity,感觉最关注的还是它的生命周期,因为要使我们的应用程序更加健壮,客户体验更加良好,如果对生命周期不熟 ...
- Knockout 新版应用开发教程之"text"绑定
目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...
- App.js – 用于移动 Web App 开发的 JS 界面库
App.js 是一个轻量级的 JavaScript UI 库,用于创建像本地应用程序的移动 Web 应用而不牺牲性能和体验.它是跨平台的,特定的UI设计,配置类似原生的过渡效果.App.js 的目的是 ...
- iOS- NSDateFormatter (自定义时间格式)
一. NSDateFormatter解释 1. 日期(NSDate)是NSString类的格式(stringWithFormat),也可以改变输出,如果需要输出年代信息等则需要进行转换,等等. 2. ...
- C#语法糖之Cookies操作类 asp.net
用法: //声名一个数据集合 var listString = new List<string>() { "a", "b", "c&quo ...
- Java魔法堂:Date与日期时间格式化
一.前言 日期时间的获取.显 ...
- Entity Framework优缺点及使用方法总结
Entity Framework是M$提供的一个ORM框架,它旨在为小型应用程序中数据层的快速开发提供便利. nuget上185W多的下载量,说明.Net开发人员还是比较喜欢用EF的.但是EF在提供了 ...
- 价值100W的经验分享: 基于JSPatch的iOS应用线上Bug的即时修复方案,附源码.
限于iOS AppStore的审核机制,一些新的功能的添加或者bug的修复,想做些节日专属的活动等,几乎都是不太可能的.从已有的经验来看,也是有了一些比较常用的解决方案.本文先是会简单说明对比大部分方 ...