用户中心

资讯 > 技术之源

工业编程的可维护性

来源:控制工程网2020.11.10阅读 2710

  最近有一个令人头疼的项目,工作已完成了95%,但该项目已经超出了预算,并且一直在延期,项目最初的开发人员不愿继续为该项目工作。领导要求我介入并估算完成项目所需的工作量。
  这是有史以来最混乱的程序之一。输送机系统是一系列重复的组件。该代码是梯形图逻辑例程的集合CONTROL ENGINEERING China版权所有,每个输送机一个例程,逻辑大部分都是复制/粘贴的,只是重新命名了标签而已。听起来还不错吗?每个输送机例程都需要定制预期功能,因此每个例程都有些不同。我必须弄清楚,为什么现有程序在1%的情况下失败了。总计有100条输送机,100条例程和50条梯形图逻辑,每条语句的逻辑都有问题,重复且容易出错。
  可维护性是一个常见的工业编程问题。除非您熟悉该代码,否则的话,在修改程序之前,可能需要花费数小时的时间才能理解每条语句。工业编程中常见的组织和结构限制控制工程网版权所有,使诸如此类的大型项目变得凌乱不堪。
  可扩展性也是一个相关问题。计划中的项目升级之一,是使系统扩展到目前规模的两倍甚至三倍。在当前的配置中,这可能意味着200个新的例程。复制/粘贴是捷径控制工程网版权所有,但是您必须编辑每个标签。
  总结一下:该代码不易于扩展,不利于其他程序员开展维护工作,并且不能完全正常工作。要实现既定目标,需要数人数月的努力,大规模重写代码。
  调试和改进当前代码可能比重做更快。考虑到范围的变更,无法保证一定成功,但有可能实现。这仍然会给项目带来混乱,无法配合计划的扩张。
  老派的PC程序员John Woods有句很有用的话,可以恰当描述这种情况:“编写代码时,假定最终维护您代码的那个人会是一个暴力的心理变态者,并且他知道您的住所。”
  实际上,我们有义务重做此事。如果问题需要在一夜之间解决,情况可能会有所不同,但无论如何,这都需要大量的努力。还不如把它做好,把事情更好的留给下一个程序员,不管他是不是神经病。
  换个时间,换个地方,我们可能会做出不同的选择,但要需要注意每种选择的利弊,并为你的选择负责。
  好的部分要保持不变。硬件的连接情况很好,因此通常不需要更改I/O。该安全程序运行良好控制工程网版权所有,且没有复杂到以无法理解,因此无需进行修补。自动控制与手动控制的逻辑很好。即使我选择重新编写核心输送机控制程序,很多梯形图逻辑还是值得保留的。记住这句格言:“如果它没坏,就别修它。”
  在这种情况下控制工程网版权所有,决定改写是成功的:将3,000句梯形图逻辑替换为约500句。它更简洁、更易于维护,并且可以完成所需的功能。花了将近3周的时间,重新编写所有程序,其中还包括未来扩展所需的大部分工作。通过更改一些标签,就可将系统扩展一倍。
  个人认为,灵活性升级几乎总是物有所值。由于编写的代码不可读,您的客户在需要帮助时,总是特别依赖您,这是不应该的。除非代价过高,或工期不可接受,否则大多数项目都可以在某个时点重新编程。否则的话,您只能在重做之前,先打上很多补丁。(作者:David Breen)

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688