用户中心

资讯 > 技术之源

工业编程的可维护性

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

  最近有一个令人头疼的项目,工作已完成了95%,但该项目已经超出了预算,并且一直在延期,项目最初的开发人员不愿继续为该项目工作。领导要求我介入并估算完成项目所需的工作量。
  这是有史以来最混乱的程序之一。输送机系统是一系列重复的组件。该代码是梯形图逻辑例程的集合,每个输送机一个例程,逻辑大部分都是复制/粘贴的,只是重新命名了标签而已。听起来还不错吗?每个输送机例程都需要定制预期功能,因此每个例程都有些不同。我必须弄清楚,为什么现有程序在1%的情况下失败了。总计有100条输送机控制工程网版权所有,100条例程和50条梯形图逻辑,每条语句的逻辑都有问题,重复且容易出错。
  可维护性是一个常见的工业编程问题。除非您熟悉该代码,否则的话,在修改程序之前,可能需要花费数小时的时间才能理解每条语句。工业编程中常见的组织和结构限制,使诸如此类的大型项目变得凌乱不堪。
  可扩展性也是一个相关问题。计划中的项目升级之一,是使系统扩展到目前规模的两倍甚至三倍。在当前的配置中www.cechina.cn,这可能意味着200个新的例程。复制/粘贴是捷径,但是您必须编辑每个标签。
  总结一下:该代码不易于扩展,不利于其他程序员开展维护工作,并且不能完全正常工作。要实现既定目标,需要数人数月的努力www.cechina.cn,大规模重写代码。
  调试和改进当前代码可能比重做更快。考虑到范围的变更,无法保证一定成功,但有可能实现。这仍然会给项目带来混乱,无法配合计划的扩张。
  老派的PC程序员John Woods有句很有用的话www.cechina.cn,可以恰当描述这种情况:“编写代码时,假定最终维护您代码的那个人会是一个暴力的心理变态者控制工程网版权所有,并且他知道您的住所。”
  实际上,我们有义务重做此事。如果问题需要在一夜之间解决,情况可能会有所不同,但无论如何,这都需要大量的努力。还不如把它做好,把事情更好的留给下一个程序员,不管他是不是神经病。
  换个时间,换个地方,我们可能会做出不同的选择,但要需要注意每种选择的利弊,并为你的选择负责。
  好的部分要保持不变。硬件的连接情况很好,因此通常不需要更改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