Guida allo stile per C ++ [chiuso]

28

In questo momento sto utilizzando la Guida di stile di Google C ++ nel mio codice C ++ ed ero carina felice con esso.

Recentemente mi è stato detto che questa guida è pessima: è utilizzata internamente da Google (lo sapevo), è obsoleta e promuove alcune pratiche pessime. Quindi voglio usare un altro stile di codifica.

Quali guide di stile C ++ valide e abbastanza usate ci sono? Scrivo codice sia per gcc che per Visual Studio e utilizzo molte delle funzionalità di C ++ 11.

Ciò che mi è piaciuto di più della Guida di stile di Google C ++ è stata la rientranza, lo spazio bianco e le convenzioni di denominazione (specialmente nominando tutte le classi, tipi - inclusi typedef, tipo alias e alias modello - con lettera maiuscola).

So che ogni risposta è soggettiva (spero che questo sia ok su questo sito) e apprezzerei qualsiasi opinione, ma sono interessato a quali guide vengono utilizzate in questi giorni.

    
posta bolov 07.01.2014 - 00:54
fonte

5 risposte

15

Puoi utilizzare le linee guida di questo libro per uso generale:

link

di Herb Sutter e Andrei Alexandrescu. Tuttavia, non tiene conto del C ++ 11, ma penso che ci sarà una nuova edizione.

Ma non risponderà del numero di spazio invece delle schede o di quale tipo di notazione esoterica vuoi applicare. Ma queste non sono la cosa più importante, la maggior parte delle volte solo per avere una certa coerenza è la chiave.

    
risposta data 07.01.2014 - 10:47
fonte
20

Le Linee guida del C ++ sono un insieme di linee guida, regole e best practice comprovate sul codice in C ++, le puoi trovare qui: link

Sono scritti da, tra gli altri, Bjarne Stroustrup e Herb Sutter .

    
risposta data 07.10.2015 - 17:00
fonte
6

Le critiche alla guida in stile C ++ di Google (e sono d'accordo su alcune sono giustificate) non riguardano le convenzioni di denominazione o lo stile di indentazione di Google, ma piuttosto alcune delle loro altre regole e politiche. Le convenzioni di indentazione / formattazione e denominazione sono entrambe una questione di gusto e sono terreno fertile per infinite guerre religiose programmatrici ma in C ++ dove a differenza di C # non esiste uno standard universale, l'unica linea guida veramente importante è la coerenza. Per un nuovo progetto, scegli una convenzione di denominazione e uno stile di indentazione che ti piace e usalo in modo coerente. Per un progetto esistente, attenersi alla convenzione già in uso. La regola 0 in Standard di codifica C ++ è "Non preoccuparti delle piccole cose". dove sostengono che le convenzioni di denominazione e lo stile di indentazione non sono importanti finché sei coerente.

Un grande aumento della produttività per me ha automatizzato l'indentazione / formattazione utilizzando formato clang . Una volta che hai definito alcune regole di indentazione e formattazione, ti consiglio vivamente di impostare un file di configurazione in formato .clang personalizzato e di non dovertene mai più preoccupare :-)

Il formato Clang è uno strumento autonomo e non richiede l'uso di clang come compilatore. C'è persino un plugin ufficiale disponibile per Visual Studio.

    
risposta data 07.10.2015 - 18:08
fonte
5

Come scritto in precedenza da @ user113896, Bjarne Strostrup ci ha dato molte indicazioni di stile. Uno dei suoi successi è il libro di stile di codifica JSF-C ++ . Attenzione, non è per il normale c ++, più per l'uso embedded, ma mostra come le cose dovrebbero essere fatte per essere chiare e funzionali. Ovviamente - Non devi prendere tutto in considerazione - è una guida, non un libro degli ordini :).

    
risposta data 07.01.2014 - 09:43
fonte
2

Se non hai letto Programmazione e Principi di Bjarne Stroustrup ti consiglio vivamente di leggerlo perché puoi imparare molto dal creatore della lingua. Ho visto e letto molto dall'autore del C ++ e posso dire che ha questa fissazione per lo stile e dice sempre alle persone di scrivere un codice bello e bello che secondo lui è più facile fare il debug e leggere. Credo che sia il miglior tutor e la migliore guida per scrivere codice C ++ elegante e bello.

    
risposta data 07.01.2014 - 08:45
fonte

Leggi altre domande sui tag