BARR-C:2018 está completamente alineado con MISRA C:2012. Muchos desarrolladores de firmware eligen combinar las reglas estilísticas libres de errores del estándar BARR-C con las pautas de seguridad de MISRA C.
BARR-C:2018 está completamente alineado con MISRA C:2012. Muchos desarrolladores de firmware eligen combinar las reglas estilísticas libres de errores del estándar BARR-C con las pautas de seguridad de MISRA C.
Hace un tiempo escribí una columna haciendo preguntas. ¿Qué estándares de codificación son mejores para el software integrado? Como parte de eso, mencioné que mi trabajo diario es ingeniero de diseño de hardware. Como resultado, gran parte de lo que sé sobre cómo escribir código se basa en programas que he visto y escrito por otras personas.
Lamentablemente esto me trajo mucho dolor. Porque en mi desesperación por hacer que pareciera que estaba escribiendo “código de tipo grande”, en realidad adopté muchos malos hábitos.
Por suerte, tuve la suerte de que me presentaran Estándar de codificación C incorporado Creado por Grupo Barr. Este estándar se desarrolló para minimizar los errores de firmware centrándose en reglas prácticas que los eliminan al mismo tiempo que mejoran la capacidad de mantenimiento y la portabilidad del software integrado. El estándar detalla un conjunto de principios básicos, convenciones de nomenclatura específicas y otras convenciones para usar tipos de datos, funciones, macros de preprocesador, variables, etc. Se destacan las reglas individuales que han demostrado reducir o eliminar tipos específicos de errores.
Déjame decirte que aprendí mucho con este libro. Incluso “pequeñas cosas” como usar sangría de 4 espacios o usar siempre espacios para sangría en lugar de tabulaciones (¿sabías que los programadores que usan espacios ganan más dinero?) Otra buena práctica es usar siempre llaves { } para encerrar bloques de código (incluso para declaraciones únicas y vacías, después de if, else, switch, while, do, etc., también conocidas como declaraciones compuestas, esto es un poco complicado al principio, pero ahorra mucho tiempo y frustración en el futuro).
Recientemente, Michael Burr del Bar Group Estándar de codificación C incorporado es el segundo estándar más importante para los profesionales. Por supuesto, esto me llevó a buscar primero los estándares más compatibles. mitra cAquí MISRA es un consorcio interesado en promover las mejores prácticas en el desarrollo de sistemas integrados relacionados con la seguridad.
MISRA C es un subconjunto de C destinado a promover la seguridad, la portabilidad y la confiabilidad del código en el contexto de los sistemas integrados. El problema es que la sangría, los estándares de nombres, decidir cuándo usar y dónde poner llaves { } y las mejores prácticas para comentar el código están fuera del alcance de MISRA C.
Lo que realmente necesita es la combinación de MISRA C y Barr Group. Estándar de codificación C incorporadoPor lo tanto, Barr Group se complace en anunciar que ha lanzado una versión actualizada del estándar conocido como BARR-C:2018.
Esta última versión resuelve varios conflictos previos entre sus reglas y las de MISRA C:2012 Guidelines for Using the C Language in Critical Systems. Según el comunicado de prensa:
Muchos desarrolladores de firmware eligen combinar las reglas estilísticas libres de errores del estándar BARR-C con las pautas de seguridad de MISRA C. 10 diseñadores profesionales de sistemas integrados que aplican uno o ambos a sus proyectos actuales.
Ahora, Barr Group Estándar de codificación C incorporado ¿precio?Lo creas o no, puedes Descargar copia en PDF gratisO puedes pedir BARR-C: 2018 Tapa blanda Puede obtenerlo en Amazon por solo $ 5.99 (acabo de pedir una copia para mí).
Por último, pero no menos importante, si desea crear un estándar de codificación personalizado para el uso interno de su organización basado en el estándar de codificación C incorporado, puede: comprar una licencia Obtenga el formato editable de Microsoft Word (.DOC) por solo $99. Creo que este es el mejor trato para cualquier organización grande.
¿Ha utilizado alguno de estos estándares usted mismo? Si es así, me encantaría escuchar su opinión sobre ellos y otras ideas sobre estándares y prácticas de codificación.