|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么?强迫编码作风是一个临时被强烈热闹争辩的话题。人们不但为团队应当遵守何种编码作风而争辩不休,同时还要争辩事实是不是应当建立一个尺度的编码作风。如今,微软公布了StyleCop,这是他们在外部利用的一个编码作风强迫工具,微软的这一举动无疑将起到火上加油的感化。StyleCop,也即所谓的微软C#源代码剖析器(MicrosoftSourceAnalysisforC#),用处和FxCop类似,只不外感化对象是源代码。别的,它和FxCop一样是源于微软的外部工具,在开展到必定水平以后,微软以为对其别人也有用,因而被公然公布。不外,StyleCop的自界说水平不如FxCop那末高。SourceAnalysis的终极方针是同意你天生文雅、分歧的代码,让你的团队成员和其他检察你代码的人简单浏览。为到达这一目标,SourceAnalysis不同意它的划定规矩被过量的设置。SourceAnalysis利用一种一致的体例来处置代码作风、结构和可读性划定规矩。你极可能其实不认同一切的划定规矩,乃至会发明某些划定规矩并不是如你所愿。但是,在微软外部利用这个工具的年夜部分团队在经由长久的调剂期后,都可以怅然承受SourceAnalysis强迫请求的这些划定规矩,乃至入手下手以为假如不利用这类作风来编写代码,就很难浏览。 JasonAllor宣称由这个工具所强迫请求的约莫200条划定规矩与VisualStudio的默许设置是兼容的。遗憾的是,他健忘提到VisualStudio具有6个完整分歧的默许设置汇合,个中多半与这个工具相互冲突的。
这个工具触及的方面包含:
- 撑持文件内容
- 调试文本
- 编排元素头和文件头中的文档格局
- 元素、语句、表达式和查询子句的结构
- 行空格
- 元素、字段和变量的定名
- 年夜括号、圆括号、方括号等的地位
- 在办法声明或办法挪用中办法参数的地位
- 关头字和操纵符四周的空格
- 在类中元素的尺度按次
- 会见润色符的利用
- 内置范例的利用
在空缺的把持台使用程序上运转这些划定规矩,会前往9个毛病,假如你翻开“KeepTabs”设置,则会呈现16个毛病。一些划定规矩稍显愚笨,比方请求“using”唆使符必需放在定名空间内,而不是放在文件顶部。
已有人在埋怨这个工具缺少校订的撑持。DustinNorman写道:
在将这个工具运转在一个较小的程序集上时,这个工具要我手动修正561个背规毛病,而它却不克不及在不影响代码语义的基本上主动为我修复毛病——这真的要让我溃散了! 陈旧的tabsvsspaces争辩【译者注:即代码的缩进是用Tabs来完成仍是用Spaces来完成】又被说起,并且我们还不克不及禁用这一划定规矩。NickBerardi写道:
真是开顽笑。Tabs竟然不被同意。相反,只能利用空格。这个主张糟透了,由于它会损坏语句块的结构,比方一个变量利用3个空格,而其他变量则利用了4个。不管怎样,应当同意禁用相似tab划定规矩如许毫偶然义的划定规矩。如果可以禁用这些划定规矩,这个工具就更好了。我晓得你会说他们已够好了。可是我完整分歧意利用空格来取代tab。这是毫无逻辑可言的,也许只要在Vi编纂器第一次呈现从而激发了开辟职员之间的“圣战”可堪对比吧。我喜好用Tab的体例编写我的代码,但它老是告诫我,我的每行代码都有tab在个中。 同时,DanielStolt也问到了关于VB的情形:为.NET开辟职员供应一些分外工具老是受接待的——但为何只要C#的?代码格局的强迫划定规矩关于VB开辟职员来讲也长短常必要的。明显,VB代码编纂器在对关头字和操纵符举行缩进和空格的处置中,已具有主动格局化的一些开端撑持,但还不敷靠近StyleCop所撑持的效果。
特地说来,我完整批准NickBerardi关于tabsvsspaces的概念:利用tabs有甚么成绩?岂非按4-5次偏向按钮比间接指向某个地位更有某种上风?仍是在源代码文件中保留4-5个空缺字符存在着某种优点? 在撑持主动校订方面的确存在一些成绩,今朝还没有给出办理这个成绩的工夫表呢。
检察英文原文:StyleCop–Microsoft"sStyleEnforcementToolforC#
来自:http://www.infoq.com/cn/news/2008/05/StyleCop我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高net网页编程的运行效率。只是将net网页编程源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。 |
|