[Critique de livre] Guide de Beej sur la programmation réseau
Intro – de quoi parle ce livre ?
Oui, j'ai enfin fini de lire ce livre.
En tant que personne n'ayant jamais suivi de cours de réseaux informatiques à l'université, j'avais depuis longtemps pensé à apprendre ce sujet de manière intensive. Cependant, je n’ai pas trouvé de cours universitaire solide et ouvert au public (quelque chose comme l’introduction aux algorithmes du MIT). Et de nombreux manuels préfixés « introduction » consacraient des centaines de pages à expliquer des concepts d'assez bas niveau tels que les algorithmes de routage ou même les câbles physiques qui relient les continents !
Ensuite, j'ai trouvé le Guide de programmation réseau de Beej qui est fréquemment recommandé sur Internet. En un coup d’œil, je l’ai trouvé facile à lire grâce à la façon dont l’auteur explique les concepts de manière humoristique. Mais en même temps, comparé à d'autres livres sur les réseaux informatiques, ce livre contient de nombreux exemples de code, j'ai donc pensé qu'il convient davantage aux programmeurs qui souhaitent une pratique pratique de la programmation de sockets.
Et après avoir lu tous les chapitres sauf le chapitre 9 (car il s'agit plutôt d'une référence pour un tas de fonctions de socket C), j'ai trouvé que c'était une bonne lecture.
Bonnes pièces
Introduction conviviale aux concepts techniques
Le livre commence par quelques concepts de base tels que l'IP, le port et le socket. Cependant, il ne va pas plus loin dans l’introduction d’algorithmes très techniques ou de dispositifs physiques utilisés pour les communications réseau. En tant que développeur travaillant quotidiennement avec des applications Web, j'ai trouvé cela plus pertinent pour mon travail. Même si le livre mentionne parfois des bits et des octets, il reste lisible et vous n'effectuez généralement jamais d'opérations au niveau des bits en lisant le code C dans le livre.
De nombreux exemples de code
Pour ceux qui veulent se salir les mains avec le code, ce livre est fait pour vous. À l'exception des parties de présentation générale sur les réseaux informatiques, la plupart des explications du livre sont accompagnées d'exemples de code en C. Ceci est particulièrement utile pour savoir comment les communications réseau réelles se produisent au sein de nos applications Web. Par exemple, l'opération d'interrogation parcourt toutes les sockets enregistrées pour vérifier s'il y a des événements entrants à gérer.
De plus, les exemples n’importent aucune bibliothèque externe, vous n’avez donc pas à faire face à des problèmes de dépendance tiers irritants.
Pièces Soso
Principalement axé sur la programmation des sockets uniquement
Ce livre est une très bonne référence conviviale à la programmation des sockets et aux appels système pertinents. Cependant, il ne va ni « plus haut » ni « plus bas » :
- "supérieur" : La plupart des applications Web actuelles s'appuient sur le protocole HTTP. Cela aurait pu être mieux si le livre contenait plus d'explications sur cette couche supérieure avec du code en cours d'exécution.
- "inférieur" : je pense que le livre aurait pu montrer à quoi ressemble un paquet en utilisant des outils tels que Wireshark qui récupère les paquets générés par les exemples. L'introduction de quelques commandes Linux/Unix pour la mise en réseau aurait également pu être utile pour comprendre comment notre code d'application interagit avec le noyau.
Cependant, j'ai trouvé une autre bonne ressource écrite par le même auteur : le Guide de Beej sur les concepts de réseautage. Il semble couvrir de nombreux concepts de base de manière plus complète que ce livre avec de nombreux exercices de codage. J'espère que ce livre « conceptuel » comblera le vide du livre « programmation ».
Déconseillé à ceux qui ne connaissent pas le code C
Si vous ne savez pas grand-chose sur la programmation C, ce livre pourrait être accablant. Il n’explique aucun concept de base tel que les pointeurs ou la conversion de type. Bien que nous ne souffrions pas d’un enfer de dépendance comme lorsque nous traitons avec CMake, si vous ne savez pas grand-chose sur C, la lecture du code serait toujours difficile.
Personnellement, je suis d'accord avec le code C. Cependant, le livre aurait pu être plus convivial pour les débutants s'il avait été écrit en Python, qui possède presque tous les équivalents des fonctions socket du C dans sa bibliothèque de sockets. Le livre "concept" du même auteur utilise Python cette fois, on peut donc s'attendre à du plaisir.
Conclusion
Dans l'ensemble, le livre est rempli d'exemples de code pratiques qui sont utiles pour comprendre une application réseau utilisant des appels système de socket. Bien sûr, vous n'aurez pas vraiment besoin d'utiliser ces fonctions lors de l'écriture de votre propre application, car de nombreux langages prennent en charge leurs propres wrappers pour ces fonctions réseau de socket "de bas niveau" (Python a des bibliothèques comme socketserver et http). Néanmoins, je pense qu'une fois dans votre carrière de développeur, vous devriez comprendre ce qui se passe derrière toutes ces communications hautement abstraites utilisant HTTPS ou websocket. En ce sens, ce livre est une bonne lecture et aussi une bonne référence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











