偶然机遇开启新认知
近期,我有幸接触到一种在电力系统中广泛使用的远程控制协议程序。原本以为这只是一段普通的代码,却未曾想,它让我对“代码复用”有了全新的认识。在此之前,我对代码开发有所了解,但对规约程序的复用并未深入钻研。直到这次阅读,我才恍然大悟,原来这其中蕴含着丰富的知识。
规约需求差异众多
工程师们做产品时都知道,即使是同一种104规约,不同产品线之间也存在不少差异。因为不同的市场需求各不相同,例如在那些对数据精度有较高要求的市场,就需要对104规约中的数据处理进行优化。此外,规约程序所涉及到的遥测、遥信等数据模型,每个产品都有其独特的细节,而且这些细节还会随着需求的变化而持续变动。
运行环境各不相同
工控产品在众多领域都有应用,其运行环境多变。有些因为成本或需求考虑,选择了前后台裸系统;而另一些则采用了复杂的强实时操作系统或Linux系统。在这种前后台系统中,主要是简单的函数调用;而在操作系统中,则是持续的循环任务函数。为了避免为各种不同环境分别实现104规约,建立抽象层实现兼容性变得尤为重要。
代码复用的要诀
为了使代码规范可被多次利用,在编写过程中应避免依赖特定数据,而应着重于数据接口的开发。以处理遥测数据为例,不应局限于某一特定格式,而应构建通用的接口。这样的代码具有更高的适应性,无论数据如何变化,都能灵活应对。此外,规约数据的配置不同,功能嵌入的位置也会有所区别,通常会在允许修改的场景中,嵌入到维护或配置软件中。
规约版本的多样
104规约虽然是一个国际标准,但在实际应用中,它经常需要根据不同地区、工程和特定需求进行扩展和调整,形成了各种版本的规约。例如,我就曾开发过针对中东地区的特殊版本。面对这些不断的变化,采用分层设计是一个很好的解决方案。我们可以将104规约的基本功能构建成可重复使用的模块,并且设置二次修改的机制,比如参数文件、脚本以及二次开发环境等。
打磨复用模块
在实际工作中,我们致力于确保程序架构的稳定性,并不断对细节进行优化。经过反复的打磨,针对特定行业的程序调整逐渐减少,最终成功构建了一个可复用的104规约模块。然而,要实现模块的复用,不仅规约本身要完善,还需要API接口、动态执行框架等多个模块的协同,甚至需要平台层面的支持。这也是复用模块难以实现的关键所在。
设想一下,如果公司所有软件都依照这种模式来开发,结果会如何?大家是否已经感受到了其中的益处?欢迎在评论区交流您的看法,同时也不妨点个赞、转发这篇文章。