guia google estilo atributo c++ coding-style

c++ - google - Enlaces a guías de estilo oficiales



atributo alt y title (9)

A la pregunta complementaria: no conozco personalmente ninguna herramienta que analice el estilo en uso, pero hay herramientas que reformatean la fuente a una guía de estilo determinada. Uno que viene a la mente es el estilo artístico .

C ++ tiene varios tipos de estilos: MFC, Boost, Google, etc. Me gustaría examinar estos estilos y determinar cuál es el mejor para mis proyectos, pero quiero leer de la guía de estilo oficial. ¿Alguien tiene una guía oficial que suelen usar?

Aquí hay dos que encontré. Apuesto a que hay más:

Nota: NO es una discusión sobre qué estilo es el mejor ... solo un llamado para las guías de estilo oficiales que las personas usan actualmente. Por favor, evita criticar otras guías de estilo que no te gusten.

Pregunta complementaria: ¿existe una buena herramienta que pueda examinar el código fuente y decir si coincide con una guía de estilo determinada?


C ++ no tiene y no necesita un estilo oficial. Muchas organizaciones imponen guías de estilo a sus colaboradores para tratar de mantener algún tipo de apariencia corporativa; algunos de estos contienen fragmentos de buenos consejos, pero muchos simplemente te obligan a agregar decoraciones extrañas que parecían una buena idea para alguien que escribe un idioma completamente diferente en la década de 1980.

El único consejo realmente útil que encontrarás entre los waffles es:

  • Defina una forma consistente de distinguir tipos, objetos y algunos tipos de funciones (como accesos y fábricas), para que sepa escribir (por ejemplo) Thing thing = GetThing(); sin mirar los nombres.
  • No empieces nombres con guiones bajos. Esto está prohibido en algunas circunstancias, y es más simple y más legible no hacerlo que preocuparse exactamente cuando puede.
  • Ahorre un pensamiento para el pobre muchacho (quizás usted) que tiene que leer y mantener el código dentro de unos años.
  • Mantenlo simple.
  • Usa tu cerebro.

En cuanto a la pregunta secundaria, lo que necesita es una herramienta de análisis estático . Una herramienta costosa y enorme es Klocwork . Lo he usado en un par de tiendas y se puede configurar para emitir advertencias contra problemas de estilo. No lo recomiendo para usuarios individuales; es más para un entorno corporativo. Aunque pueden haber eliminado versiones para individuos.

Recuerde buscar en Google herramientas de análisis estático.



No existe una guía de estilo "oficial": el estándar C ++ es completamente silencioso en cuanto a estilo. Un libro sobre el tema por dos chicos de C ++ de gran conocimiento es C ++ Coding Standards por Sutter & Alexandrescu.



Otras respuestas afirman que no hay una guía de estilo oficial, que era cierta en ese momento.

Pero en 2015, Bjarne Stroustrup anunció las C ++ Core Guidelines , un proyecto de código abierto para construir directrices autorizadas para el código C ++ moderno, dirigido por el mismo Stroustrup y publicado por la Fundación Standard C ++:

http://github.com/isocpp/CppCoreGuidelines

En relación con esta pregunta, las Directrices básicas también se vinculan a otras directrices , con comentarios adicionales. Acerca de la Guía de estilo de Google C ++ frecuentemente recomendada, dicen:

Diseñado para C ++ 03 y (también) bases de código más antiguas. Los expertos de Google ahora están colaborando activamente para ayudar a mejorar estas Directrices y, con suerte, fusionar esfuerzos para que estos puedan ser un conjunto común moderno que también podrían recomendar.


También escribí algunos consejos para una buena codificación en c ++: http://www.ivanism.com/Articles/CodingStandards.html

La publicación comienza con:

El objetivo de los estándares de codificación es aumentar el valor comercial del código. La forma más obvia (y de hecho la más importante) de hacer esto es hacer que el código sea robusto y tenga un defecto bajo. Igualmente importante, pero los objetivos más sutiles incluyen reducir la fricción del codificador y la facilidad de mantenimiento. Como tal, los estándares deben mantenerse mínimos, lo suficientemente simples como para seguirlos y lo suficientemente importantes como para recordarlos.

Estos estándares se deben usar al construir nuevos archivos fuente. Cuando un archivo existente necesita ser cambiado, ese es un momento apropiado para llevarlo al nivel estándar. Sin embargo, nunca es un buen momento para editar un archivo simplemente para llevarlo al nivel estándar. Si no está roto, no lo "arregle" y recuerde siempre "Mantenerlo funcionando".

Notarás que no toco los puntos clásicos "religiosos":

tabs vs. spaces indentation style curly brace style etc...

La consistencia dentro de un archivo es importante y mejora la legibilidad. Pero permitir que los codificadores se expresen también es importante. Por lo tanto, si edita un archivo, sea conforme a la religión de ese archivo o convierta el archivo completo a un formato nuevo y consistente. Si convierte el archivo completo, de hecho se está apropiando de él, así que prepárese para ser la persona indicada o déjelo como está.


Yo uso mi propio estilo, que he escrito aquí . Ya sea que esté interesado en él como un estilo, si está buscando estilos en general, puede encontrar mi discusión sobre la motivación para que sea útil.