剖析短迭代
敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?
作者 Jonathan Allen译者 朱永光 发布于 2008年6月10日 上午9时2分
强制编码风格是一个长期被热烈争论的话题。人们不仅为团队应该遵循何种编码风格而争论不休,同时还要争论究竟是否应该确立一个标准的编码风格。现在,微软发布了StyleCop,这是他们在内部使用的一个编码风格强制工具,微软的这一举措无疑将起到推波助澜的作用。StyleCop,也即所谓的微软C#源代码分析器(Microsoft Source Analysis for C#),用途和FxCop相似,只不过作用对象是源代码。此外,它和FxCop一样是源于微软的内部工具,在发展到一定程度之后,微软觉得对其他人也有 用,于是被公开发布。不过,StyleCop的自定义程度不如FxCop那么高。
Source Analysis的最终目标是允许你生成优雅、一致的代码,让你的团队成员和其他查看你代码的人容易阅读。为达到这一目的,Source Analysis不允许它的规则被过多的配置。Source Analysis使用一种统一的方式来处理代码风格、布局和可读性规则。你很可能并不认同所有的规则,甚至会发现某些规则并非如你所愿。然而,在微软内部 使用这个工具的大部分团队在经过短暂的调整期后,都能够欣然接受Source Analysis强制要求的这些规则,甚至开始认为如果不使用这种风格来编写代码,就很难阅读。
Jason Allor声称由这个工具所强制要求的大约200条规则与Visual Studio的默认设置是兼容的。遗憾的是,他忘记提到Visual Studio具有6个完全不同的默认设置集合,其中多数与这个工具互相矛盾的。
这个工具涉及的方面包括:
在空白的控制台应用程序上运行这些规则,会返回9个错误,如果你打开“Keep Tabs”设置,则会出现16个错误。一些规则稍显笨拙,例如要求“using”指示符必须放在命名空间内,而不是放在文件顶部。
已经有人在抱怨这个工具缺乏校正的支持。Dustin Norman写道:
在将这个工具运行在一个较小的程序集上时,这个工具要我手动修改561个违规错误,而它却不能在不影响代码语义的基础上自动为我修复错误——这真的要让我崩溃了!
古老的tabs vs spaces争论【译者注:即代码的缩进是用Tabs来实现还是用Spaces来实现】又被提及,而且我们还不能禁用这一规则。Nick Berardi写道:
真是开玩笑。Tabs居然不被允许。相反,只能使用空格。这个主意糟透了,因为它会破坏语句块的布局,例如一个变量使用3个空格,而其他变量则使用了4个。无论如何,应该允许禁用类似tab规则这样毫无意义的规则。如 果能够禁用这些规则,这个工具就更好了。我知道你会说他们已经够好了。但是我完全不同意使用空格来代替tab。这是毫无逻辑可言的,或许只有在Vi编辑器 第一次出现从而引发了开发人员之间的“圣战”可堪比拟吧。我喜欢用Tab的方式编写我的代码,但它总是警告我,我的每行代码都有tab在其中。
同时,Daniel Stolt也问到了关于VB的情况:
为.NET开发人员提供一些额外工具总是受欢迎的——但为什么只有C#的?代码格式的强制规则对于VB开发人员来说也是非常需要的。显然,VB代码编辑器在对关键字和操作符进行缩进和空格的处理中,已经具有自动格式化的一些初步支持,但还不够接近StyleCop所支持的效果。
顺便说来,我完全同意Nick Berardi对于tabs vs spaces的观点:使用tabs有什么问题?难道按4-5次方向按钮比直接指向某个位置更有某种优势?还是在源代码文件中保存4-5个空白字符存在着某种好处?
在支持自动校正方面确实存在一些问题,目前还没有给出解决这个问题的时间表呢。
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。
InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!
在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。
通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。
本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。
InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。
没有回复
回复