Maison  >  Article  >  développement back-end  >  Programmation C : quatre livres et cinq classiques

Programmation C : quatre livres et cinq classiques

黄舟
黄舟original
2017-02-06 14:12:571355parcourir

C est un grand langage largement utilisé dans le développement de logiciels industriels. Sa propre complexité et sa capacité à résoudre des problèmes réels lui confèrent une grande valeur de recherche académique et une grande valeur industrielle. Comme le langage C, le C a connu beaucoup de succès dans de nombreux domaines importants.


Cependant, une réalité indéniable est que dans le domaine de la programmation de bas niveau, C serre C et souffre également du fort rebond de C, et dans le domaine de la programmation de haut niveau, Java et C# empiètent constamment sur le territoire du C. Peut-être que l'intégration du C et du C sera toujours un rêve. Peut-être que l'engouement pour Java et C# finira par forcer le C à revenir à ses racines - aux domaines de développement où il présente des avantages fondamentaux : la programmation système de bas niveau, les grandes avancées avancées. conception d'applications hautes performances à grande échelle, programmation embarquée et calcul scientifique numérique, etc. Si c'est le cas, je pense que ce n'est pas une mauvaise chose.


C a attiré tellement d'investissements intellectuels qu'il existe d'innombrables ouvrages excellents dans ce domaine, notamment des produits logiciels, des bibliothèques et des livres lourds. Une signification moins stricte du titre « Quatre livres et cinq classiques de la programmation C » est : Quatre livres et cinq classiques de la programmation C. Oui, dans cet article (et le prochain), je recommanderai plus de 20 bons livres C par catégorie que vous pourrez choisir de lire en fonction de vos propres besoins.


TCPL et D&E


TCPL et D&E sont "Le langage de programmation C" et "La conception et l'évolution" respectivement de C", le tout de la main de Bjarne Stroustrup. Je les liste séparément, d'abord parce que Bjarne est le créateur du langage C, et ensuite pour une raison plus importante que la "première" : ces deux livres sont des chefs-d'œuvre incontestables dans le domaine du C. Il n’est pas exagéré de dire qu’ils constituent la bible du langage C.


Bjarne Stroustrup, Le langage de programmation C (Spécial 3e édition))", Machinery Industry Press


"C Programming Language (Special Edition) (English Photocopy Edition)", Higher Education Press


À ce jour, TCPL est le manuel de référence C le plus faisant autorité en plus du document standard C. Contrairement à la plupart des gens, je pense que le langage écrit de Bjarne n'est pas inférieur au langage de programmation qu'il a créé. Au moins, j'aime ce genre de travail académique. La description du langage C dans ce livre est claire et directe. Il examine C du point de vue de son créateur, ce qu'aucun autre auteur ou livre ne peut faire - personne ne sait mieux utiliser C que Bjarne lui-même.


Il s'agit d'un livre sérieux, destiné aux développeurs C intermédiaires et avancés. Si vous êtes un programmeur C expérimenté qui a besoin de comprendre des connaissances plus essentielles en C, ce livre est fait pour vous. Ce n’est pas le genre de petit livre qui fait rire après l’avoir lu. Il faut le comprendre attentivement et le mâcher encore et encore. Pendant le processus de lecture, veuillez prêter une attention particulière à ce que M. Bjarne a souligné et à ce qu'il a mentionné dans une phrase. Personnellement, j'aime la quatrième partie de ce livre "Concevoir avec C". Il est difficile de voir un tel contenu dans des livres similaires sur des langages de programmation - je pense même que Bjarne devrait écrire cette partie dans un livre séparé.


Bjarne Stroustrup, La conception et l'évolution du langage C


《La conception et l'évolution du langage C》, Machines Éditeur de l'industrie


"La conception et l'évolution du langage C (édition anglaise)", Machinery Industry Press


D&E Il s'agit d'une monographie sur les principes de conception du langage C, les décisions de conception et la philosophie de conception. Cela explique clairement pourquoi C est devenu ce qu’il est aujourd’hui au lieu de devenir un autre langage. En tant que créateur du langage C, Bjarne a démontré de manière éclatante ses idées uniques et profondes. En plus des fonctionnalités du langage largement louées, Bjarne n'a pas hésité à utiliser ces fonctionnalités controversées, voire rejetées, et a donné une par une des explications logiquement rigoureuses et convaincantes. Le contenu couvre l'ère préhistorique du C, le C avec les classes, les règles de conception C, la standardisation, les bibliothèques, la gestion de la mémoire, l'héritage multiple, les modèles, etc., et fournit une introduction aux nouvelles fonctionnalités importantes, notamment les mécanismes d'exception, les informations de type d'exécution et les espaces de noms. ont été discutés en profondeur respectivement. Chaque programmeur C devrait être capable d'approfondir sa compréhension du langage grâce à l'explication de Bjarne.


Je dois vous rappeler encore une fois que ces deux livres contiennent des connaissances condensées et une énorme quantité d'informations. S'il vous plaît, ne manquez pas chaque phrase apparemment désinvolte de Bjarne.


Tutoriel d'introduction


