永远不要手改你的自动代码
之前评审了一版软件,发现其中有几个自动代码被人为后期注释掉了和手工修改。这个在基于模型的设计中是大忌,之前老胡在公众号中就提过这一点:永远不要手工修
改你的模型代码!
可是还是有人图方便,随意的修改生成的自动代码,我把它叫做手自一体。那么我为什么这么强调这点呢?原因如下:
代码风格的一致性
手自一体代码的出现,相当于在兰州牛肉面的餐厅里点了一份黄焖鸡米饭的感觉,怎么看怎么觉得怪怪的。手自一体的代码有时候是最糟糕的代码,因为这部分代码经常是开发人员很随意添加或删去的,没有经过专业的Code Review,让人看的一头雾水,代码的准确性也很难保证。
难以维护
难以维护是手自一体代码的最大缺点。由于你的代码是在生成后手动更改的,后续的每次升级都需要重新移植这部分的手工修改的内容,而这个大坑经常只有少数几个人知道。对于新人而言常常会不知道这个大坑,导致功能升级出现缺失或产生错误。
重复工作
正如之前提到的,开发人员每次升级都需要重新手工移植这部分功能,毫无疑问增加了开发工程师的负荷。
无法可视化
由于这部分代码是脱离模型的,所以基本上在功能文档上也看不到,如果出现问题,排查过程也很是费劲。
更容易产生错误
一般来说,应用层模型往往是系统工程师开发的,而系统工程师的代码能力参差不齐,很容易出现一些未可知的错误。即使你是代码能力超一流的工程师,我还是建议你在能用自动代码的时候尽量使用自动代码。
但是有人说,如果我一定需要加入手工代码那该怎么办呢?可以在Simulink中新加Class或Stateflow来实现手工代码的引入。这样在最后生成的自动代码中就会同步添加这部分手工代码,这是最为推荐的办法。其次可以通过引入外部头文件的形式,来实现手工代码的添加。总而言之,要想在自动代码中添加手工代码,一定要在模型内实现,而不是通过后期修改自动代码来实现。
往期推荐


