控制系统编程:设计时间多,实现时间少

工程和IT洞察:懒惰?优秀的控制系统程序员花更多的时间在设计上,这样他们在实现阶段花的时间就少得多。虽然看起来你需要很懒才能成为一名优秀的控制系统程序员,但你只要在编程时间和预算上保持聪明、高效和节俭就行了。

文/丹尼斯·布兰德 2014年10月15日

要成为一名优秀的控制系统程序员,需要的不仅仅是良好的编程习惯。开发健壮、可靠、高效和优雅的控制系统涉及多种技能。作为一名优秀的控制系统程序员,需要具备设计系统、实现系统、调试系统、记录系统以及与不同团队合作的技能。要记住的重要一点是,不是每个人在每个领域都有相同的技能或能力。有些人更擅长设计系统,但在处理高效编程所需的细节方面表现平平。有些人擅长调试系统,但在记录系统和实现时却失败了,而另一些人是世界级的编码人员,但不能与其他团队成员很好地合作。如果你想成为一个伟大的控制系统程序员,重要的是要认识到你的优势,确定你需要改进的地方,并系统地解决你的弱点。

控制系统程序员最常见的弱点之一是系统设计和体系结构。许多控制系统程序员都是自学成才,拥有其他领域的学位,除了编程课程之外,没有接受过正式的软件工程培训。即使是那些拥有计算机科学学位的人也经常专注于软件编码,而不是系统设计和体系结构。但是,您可以开发一些良好的设计习惯来帮助设计高效而优雅的系统,以及健壮而可靠的体系结构。

偷懒:减少总花费的时间

最好的设计习惯是“偷懒”。这意味着通过在设计阶段花更多的时间,在实现阶段花更少的时间来减少必须编写、测试、记录、调试和安装的代码量。花时间用1000行代码开发一个高效的设计,比用10000行代码编写一个快速编写但考虑不周的设计要好,因为这些代码似乎从未被完全调试过,而且总是在“升级”。

“懒惰”的方式是永远不要停止阅读和学习新的体系结构和新方法。软件开发不是一个定义良好的静态环境;它在不断发展。随着计算机变得更快,内存变得更便宜,网络变得更快,磁盘变得更快更便宜,以前不合理的设计和模型现在变得可能。五年前甚至无法想象的架构现在正在成为主流解决方案。学习新的设计模式和解决问题的简单方法的最好方法是养成阅读软件杂志和博客的习惯。加入IEEE计算机协会并阅读每月的杂志。计划每天至少花30分钟阅读别人设计解决方案的不同方法。这30分钟也会让你跟上新工具,这样你就可以创造性地应用新发现的解决方案来解决新问题。

除了“偷懒”之外,你还可以学习一些非常具体的设计习惯。首先设计你的界面,然后是算法。当您首先设计接口时,您是从代码用户的角度来处理问题的。您应该设计一个接口,使其易于使用,并且不需要了解实现算法。如果你的界面需要最小的“心理”空间去理解,那么它也将很容易调试和记录。

偷懒:重用代码

养成重用设计的习惯,这是“偷懒”的终极方法。不要害怕从以前的项目中剪切和粘贴设计元素。开发和使用可重用设计库,并与其他设计师共享该库。在重用中要避免的一个坏的设计习惯是过度一般化。您可以为重用而设计,但是如果您在一般化设计元素方面走得太远,就有可能使接口变得更加复杂。在设计标准解决方案时,这是一个常见的问题,必须处理每个低概率用例。在开发设计时,要考虑设计重用的可能性,但不要试图设计它来处理100%的情况。相反,要保证50%到75%的覆盖率。

偷懒:为更快的验证编写文档

养成用正式形式进行设计的习惯。学习统一建模语言UML (www.uml.org),以记录您的设计,以便易于理解和验证。自然语言,尤其是英语,在记录设计时很糟糕。使用非结构化的自然语言很容易忽略重要的元素和变化。UML在软件工程中的作用与电路图在电气工程中的作用相同。没有电气工程师会在没有电路图的情况下开始将组件连接在一起,没有软件工程师会在没有UML定义的情况下开始编码。

你养成的良好的设计习惯将通过减少你需要做的控制系统编程的数量,使你成为一个更好的控制系统程序员。有了经过深思熟虑的设计,可以重用元素,有正式的文档,并且基于最先进的体系结构和模型,您的控制系统将更加健壮、可靠和可维护。

- Dennis Brandl是BR&L咨询他的公司专注于IT制造业。编辑:Mark T. Hoske,内容经理,控制工程mhoske@cfemedia.com。

在线额外

www.uml.org

这个发布的版本包含比印刷/数字版本的更多信息控制工程

www.globalelove.com,搜索Brandl了解更多相关主题。

参见2014年的其他文章www.globalelove.com/archives

看到其他制造IT文章

请参阅有关理解UML的相关文章。