L'apprentissage de n'importe quelle langue nécessite un processus étape par étape, de l'entrée à la maîtrise, du novice pour maîtriser le processus. Cependant, il est difficile pour un soi-disant novice de décider s'il est un novice complet, un « novice » qui connaît un autre langage, ou même un maître qui a réalisé des réalisations considérables dans le domaine de la programmation dans un certain langage. .Généraliser ? Différents débutants en C ont besoin de livres d'introduction différents.


Andrew Koenig, Barbara E. Moo, C accéléré : programmation pratique par exemple


《Version chinoise en C accéléré 》, Presse électrique chinoise


Contrairement à la plupart des tutoriels C du marché, ce livre ne commence pas par "C in C", mais commence par des fonctionnalités C authentiques. Dès le début, la bibliothèque standard est utilisée pour écrire des programmes. Au fur et à mesure que la description s'approfondit, les concepts de base dont dépendent ces composants de la bibliothèque standard sont expliqués un par un. De plus, contrairement aux autres manuels C, ce livre utilise des exemples pour expliquer le langage et la bibliothèque standard. Ces deux derniers sont expliqués pour fournir un support pour des exemples de programmes, plutôt que d'utiliser simplement des exemples comme la plupart des manuels C comme outil auxiliaire pour démontrer les fonctionnalités du langage. et l'utilisation standard de la bibliothèque.


L'auteur est de classe mondiale en matière de pratique de la programmation, d'éducation et de formation, ainsi que de rédaction technique dans le domaine C. J'aime le style d'écriture rafraîchissant qui fait un usage intensif de la bibliothèque standard et des fonctionnalités natives du langage C. Face à ce manuel, presque tous les manuels de C à ce jour éclipsent ou semblent obsolètes. Bien que ce manuel puisse être un peu avant-gardiste pour l’enseignement supérieur national, je le recommande néanmoins vivement à mes collègues. D'ailleurs, dans une correspondance récente entre Bjarne et moi, il a commenté ce livre : Pour les programmeurs expérimentés qui apprennent le C, ce livre est peut-être le meilleur livre au monde.


Stanley B.Lippman, Josée Lajoie, C Primer (3e édition)


《C Primer (3e) Chinese Edition", China Electric Power Publishing House


Le nom de ce livre est quelque peu trompeur. Bien que l'auteur prétende que ce livre est écrit pour les novices en C, tant son épaisseur que la profondeur de ses explications suggèrent le contraire. Il serait peut-être plus approprié de l'appeler un tutoriel C "du débutant au compétent". Personnellement, je ne pense pas qu'il convienne aux débutants qui ne connaissent pas du tout le C - vous devez avoir au moins une petite connaissance de base de C ou du C, ou au moins une certaine expérience en programmation dans d'autres langages, avant de lire ce livre.


Bien que ce livre omette la discussion de certaines fonctionnalités avancées du C, il peut toujours être considéré comme le didacticiel d'apprentissage du C le plus complet à ce jour. En fait, si un débutant en C peut lire solidement ce livre et compléter tous les exercices selon le "C Primer Answer Book", son niveau pourra certainement entrer dans les rangs des programmeurs C professionnels. Personnellement, je pense que même si vous possédez déjà TCPL, ce livre reste précieux, car à bien des égards, il est plus détaillé et plus facile à comprendre que TCPL.


Stanley B. Lippman, Essential C


"Essential C Chinese Edition", Université des sciences et technologies de Huazhong Presse


"Essential C (Photocopy Edition)", China Electric Power Publishing House


Ce livre peut être considéré vaguement Le livre est une version condensée de "C Primer". Ce livre décrit un par un les sujets les plus représentatifs du C, notamment la programmation procédurale, la programmation générique, la programmation basée sur les objets, la programmation orientée objet, la programmation de modèles et la gestion des exceptions. Stanley abaisse le seuil au niveau le plus élémentaire acceptable pour les novices en C « ayant une expérience en programmation dans d'autres langages », leur permettant de démarrer rapidement la programmation en C sans avoir à lire un tome comme « C Primer ». Il guide l'apprentissage avec des exemples et s'efforce de permettre aux lecteurs de saisir l'essence du C dans les plus brefs délais.


Il faudrait peut-être des centaines de pages à une autre personne pour décrire tous les aspects du paradigme de programmation C, mais ce petit livre le fait incroyablement bien. Personnellement, j'aime ce genre de livre plein de techniques, concis et qui a quelque chose à dire. Ce livre a également un style évident : tous les exemples de programmes utilisent des composants de bibliothèque standard, ce qui est rafraîchissant.


Aucun des trois livres ci-dessus n'est écrit pour les novices complets en programmation. Les novices en programmation C complète peuvent lire le nouveau livre de Francis Glassborow (pas encore publié) : "A Beginners Introduction to Computer Programming: You Can Do It !". Ceci est également recommandé par Bjarne. Francis Glassborow est le président de l'ACCU. Au fil des ans, il a commenté presque tous les livres classiques du C. Son propre livre suscitera naturellement un grand intérêt dans la communauté C.


