[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自動程式排版 - 摘自网络的更多相关文章
- [Tool] 使用CodeMaid自动程序排版
[Tool] 使用CodeMaid自动程序排版 前言 「使用StyleCop验证命名规则」这篇文章,指引开发人员透过StyleCop这个工具,来自动检验项目中产出的程序代码是否合乎命名规则. [Too ...
- Android:控件WebView显示网页 -摘自网络
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要 ...
- C# 中的内存管理,摘自网络
C#编程的一个优点是程序员不需要关心具体的内存管理,尤其是垃圾收集器会处理所有的内存清理工作.虽然不必手工管理内存,但如果要编写高质量的代码,还是要理解后台发生的事情,理解C#的内存管理.本文主要介绍 ...
- Ubuntu的常用快捷键(摘自网络)
篇一 : Ubuntu的复制粘贴操作及常用快捷键(摘自网络) Ubuntu的复制粘贴操作 1.最为简单,最为常用的应该是鼠标右键操作了,可以选中文件,字符等,右键鼠标,复制,到目的地右键鼠标,粘贴就结 ...
- SQL Server Data Tool 嘹解(了解)一下 SSDT -摘自网络
Visual Studio 2010 的伺服器管理員可以用來連接 Sharepoint.伺服器,還可以透過資料連接連結至 SQL Server 等資料來源.以資料來源為例,您可以利用單一工具(Vis ...
- Scott Hanselman's 2014 Ultimate Developer and Power Users Tool List for Windows -摘自网络
Everyone collects utilities, and most folks have a list of a few that they feel are indispensable. ...
- 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络
利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...
- 使用 NodeJS + Express 從 GET/POST Request 取值 -摘自网络
過去無論哪一種網站應用程式的開發語言,初學者教學中第一次會提到的起手式,八九不離十就是 GET/POST Request 的取值.但是,在 Node.js + Express 的世界中,彷彿人人是高手 ...
- 理解OAuth 2.0 -摘自网络
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OA ...
随机推荐
- Unity寻路的功能总结
源地址:http://blog.csdn.net/sgnyyy/article/details/21878163 1. 利用Unity本身自带的NavMesh 这篇文章已经比较详细,可能对于很多需要a ...
- poj 1870 Bee Breeding
思路:首先要建立坐标,具体作法见:http://www.cnblogs.com/xin-hua/p/3237096.html 然后将得到2坐标之差x,y:如果x,y同号,则相加,否则去最大.(要取绝对 ...
- 阿里云 EDAS-HSF 用户指南
阿里云 EDAS-HSF 用户指南 针对 EDAS v2.3.0©Alibaba EDAS 项目组2015/8/19 1 前言本文档旨在描述阿里云 EDAS 产品中应用服务化模块的基本概念,以及如何使 ...
- UR #13 Ernd
考试的时候没有注意到可以将(a,b)放在二维平面上之后旋转坐标系,使得转移变成树状数组二维偏序 这样就算我想出来了第二个转移的斜率优化也没有什么卵用啊(摔西瓜 设g(i)表示当前站在第i个水果下面且第 ...
- SQLite入门与分析(二)---设计与概念
写在前面:谢谢各位的关注,没想到会有这么多人关注.高兴的同时,也感到压力,因为我接触SQLite也就几天,也没在实际开发中用过,只是最近项目的需求才来研究它,所以我很担心自己的文章是否会有错误,误导别 ...
- iOS开发--使用RSA加密
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- 你不知道的pogo pin连接器
pogo pin连接器是一种带弹簧的探针式连接器,pogo pin连接器结构看起来非常简单,但其制造工艺要求极其的精细与复杂,从车床加工,电镀,组装等每道工序,如果没有一个有良好品质控制和完善的制造水 ...
- 第十七章 委托 第十八章 Attribute 第十九章 可空值类型
1.委托揭秘 定义一个委托,编译器会生成一个继承自System.MulticastDelegate的类,所有的委托都继承自该类. 由于委托是类,所以能定义类的地方,都能定义委托. 委托内部有一个tar ...
- 隐马尔科夫模型 介绍 HMM python代码
#HMM Forward algorithm #input Matrix A,B vector pi import numpy as np A=np.array([[0.5,0.2,0.3],[0.3 ...
- 初始化一台linux server来做项目管理和测试
毕业以后很多没做过这么技术的事情了,不过今年要开始咯. Goal: 练手安装Nginx,并且配置不同的server,后端有Tomcat的(JIRA),有PHP(总得有的),还有Tornado和Node ...