Aka*_*kay 0 coding-style misra
我总是想知道一个项目/团队/公司如何选择或有资格选择像MISRA 1998/2004/2012这样的特定指南?如何确定和确定哪个指南足以满足项目要求(成本与时间对质量)?
(我知道他的问题有点生硬,但任何答案都会受到赞赏)
这通常是应用领域的要求.您将拥有安全标准,规定使用安全的编程语言子集.该要求可以来自"SIL"标准,例如工业IEC 61508,汽车IEC 26262,航空DO-178等.在这些关键任务系统中,除了使用MISRA-C之外,您可能没有其他选择.
但MISRA-C也成为所有嵌入式系统的行业标准,无论其性质如何.原因很明显:没有人,无论应用领域如何,都喜欢充满漏洞的糟糕,低质量的软件.
介绍MISRA-C,以及公司编码指南,样式规则,静态分析,版本控制......所有这些都将显着提高最终产品的质量.它将迫使程序员自我教育C,同时变得更专业.
话虽这么说,MISRA-C并不一定是每个公司最合适的规则.它主要适用于嵌入式系统.对于其他类型的应用程序,像CERT-C这样的东西可能更相关.使用这些众所周知的标准之一很方便,因为这样您就可以使用静态分析仪自动进行测试.
他们关键在于,每个生产软件的半专业公司都需要某种编码规则,专注于禁止不良做法.有些公司倾向于过分关注大多数不重要的样式细节,例如放置位置{,何时应该专注于真正提高软件质量的东西,比如"我们应该避免编写类似函数的宏".
编码规则应与开发例程集成.为单个项目实施MISRA-C没有多大意义.启动和运行涉及很多工作.
非常重要的是,你至少有一个,最好是几个有多年经验的C级退伍军人,你负责编码规则.他们需要阅读MISRA文档的每个脏细节,并确定哪些规则对公司有效.有些规则远非易懂.并非所有情况都适用于所有情况.如果您的开发团队仅由初学者或中级体验程序员组成,并且您决定遵循MISRA来写信,那么它将会非常糟糕.您需要至少一名具有足够知识的资深程序员来调用关于遵循哪些规则以及哪些规则偏离的调用.
至于选择哪个版本的MISRA-C,总是使用最新的版本:2012.它已经被清理了很多,并且已经删除了一些奇怪的规则.与旧版本不同,它也支持C99.