Programmation efficace et robuste


J'ai écrit ce code il y a deux ans lorsque j'étais en charge d'un pouvoir provincial projet de système de répartition Un programme de passerelle qui obtient des informations d'alimentation en temps réel à partir du système SCADA. L'interface de communication adopte une méthode de connexion directe à la base de données peu courante (ce programme de passerelle se connecte à SQL Server 6.5 à une extrémité et à Oralce 8.1.6 à l'autre extrémité). Puisqu’il existe près de 10 000 points de mesure en temps réel, il est évidemment inefficace de mettre à jour ou d’insérer tous les échantillons à chaque fois. J'ai construit une bibliothèque de mémoire dans le programme de passerelle. Les données obtenues y sont d'abord comparées, puis il est décidé de mettre à jour la base de données physique (et d'autres choses plus compliquées sont également effectuées...), améliorant ainsi l'efficacité et l'utilisation des ressources. L'effet escompté a été atteint.


Ce programme fonctionne très bien, mais un jour après avoir quitté le site, l'administrateur système a appelé et a dit que parfois le programme de passerelle plantait en raison d'une panne de réseau ou pour d'autres raisons - il plantait tout seul. Le problème est que cela transformera également Windows 2000 Advanced Server en un « écran bleu » ! Franchement, je n'ai jamais vu un programme involontaire faire cela. Comme j'étais occupé avec un autre gros projet à l'époque, je n'ai pas pu accéder au site pour le débogage. En fin de compte, j'ai dû encapsuler soigneusement le code de la bibliothèque de mémoire avec un code de gestion des exceptions basé sur l'expérience (et j'ai également apporté d'autres modifications). ...). De cette façon, même si le problème n’est pas complètement résolu, le programme n’est finalement plus si laid.


A quoi ça sert de raconter une telle information ici (je ne pensais pas que c'était un « tap » quand je pensais à ce terrible bug) ? Ce que je veux dire, c'est que pour tout logiciel, il n'y a pas d'efficacité sans robustesse. Pour les programmeurs C, il n'est peut-être pas difficile d'écrire un programme efficace, mais il n'est pas si facile d'écrire un logiciel serveur qui doit fonctionner 24 heures sur 24, 7 jours sur 7. De nombreux facteurs doivent être pris en compte, et parfois ceux-ci. les facteurs sont même loin au-delà du langage C et des outils de développement eux-mêmes. En tant que programmeur qui développe de véritables logiciels de projet, nous n'avons pas besoin de nous heurter au mur pour accumuler de l'expérience. Tant que nous sommes assez modestes, les expériences des autres sont souvent une bonne référence pour nous. Dans cette optique, je vous recommande la lecture des livres suivants, qui vous apporteront à la fois robustesse et efficacité (bien sûr, ils couvrent bien plus que la gestion des exceptions).


Scott Meyers, Effective C : 50 façons spécifiques d'améliorer vos programmes et votre conception (2e édition)


Scott Meyers, More Effective C : 35 nouvelles façons d'améliorer vos programmes et vos conceptions


《Effective C Chinese Edition》, Huazhong University of Science and Technology Press


"Édition chinoise C plus efficace", Maison d'édition China Electric Power


"Effective C (version photocopie)", China Electric Power Publishing House


Si "Effective C" traite principalement de certains concepts et techniques relativement basiques en C, alors "More Effective C" se concentre sur une série de concepts avancés, y compris la technologie de gestion des exceptions. . Par rapport au premier, le second présente deux différences principales : premièrement, il contient de nombreux nouveaux contenus de la norme C ; deuxièmement, les sujets qu'il aborde ont tendance à être « stratégiques » plutôt que « tactiques », et les discussions sont plus approfondies et plus approfondies. complet. En particulier, il est difficile d’imaginer qu’une discussion approfondie des technologies et des modèles tels que les destructeurs virtuels, les pointeurs intelligents, le comptage de références et les classes proxy apparaissent dans un si petit livre.


Avec des compétences techniques confortables et de superbes compétences rédactionnelles, Scott est sans aucun doute l'un des meilleurs rédacteurs techniques C au monde. Les deux livres sont remarquables en termes de simplicité, de clarté et de lisibilité. En bref, les 85 méthodes fournies par Scott pour améliorer les compétences en programmation et en design thinking sont toutes des compétences nécessaires pour les programmeurs C intermédiaires et avancés. Je recommande fortement ces deux livres (il y en a en fait un de plus, comme vous le verrez plus tard).


Herb Sutter, exceptionnel C : 47 énigmes d'ingénierie, problèmes de programmation et solutions


Herb Sutter, plus exceptionnel C : 40 nouveaux puzzles d'ingénierie, problèmes de programmation et solutions


"Édition chinoise exceptionnelle en C", maison d'édition China Electric Power


"Édition chinoise C plus exceptionnelle", Presse de l'Université des sciences et technologies de Huazhong


Vous considérez-vous comme un expert en langage C ? Lisez ces deux livres du secrétaire général du comité des normes ISO C avant de répondre. Dans ces deux livres, Herb utilise une approche « questions et réponses » pour vous guider dans l'apprentissage des fonctionnalités du langage C. Pour chaque sujet, Herb imagine d'abord raisonnablement vos questions et confusions, puis devine que vos réponses sont probablement fausses, puis vous donne des conseils et propose les meilleures solutions, et enfin résume les solutions à des problèmes similaires selon le principe d'universalité.


Ces deux livres sont des ouvrages typiques qui approfondissent les détails du langage C. Ils sont très minces, mais le contenu est dense, bien plus que les deux livres de Scott, et cela. prend beaucoup de temps à lire. Brains - personnellement, je les trouve beaucoup plus difficiles à comprendre que les livres de Scott. Il faudrait au moins plusieurs mois pour étudier les connaissances contenues dans ces deux minces livres ! (Dans la préface de Scott, il a avoué qu'il était tombé plus d'une fois dans le piège des problèmes de GotW. Vous devriez savoir ce que cela signifie) Quels sont les avantages d'étudier les détails du langage ? Bien que dans la plupart des cas, nous n'ayons pas à nous soucier de ce qui se passe dans les coulisses du code C, lorsque nous le faisons, ces deux livres peuvent nous fournir de bons indices car ils révèlent les aspects subtils mais cruciaux du langage C.


Stephen C. Dewhurst, C Gotchas : éviter les problèmes courants de codage et de conception


《Pièges de programmation C》 , Maison d'édition chinoise pour la jeunesse


Les connaissances théoriques et l’expérience pratique de Stephen en font un bon livre qui mérite d’être lu. Stephen a été l'un des premiers utilisateurs C des Bell Labs. Il a utilisé le C pour résoudre avec succès des problèmes dans des domaines tels que les compilateurs, le commerce de titres, le commerce électronique et les systèmes embarqués. Ce livre rassemble les 99 idées de programmation de l'auteur en première ligne du développement. En les comprenant, vous pouvez éviter presque tous les problèmes courants de conception et de programmation en C.


Je pense même que pour les novices en programmation C, la lecture de ce livre les rendra plus faciles et plus immédiates que la lecture du livre de Scott et Herb. Personnellement, j'aime le style d'écriture de ce livre : de nombreux points de vue de Stephen peuvent sembler extrêmes mais sont irréfutables. Bien sûr, cette confiance (et cet humour sec) vient de la profonde culture technique de l’auteur, et non d’une paranoïa arrogante.


En plus des livres recommandés ci-dessus, "Efficient C: Performance Programming Techniques" co-écrit par Dov Bulka et David Mayhew ("Programming Techniques to Improvement C Performance", Tsinghua University Publisher) vaut également le détour. Ce petit livre mince se concentre sur le développement d’applications C hautes performances. Les deux auteurs sont tous deux experts en logiciels IBM et travaillent tous deux dans le domaine de la construction de systèmes avec des exigences de performances extrêmement élevées. Ce livre est basé sur leur expérience. Certaines personnes n'aiment pas ce livre parce qu'il passe beaucoup de temps à parler de choses qui n'ont rien à voir avec C, mais j'aime ce livre précisément pour cela. Ce sont ces choses qui ont élargi mes horizons.


Programmation générique et modèles


La programmation générique basée sur des modèles et celle-ci sont sans aucun doute la programmation C la plus activement développée aujourd'hui techniques. La première application révolutionnaire des modèles a été STL, qui a pleinement démontré l'application de la technologie des modèles dans les domaines des conteneurs génériques et des algorithmes. Les bibliothèques modernes telles que Boost et Loki continuent de maximiser le potentiel de la technologie des modèles. Dans le domaine des modèles et de la programmation générique, je recommande les deux livres lourds suivants :


David Vandevoorde, Nicolai M. Josuttis, C Templates : The Complete Guide


"Présentation des modèles C (version chinoise traditionnelle)", Taiwan Qifeng Information Co., Ltd.


"Présentation de C Modèles (version chinoise traditionnelle)" Version simplifiée)", Maison d'édition populaire des postes et télécommunications


Il existe une façon ancienne de faire l'éloge d'un livre, qui est à peu près "Si vous n'avez pas lu ce livre, vous pouvez faire ce que vous voulez. "Terre", il y a souvent des éléments exagérés. Cependant, si vous dites « Vous ne pouvez pas maîtriser la programmation de modèles C sans lire « Modèles C : le guide complet », alors cette affirmation est vraie pour la grande majorité des programmeurs C dans le monde.


Ce livre comble une lacune de longue date dans le domaine des livres de modèles C. Auparavant, il existait des livres comme "Modern C Design" qui se concentraient sur les techniques avancées de programmation de modèles et les modèles génériques, et "The C Standard Library" qui était un guide pour l'utilisation de frameworks et de composants de modèles spécifiques. Cependant, si vous n'avez pas une compréhension approfondie du mécanisme du modèle, il vous sera difficile de « monter et descendre » librement. Compte tenu de cela, je recommande ce livre à tous ceux qui souhaitent une compréhension approfondie de la technologie des modèles C.


Ce livre a une traduction en Chine continentale et une à Taiwan, mais elles sont écrites par des traducteurs différents. Au moment où vous lirez cet article, les deux traductions devraient être sur le marché, ce qui donnera bien sûr un choix supplémentaire aux lecteurs. M. Hou Jie a ouvert la plupart des chapitres de la version chinoise traditionnelle sur son site Web personnel, alors autant y jeter un coup d'œil.


Andrei Alexandrescu, Conception C moderne : programmation générique et modèles de conception appliqués


《Nouvelle réflexion dans la conception C : Générique "Application de la programmation de types et des modèles de conception", Presse de l'Université des sciences et technologies de Huazhong


"Nouvelle pensée dans la conception C (édition photocopiée)", China Electric Power Press


Vous considérez-vous comme un maître en programmation de modèles C ? Veuillez lire ce livre avant de répondre à J. C'est un chef-d'œuvre impressionnant écrit par un génie. Le mode générique étend vos horizons à l'infini et suffit à défier les limites de réflexion de tout programmeur C.


Ce livre est divisé en deux parties. La première partie traite de la technologie de base utilisée par la bibliothèque Loki et de certaines fonctionnalités avancées du langage, notamment la conception de classes et les modèles basés sur la stratégie. Spécialisation locale, assertions au moment de la compilation, Typelist, techniques d'allocation de petits objets, etc. La deuxième partie se concentre sur les composants importants et la technologie des modèles génériques dans Loki, y compris le foncteur de généralisation, le singleton, le pointeur intelligent, la fabrique d'objets et la fabrique abstraite, le visiteur et les méthodes multiples, etc. Chaque technologie est révélatrice et époustouflante.


En matière d'apprentissage du C, aller trop loin est souvent une excuse pour ne pas chercher à approfondir sa compréhension. Cependant, l’orientation objet ne représente pas uniquement le C ; les modèles et la programmation générique en représentent également la moitié. Pour les programmeurs C « sérieux », il est judicieux de suivre en temps opportun cette technologie qui a fait ses preuves.


Conclusion


Ces œuvres sont si célèbres que je n’ai peut-être pas du tout besoin d’une recommandation. Cependant, même si le nombre de programmeurs C n'augmente pas aussi vite que d'autres langages plus à la mode, il y a toujours plus de nouvelles personnes qui arrivent que de personnes âgées qui partent. En plus d'accueillir chaleureusement les nouveaux arrivants, je pense personnellement qu'il est temps de faire un « inventaire » des livres C, et j'espère qu'un tel « inventaire » sera bénéfique aux lecteurs intéressés. S'il vous plaît soyez patient et aimable. Dans le prochain article, je continuerai à présenter la bibliothèque standard, la programmation réseau et d'autres bons livres C. Avec un bon livre à vos côtés, cet hiver ne sera pas froid.


Les quatre livres et cinq classiques de la programmation C (Partie 2)


J'ai "inventorié" TCPL dans le article précédent Il existe plus d'une douzaine de bons livres C sur D&E, des tutoriels d'introduction, une programmation efficace et robuste, des modèles et une programmation générique. Alors que l'hiver se transforme en printemps, continuons le merveilleux voyage des livres C. Lorsque je travaillais à l'institut, j'ai coopéré avec deux autres instituts de recherche du même institut pour développer un projet d'intégration de répartition de centres de conservation de l'eau à grande échelle. Nos trois systèmes logiciels doivent tous communiquer entre eux. Lors du débogage du module de communication, un client attentif (un administrateur système studieux) a constaté que le mien ne dépassait pas 30 lignes de code d'interprétation pour le même protocole de communication, alors que le code de l'autre partie dépassait 150 lignes et était difficile à comprendre. L'administrateur système était très perplexe. J'ai dit que les styles et les habitudes de programmation de chacun sont différents. J'utilise la bibliothèque standard, mais il utilise le style de programmation C traditionnel et d'autres technologies auxquelles il est habitué.


Ne vous méprenez pas ! Je ne veux en aucun cas dénigrer ce partenaire. En fait, j’admire souvent les programmeurs qui possèdent de véritables compétences approfondies en programmation C. Après tout, le succès actuel du C est en grande partie dû à ses racines profondes en C. En tant que programmeur C, si je ne suis pas familier avec le C en C, j'ai tendance à penser que ses compétences de base ne sont pas solides et que sa confiance technique est insuffisante.


Mais là encore, C est un langage de programmation multi-paradigmes. Les programmeurs professionnels doivent certainement savoir quel style de programmation utiliser en fonction de la situation spécifique. En tant que chef de projet qui a souvent besoin de faire du développement impromptu sur place, afin de résoudre des tâches urgentes rapidement et rapidement, j'ai l'habitude d'utiliser autant que possible les bibliothèques (et composants) existants. L’efficacité (et la robustesse) prouvée de la bibliothèque standard C est déjà là, alors pourquoi ne pas l’utiliser ?


Nicolai M. Josuttis, La bibliothèque standard C : un didacticiel et une référence


《Bibliothèque standard C : A Tutoriel et référence Tutoriel d'auto-apprentissage et manuel de référence", Huazhong University of Science and Technology Press


Il s'agit d'un livre de bibliothèque encyclopédique standard C, une référence qui doit être consultée encore et encore. Il est sans précédent en termes d’exhaustivité, de détails et de précision. Ce livre détaille les spécifications et l'utilisation de chaque composant de bibliothèque standard, couvrant l'ensemble de la bibliothèque standard, y compris les flux et la localisation, et pas seulement STL. Comme l'indique le sous-titre de ce livre, il est destiné à être lu d'abord comme un tutoriel, puis comme un manuel de référence.


Le style d'écriture facile à comprendre rend ce livre très facile à lire. Si vous souhaitez apprendre à utiliser la bibliothèque standard et maximiser son potentiel, vous devez disposer de ce livre. Comme indiqué sur Internet, ce livre ne doit pas seulement être placé dans votre bibliothèque, mais aussi sur votre bureau d'ordinateur. Je le recommande vivement à tous les programmeurs C professionnels.


Angelika Langer, Klaus Kreft, Standard C IOStreams and Locales : Guide et référence du programmeur avancé


《 Flux d'entrée et de sortie standard C et localisation", Maison d'édition populaire des postes et télécommunications


La bibliothèque standard C se compose de trois parties : STL, flux et localisation. Les livres sur STL sont déjà sur le marché. Il existe de nombreuses monographies, mais rares, sur le streaming et la localisation. Ce livre est le meilleur des deux domaines. Aucun livre à ce jour ne traite du streaming et de la localisation de manière plus détaillée que celui-ci. en restant au niveau de "pouvoir utiliser" Liuku, ne le manquez pas


À l'été 2001, j'ai lu la version chinoise de ce livre. Édition, tout, du contenu à l'emballage, m'a laissé une profonde impression - mais surtout négative. À l'automne 2003, j'ai appris par hasard qu'une librairie en ligne vendait la traduction chinoise de ce livre à un prix très bas. Je ne peux m'empêcher de me sentir excité.


Scott Meyers, Effective STL : 50 façons spécifiques d'améliorer votre utilisation de la bibliothèque de modèles standard "Effective STL (version photocopie)", China Electric Power Publishing House


Après avoir lu les traductions chinoises de "Effective C" et "More Effective C" de Scott, je l'attendais avec impatience La version chinoise de ceci livre. J'ai appris sur la page d'accueil personnelle de M. Pan Aimin que lui et ses partenaires semblent avoir terminé la traduction de ce livre, mais il n'est toujours pas disponible sur le marché. Heureusement, nous pouvons en voir la version originale

.


Ce livre est une lecture incontournable pour les programmeurs qui utilisent STL. Dans ce livre, Scott nous explique comment fonctionnent les conteneurs et les algorithmes STL et comment les utiliser au mieux. Comme les autres ouvrages de Scott, ce livre est écrit dans un style clair et précis et est extrêmement lisible. Après avoir lu ce livre, je pense que vous avez peut-être les mêmes pensées que moi et d'autres programmeurs C : quand Scott écrira-t-il un « STL plus efficace » ?


Concernant STL, je vous rappelle également de faire attention à "Generic Programming and the STL: Using and Extending the C Standard Template Library" de Matthew H. Austern ("Generic Programming and the STL: Using and Extending the C Standard Template Library" ("Programmation générique et le STL : utilisation et extension de la bibliothèque de modèles standard C") STL", China Electric Power Press). Ce livre dégage une forte atmosphère académique. A la fin du livre "Accelerated C: Practical Programming by Sample", Andrew Koenig et Barbara Moo recommandent solennellement deux autres bons livres avancés (en plus de leurs propres "Ruminations on C"), dont l'un est TCPL, et l'autre est ce livre !


Programmation réseau


À l'ère de la programmation réseau, quel rôle le C doit-il jouer ? Environnement) pour vous le dire.


Douglas C. Schmidt, Stephen D. Huston, Programmation réseau C, Volume 1 : Maîtriser la complexité avec ACE et les modèles


Douglas C. Schmidt, Stephen D. Huston, Programmation réseau C, Volume 2 : Réutilisation systématique avec ACE et Frameworks


《Programmation réseau C, Volume 1 : Application ACE and Patterns Eliminate Complexity", Huazhong University of Science and Technology Press


"C Network Programming, Volume 2: Systematic Reuse based on ACE and Framework", Electronic Industry Publishing Society


utilise C pour la programmation réseau au niveau de l'entreprise. Actuellement, ACE (et ces deux livres) est un choix à considérer. ACE est un cadre de programmation réseau open source, multiplateforme et orienté objet qui vise à créer des applications réseau et des middlewares hautes performances. Douglas est le fondateur d'ACE et Stephen fournit un soutien technique et des services de conseil à ACE depuis plusieurs années. Tous deux sont membres de la communauté ACE (oui, l'influence et l'application pratique d'ACE ont formé une communauté).


ACE n'est pas seulement recherché par les universités et les instituts de recherche, il a été utilisé avec succès dans des milliers d'applications commerciales à travers le monde. ACE a joué et continue de jouer un rôle important dans les systèmes de réseaux dans les domaines des télécommunications, de l'aérospatiale, de la médecine et de la finance. Si vous êtes prêt à développer un système de communication hautes performances, vous devriez envisager cette collection des plus grands experts mondiaux.


En plus d'utiliser des fonctionnalités de langage de haut niveau telles que la technologie et les modèles de conception orientée objet C, ACE utilise également un grand nombre de modèles. "C Network Programming" Volume 1 et Volume 2 vous enseignent non seulement tous les aspects d'ACE, mais vous enseignent également des techniques avancées telles que les modèles et la conception générale du cadre. Par conséquent, en tant que programmeur C intermédiaire ou avancé, même si vous faites rarement de la programmation réseau C sérieuse, vous pouvez toujours bénéficier de la lecture de ces deux livres.


Oui, toutes les applications réseau ne doivent pas nécessairement utiliser des serveurs Web (et autres serveurs d'applications) et des modèles de composants lourds. Pour changer la façon de penser, elles peuvent également partir de modèles légers. bénéficier du volet ACE.


Divers


Les livres suivants sont inclus dans la section "Divers" simplement parce que je n'ai pas Think d'une catégorisation plus appropriée, ils valent tout autant la peine d'être lus que les livres ci-dessus.


Bruce Eckel, Penser en C, Volume 1 : Introduction au Standard C (2e édition)


Bruce Eckel , Thinking in C, Volume 2 : Practical Programming (Deuxième édition)


"C Programming Thinking (2e édition) Volume 1 : Standard C Guide", Machinery Industry Publisher


"C Programming Thoughts (English Edition 2nd Edition)", Machinery Industry Press


" La première édition de Thinking in C a remporté le Book Shock Award 1996 du magazine Software Development. La deuxième édition récemment lancée a considérablement réécrit et ajusté le contenu pour refléter l'impact de la standardisation C et les derniers résultats de la recherche et de la pratique dans le domaine orienté objet de ces dernières années. Des sujets avancés tels que « Flux d'entrée », « Héritage multiple », « Gestion des exceptions » et « Reconnaissance de type d'exécution » sont placés dans le volume 2, avec du contenu ajouté depuis la standardisation C. Bruce est un conférencier et consultant expérimenté avec une formation et une expérience en écriture de classe mondiale. Ses œuvres sont plus attrayantes pour les lecteurs que celles écrites par des techniciens « ludiques ». En fait, parmi les livres similaires, ce livre est plus lisible que TCPL et « C Primer » pour la plupart des lecteurs. D’ailleurs, vous pouvez avoir un aperçu du deuxième tome en visitant le site de l’auteur.


Andrew Koenig, Barbara E. Moo, Ruminations sur C : Une décennie de connaissances et d'expérience en programmation


《 C Méditations", Maison d'édition des Postes et Télécommunications Populaires


Andrew est l'un des rares experts en C au monde. Il s'agit d'un livre sur les idées et les techniques de programmation en C plutôt que sur les détails du langage. Si vous disposez déjà de certaines bases, ce livre vous apprendra à réfléchir lors de la programmation en C et à exprimer des solutions. L'expression technique de l'ensemble du livre est approfondie et le texte est facile à comprendre. Bjarne a commenté ce livre : Ce livre regorge d'idées sur « ce qu'est C et ce que C peut faire ».


Stanley B. Lippman, Inside The C Object Model


"Exploration approfondie du modèle objet C ", Huazhong Technology University Press


"Exploration approfondie du modèle objet C (version photocopie)", China Electric Power Press


de Regarder C du point de vue d'un compilateur peut vous aider à comprendre ce qui se passe et pourquoi. Ce livre traite d'un grand nombre de mécanismes de fonctionnement sous-jacents à la programmation orientée objet C, notamment les constructeurs, les fonctions, les objets temporaires, l'héritage, la virtualisation, l'instanciation de modèles, la gestion des exceptions, l'identification du type d'exécution, etc. Compromis effectués lors de la modélisation d’objets C. Les programmeurs C qui aiment aller au fond des choses ne devraient pas manquer ce livre.


Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Modèles de conception : éléments de logiciels orientés objet réutilisables


"Design Patterns : Les fondements des logiciels orientés objet réutilisables", Machinery Industry Press


"Design Patterns : Les fondements des logiciels orientés objet réutilisables (version anglaise) )", Machinery Industry Press


Pour concevoir des logiciels orientés objet réutilisables, vous devez maîtriser les modèles de conception. Ce livre n'est pas écrit spécifiquement pour les programmeurs C, mais les programmeurs C en particulier bénéficieront de son utilisation du C (et de Smalltalk) comme principal exemple de langage. Les quatre auteurs sont tous des experts internationalement reconnus dans le domaine des logiciels orientés objet. Ils ont enregistré en détail leur expérience en matière de conception de logiciels orientés objet sous forme de modèles de conception. L'influence de ce livre fut si profonde que les quatre auteurs et le livre furent surnommés GoF (Gang of Four). Ce livre a une forte atmosphère académique et un style d'écriture rigoureux et concis. Bien qu'il ne soit pas aussi facile à lire que certains livres expliquant les modèles, si vous voulez vraiment comprendre avec précision les modèles de conception, ce livre est l'autorité ultime. Pour apprendre les modèles de conception, ce livre doit être mâché encore et encore. À propos : veuillez faire des modèles de conception la clé d’une pensée ouverte d’esprit et ne jamais devenir les chaînes d’une pensée fermée.


Il existe également de bons livres sur C qui valent la peine d'être lus, mais je ne peux pas tous les énumérer ici. Par exemple, le livre de John Lakos « Large-Scale C Software Design » (« Large-Scale C Programming », China Electric Power Press) et « STL Source Code Analysis » de M. Hou Jie (Huazhong University of Science and Technology Press), etc. .


"STL Source Code Analysis" est un livre très distinctif, mais je pense qu'il peut être meilleur. Personnellement, j'attends avec impatience que M. Hou Jie écrive une « deuxième édition » plus approfondie, plus complète et plus complète après avoir réfléchi et repensé la technologie des modèles depuis la sortie de la première édition. Malheureusement, M. Hou Jie semble avoir décidé de faire temporairement ses adieux aux domaines des modèles, de la programmation générique et du STL après avoir terminé la traduction du livre "C Templates: The Complete Guide".


Ajouté le 31 mars 2004 : Les deux ouvrages de référence que je consulte le plus souvent sont "C Standard Program Library" et "STL Source Code Analysis". Bien sûr, cela a beaucoup à voir avec mon plan d’écriture pour l’année.


Développer avec succès des systèmes logiciels à grande échelle en utilisant C nécessite non seulement une bonne compréhension des problèmes de conception logique décrits dans la plupart des livres C, mais également une maîtrise de "Large-Scale Programmation C" Les techniques de conception physique décrites dans ". Bien sûr, ce livre est un peu dépassé, mais si vous avez de l'énergie et de l'argent à dépenser, il n'y a aucun mal à en acheter un exemplaire.


À ce stade, je pense qu'il est nécessaire de préciser qu'il y a certains (bons) livres qui ne sont pas recommandés, et les principales raisons sont les suivantes :


Les livres ci-dessus sont suffisants et assez bons.


Je ne recommanderai pas de livres difficiles à acheter par les canaux normaux - que ce soit en chinois ou en anglais.


La renommée de l'auteur (traducteur) n'affecte pas ma recommandation. Nous lisons des livres, pas des gens.


Je ne recommanderai pas un livre que je n'ai jamais lu. Je dois en lire au moins une version (y compris la version électronique). Cette « lecture » fait généralement référence à une « lecture attentive », mais certaines ne peuvent être considérées que comme une « navigation ».


Conclusion


En tant que rédacteur technique et traducteur ordinaire, je suis bien conscient des difficultés de la création technique et traduction (et bonheur), et apprenez plus ou moins sur les détails de la création, de la traduction, de la production, de l'édition et de la commercialisation de livres techniques. Aujourd’hui, je ne dirai rien d’un livre qui semble insatisfaisant. Le but de répertorier différentes versions d’un même livre est uniquement de vous fournir plus d’informations et de vous offrir un choix supplémentaire.


Dans les dernières étapes de la rédaction de cet article, j'ai écrit une lettre à Bjarne et lui ai demandé ce qu'il écrirait s'il écrivait cet article. Il m'a donné des conseils concis. Tout en confirmant que la plupart des livres répertoriés ci-dessus sont les meilleurs livres C au monde, Bjarne m'a rappelé de ne pas oublier de recommander "The C Standard: Incorporating Technical Corrigendum No. 1" aux programmeurs experts. Ce livre est la « version livre » de la spécification standard C, et Bjarne a personnellement écrit la préface.


Bjarne m'a également gentiment rappelé qu'il n'y a aucun livre sur ma liste de recommandations qui puisse aider les programmeurs C avec la programmation Windows - ce qui est exactement mon intention. Dans cet article, je recommande et passe en revue uniquement les travaux C neutres en termes de plate-forme (sauf la programmation réseau) - ils n'ont rien à voir avec le système d'exploitation, rien à voir avec l'environnement de développement intégré, et j'imagine même qu'ils n'ont rien à voir avec le compilateur. Vous pouvez choisir de lire des livres C liés à votre domaine préféré en fonction de vos besoins de développement commercial.


En parlant de « indépendant du système et neutre en termes de plate-forme », je ne peux m'empêcher de penser au concept de « couche d'abstraction ». Les programmeurs C qui développent des applications pratiques travaillent généralement dans des systèmes d'exploitation spécifiques, des environnements de développement spécifiques et des domaines d'activité spécifiques. Une maîtrise solide et approfondie du standard C et de la bibliothèque standard C vous permettra sans aucun doute de travailler dans différents systèmes d'exploitation et différents environnements de développement. des coûts « abstraits » qui circulent dans différents domaines d'activité.

Ce qui précède est le contenu des quatre livres et cinq classiques de la programmation C. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn