敬业的IT人 >> 编程开发 >> 其他语言 >> 除掉构建脚本中的气味

除掉构建脚本中的气味

敬业的IT人 互联网 佚名 2008-1-4 13:41:19
    您把多少时间花在维护项目构建脚本上?也许远远超出您预期的或者可以忍受的时间。其实大可不必遭受如此痛苦的经历。在这一期的让开发自动化 中,开发自动化专家 Paul Duvall 将演示如何改进很多常见的妨碍团队创建一致的、可重复的、可维护的构建的实践。

    当描述代码之类的东西时,我不喜欢 “气味(smell)”这个词。因为用拟人的手法来谈论比特和字节往往令人觉得很怪异。并不是说“气味”这个词不能准确地反映出某种表明代码可能有错误的症状,只是我觉得这样听起来很滑稽。然而,我依然选择再次用这种令人厌烦的方式来描述软件构建,坦白说,这是因为这些年我见过的很多构建脚本都散发着难闻的气味

    在创建构建脚本时,即使是伟大的程序员也常常会遇到困难。就好像最近才学会如何编写程序性 代码似的 —— 他们还会编写庞大的单块构建文件、通过复制-粘贴编写代码、对属性进行硬编码等等。我总是很想知道为什么会这样。也许是因为构建脚本没有被编译成客户最终会使用的东西?然而我们都知道,要创建客户最终使用的代码,构建脚本是中心,如果那些脚本败絮其中,那么要想有效地创建 软件,就需要克服重重挑战。

    幸运的是,您可以轻松地在构建(不管是 Ant、Maven 还是定制的)之上部署一些实践,它们虽然可以帮助您创建一致的、可重复的、可维护的构建,但其过程会很长。学习如何创建更好的构建脚本的一种有效的方法是搞清楚哪些事情不要 去做,理解其中的道理,然后看看做事的正确 方法。在本文中,我将详细论述您应该避免的 9 种最常见的构建中的气味,为什么应该避免它们,以及如何修复它们:

  • 惟 IDE 的构建
  • 复制-粘贴式的编写脚本方法
  • 冗长的目标
  • 庞大的构建文件
  • 没有清理干净
  • 硬编码的值
  • 测试失败还能构建成功
  • 魔力机
  • 格式的缺失
除掉构建脚本中的气味(图一)

    对一台机器的硬编码引用,包括特定驱动器(例如 C:)的路径,以及机器上特有的工具,都是令一台机器着魔的罪魁祸首。每当看到对 C: 盘的引用,或者看到对特定工具(例如 grep)的调用时,应该马上更改脚本。如果发现自己声称 "C:\Program Files\ 目录在台机器上都有" 的时候,也要三思。

不良格式也有气味

    和主流语言中的编程格式一样,在管理构建脚本的时候,也有类似的考虑。当为构建脚本考虑编程格式的时候,需要考虑以下几个方面:

  • 属性名称
  • 目标名称
  • 目录名称
  • 环境变量名称
  • 缩进
  • 代码行长度

    就个人而言,对于格式上的约定,我喜欢尽可能利用他人的规则。幸运的是,有人已经提供了那样的参考,即 The Elements of Ant Style (见 参考资料)。在这本书中,作者描述了各种规则,例如用小写字母加上用于分隔单词的连字符来命名目标,以及代码行长度和缩进等。不管选择哪一种方法,始终如一地应用有关格式的规则有助于构建文件的长期维护。

构建从来没有如此好闻

    我尚能忍受廉价香水的气味。但是,如果说有一样东西我无法忍受的话,那一定是难于维护的构建脚本所散发出的气味。差劲的代码显然会浪费您宝贵的时间,设计不良的构建也不例外。如果构建中还飘散着不一致的、不可重复的和不可维护的气味,那么现在就花时间重构这些至关重要的资源吧。您的开发环境定会香如玫瑰。

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com