Guía de estilo para C ++ [cerrado]

29

En este momento estoy usando la Guía de estilo de Google C ++ en mi código C ++ y estaba bastante contento con ella.

Recientemente me dijeron que esta guía es muy mala: Google la usa internamente (lo sabía), está desactualizada y promueve algunas prácticas muy malas. Entonces quiero usar otro estilo de codificación.

¿Qué buenas y bastante usadas guías de estilo C ++ hay? Escribo código para gcc y Visual Studio, y uso muchas de las funciones de C ++ 11.

Lo que me gustó mucho de la Guía de estilo de Google C ++ fue la sangría, el espacio en blanco y las convenciones de nomenclatura (especialmente nombrando todas las clases, tipos, incluidos los typedefs, los alias de tipo y los alias de plantilla, con mayúscula).

Sé que cualquier respuesta es subjetiva (espero que esté bien en este sitio) y agradecería cualquier opinión, pero estoy interesado en las guías que se utilizan en estos días.

bolov
fuente
1
Siempre puede usar el estilo que desee y luego volver a formatearlo al estilo preferido cuando tenga que compartirlo. Aquí hay un formateador de estilo que automatiza este astyle.sourceforge.net
Reactgular
77
Esta pregunta tiene potencial para respuestas basadas en opiniones. En lugar de cerrarlo por esta razón, alentaría a los encuestados a centrarse en hechos, como usos conocidos, recomendaciones de las autoridades, estudios comparativos y similares.
andy256
@ andy256 No podría haberlo dicho mejor.
bolov
77
¿Quién te dijo que el estilo de Google era malo y por qué te importa su opinión?
Reactgular
@MathewFoscarini hubo una discusión razonablemente reciente aquí, a pesar de que no fue demasiado en profundidad: chat.stackoverflow.com/rooms/10/conversation/… (pero luego, analizarlo en profundidad es como pasar por el FQA )
Cubbi

Respuestas:

15

Puede usar la guía de este libro para uso general:

http://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586

de Herb Sutter y Andrei Alexandrescu. Sin embargo, no tiene en cuenta C ++ 11, pero creo que habrá una nueva edición.

Pero no responderá sobre el número de espacio en lugar de las pestañas o qué tipo de notación esotérica desea aplicar. Pero esto no es lo más importante, la mayor parte del tiempo solo para tener cierta consistencia es la clave.

Nikko
fuente
8

Las críticas a la guía de estilo C ++ de Google (y estoy de acuerdo en que algunas están justificadas) no se refieren a las convenciones de nomenclatura de Google o al estilo de sangría, sino a algunas de sus otras reglas y políticas. Las convenciones de sangría / formateo y nomenclatura son una cuestión de gustos y son terreno fértil para interminables guerras religiosas de programadores, pero en C ++ donde, a diferencia de C #, no existe un estándar universal, la única pauta realmente importante es la consistencia. Para un nuevo proyecto, elija una convención de nomenclatura y un estilo de sangría que le guste y úselo constantemente. Para un proyecto existente, cumpla con la convención que ya está en uso. La regla 0 en los estándares de codificación C ++ es "No se preocupe por las cosas pequeñas". donde argumentan que las convenciones de nomenclatura y el estilo de sangría simplemente no son tan importantes mientras usted '

Para mí, un gran impulsor de la productividad ha sido automatizar la sangría / formateo utilizando el formato clang . Una vez que se haya decidido por algunas reglas de sangría y formato, le recomiendo configurar un archivo de configuración de formato .clang personalizado y no tener que preocuparse nunca más por eso :-)

Clang-format es una herramienta independiente y no requiere que uses clang como compilador. Incluso hay un complemento oficial disponible para Visual Studio.

Mattnewport
fuente
6

Como @ user113896 escribió anteriormente, Bjarne Strostrup nos dio mucha guía de estilo. Uno de sus grandes logros es el libro de estilo de codificación JSF-C ++ . Tenga cuidado, no es para c ++ normal, más para uso integrado, pero muestra cómo se deben hacer las cosas para que sea claro y funcional. Por supuesto, no tiene que tener todo en cuenta: es una guía, no un libro de pedidos :).

baderman
fuente
2

Si no ha leído los Principios y programación de Bjarne Stroustrup, le recomiendo que lo lea porque puede aprender mucho del creador del lenguaje. He visto y leído mucho del autor de C ++ y puedo decir que tiene esta fijación por el estilo y siempre le dice a la gente que escriba un código bueno y hermoso que, según él, sea más fácil de depurar y leer. Creo que es el mejor tutor y la mejor guía para escribir código C ++ elegante y hermoso.

usuario113896
fuente