L'histoire et l'évolution de C # et C sont uniques, et les perspectives d'avenir sont également différentes. 1.C a été inventé par Bjarnestrousstrup en 1983 pour introduire une programmation orientée objet dans le langage C. Son processus d'évolution comprend plusieurs normalisations, telles que C 11, introduisant des mots clés automobiles et des expressions de lambda, C 20 introduisant les concepts et les coroutines, et se concentrera sur les performances et la programmation au niveau du système à l'avenir. 2.C # a été publié par Microsoft en 2000. Combinant les avantages de C et Java, son évolution se concentre sur la simplicité et la productivité. Par exemple, C # 2.0 a introduit les génériques et C # 5.0 a introduit la programmation asynchrone, qui se concentrera sur la productivité et le cloud computing des développeurs à l'avenir.

Il existe des différences significatives dans les courbes d'apprentissage de l'expérience C # et C et du développeur. 1) La courbe d'apprentissage de C # est relativement plate et convient au développement rapide et aux applications au niveau de l'entreprise. 2) La courbe d'apprentissage de C est raide et convient aux scénarios de contrôle haute performance et de bas niveau.

C interagit avec XML via des bibliothèques tierces (telles que TinyXML, PUGIXML, XERCES-C). 1) Utilisez la bibliothèque pour analyser les fichiers XML et les convertir en structures de données propices à C. 2) Lors de la génération de XML, convertissez la structure des données C au format XML. 3) Dans les applications pratiques, le XML est souvent utilisé pour les fichiers de configuration et l'échange de données afin d'améliorer l'efficacité du développement.

L'application de l'analyse statique en C comprend principalement la découverte de problèmes de gestion de la mémoire, la vérification des erreurs de logique de code et l'amélioration de la sécurité du code. 1) L'analyse statique peut identifier des problèmes tels que les fuites de mémoire, les doubles versions et les pointeurs non initialisés. 2) Il peut détecter les variables inutilisées, le code mort et les contradictions logiques. 3) Les outils d'analyse statique tels que la couverture peuvent détecter le débordement de tampon, le débordement entier et les appels API dangereux pour améliorer la sécurité du code.

L'utilisation de la bibliothèque Chrono en C peut vous permettre de contrôler plus précisément les intervalles de temps et de temps. Explorons le charme de cette bibliothèque. La bibliothèque Chrono de C fait partie de la bibliothèque standard, qui fournit une façon moderne de gérer les intervalles de temps et de temps. Pour les programmeurs qui ont souffert de temps et ctime, Chrono est sans aucun doute une aubaine. Il améliore non seulement la lisibilité et la maintenabilité du code, mais offre également une précision et une flexibilité plus élevées. Commençons par les bases. La bibliothèque Chrono comprend principalement les composants clés suivants: std :: chrono :: system_clock: représente l'horloge système, utilisée pour obtenir l'heure actuelle. std :: chron

C a toujours une pertinence importante dans la programmation moderne. 1) Les capacités de fonctionnement matériel et directes en font le premier choix dans les domaines du développement de jeux, des systèmes intégrés et de l'informatique haute performance. 2) Les paradigmes de programmation riches et les fonctionnalités modernes telles que les pointeurs intelligents et la programmation de modèles améliorent sa flexibilité et son efficacité. Bien que la courbe d'apprentissage soit raide, ses capacités puissantes le rendent toujours important dans l'écosystème de programmation d'aujourd'hui.

L'avenir de C se concentrera sur l'informatique parallèle, la sécurité, la modularisation et l'apprentissage AI / Machine: 1) L'informatique parallèle sera améliorée par des fonctionnalités telles que les coroutines; 2) La sécurité sera améliorée par le biais de mécanismes de vérification et de gestion de la mémoire plus stricts; 3) La modulation simplifiera l'organisation et la compilation du code; 4) L'IA et l'apprentissage automatique inviteront C à s'adapter à de nouveaux besoins, tels que l'informatique numérique et le support de programmation GPU.

C isnotdying; il se révolte.1) C reste réévèreurtoitSversatity et effecciation en termes
