2011-02-04 2 views
3

Possible en double:
The Definitive C++ Book Guide and ListQue dois-je lire pour améliorer mon C++ le style

je développais pour le temps assez long déjà sur C/C++ (la plupart du temps C, ce qui rend le style plus pauvre). Donc, je sais comment l'utiliser. Cependant, assez souvent je suis resté avec des décisions de style comme: - devrais-je retourner le code d'erreur ici, jeter des exceptions, renvoyer l'erreur par un paramètre - devrais-je avoir toutes ces choses dans le constructeur ou devrais-je créer une fonction init séparée pour cela. et ainsi de suite.

Toutes les solutions fonctionneront. Cependant, chacun d'eux a des inconvénients et des avantages, que je connais et surtout que je ne connais pas.

Il serait très agréable de lire quelque chose concernant le style de développement C++ global, les pratiques de codage et ainsi de suite. Que recommandez-vous?

+0

Pas un doublon puisque cette "question" ne classe aucun livre comme un "style". –

+1

Cette liste répond à cette question, mais je n'appellerais pas cela une copie de ceci (celle-là n'est même pas une question ...) – 6502

+0

La question de savoir si retourner un code d'erreur ou lancer une exception n'est pas une question de * style*. –

Répondre

3

Voici une liste de livres vraiment bons sur C++:

The Definitive C++ Book Guide and List

Lire certains d'entre eux selon votre niveau. Cela améliorerait certainement votre style de codage!

je suggère personnellement de lire:

  • efficace C++ série C++ par Scott Meyers
  • exceptionnelle C++ série par Herb Sutter

exceptionnelle C++ discute exception de sécurité code en profondeur. Après avoir lu ce livre, j'ai appris comment l'exception-effets de sécurité conçoivent des classes, et des interfaces. Hautement recommandé!

+3

Et lire plus efficace C++, efficace STL, et les autres dans la série C++ exceptionnelle. –

+0

+1 pour les trucs de Meyers, -1 pour le C++ Exceptionnel que l'IMO n'est pas très intéressant (surtout pour le style). – 6502

+0

@ 6502: Je ne suis pas d'accord. Je pense que c'est C++ Exceptional qui discute en profondeur du code de sécurité. Après avoir lu ce livre, j'ai appris comment les effets d'exception dessinent des classes, et des interfaces! – Nawaz

1

C'est un livre plus ancien, mais je suis un grand fan de 'Code Complete' de Microsoft. Cela m'a aidé à réfléchir à certains des choix de conception comme ceux que vous avez décrits. Ils préconisent une stratégie de conception de code qui facilite le débogage.

Un exemple très rudimentaire test variable dans une instruction if

if(nCheck = 1) { 
    // will always do this because nCheck was assigned 0 
} 

si vous prenez l'habitude d'écrire votre si des déclarations comme les suivantes

if(1 = nCheck) { 
    // Now the compiler will catch the assignment as an error 
} 

Votre code devrait vous aider en attrapant la plupart des bogues syntaxiques faciles. Ce n'est que la pointe de l'iceberg. Le livre a beaucoup de ces exemples de pratiques intelligentes que Microsoft a utilisé au cours des années.

2

En particulier, un livre saute aux yeux: Normes de codage C++. Ce livre recommande quelques idées légèrement discutables/inutiles (comme postfix _ pour les membres) mais surtout c'est très solide.

Ensuite, le livre "Exceptionnel" de Sutter est important pour le style. La bonne chose à leur sujet est qu'ils couvrent des domaines importants où C++ est plutôt ... "différent". Il couvre comment protéger votre code contre les exceptions et explique en détail les effets des exceptions sur les pratiques de codage.

Les livres de Myers sont bons aussi, mais un peu datés. Les livres rouges sont plus importants à mon humble avis.

Un autre livre daté qui est souvent négligé est Generic Programming et le STL. Il est presque, peut-être, pré-standard, mais il explique les comment et pourquoi de la STL, ce qui est très important pour tout développeur C++. Ça m'étonne toujours à quel point les gens sont étonnés quand je leur montre un peu de code d'envoi de tags.

0

Pour une meilleure compréhension C++ et pour le style que je recommande

  1. efficace C++ série de Meyers
  2. C++ FAQ (le livre) de Cline

Les deux sont aussi une "lecture facile" Merci au format des petites pilules.