Heim  >  Artikel  >  Backend-Entwicklung  >  [Buchrezension] Beejs Leitfaden zur Netzwerkprogrammierung

[Buchrezension] Beejs Leitfaden zur Netzwerkprogrammierung

王林
王林Original
2024-07-18 10:08:411194Durchsuche

[Book Review] Beej

Einleitung – worum geht es in diesem Buch?

Ja, ich habe dieses Buch endlich zu Ende gelesen.

Als Person, die noch nie einen Computer-Netzwerkkurs an der Universität besucht hat, hatte ich lange darüber nachgedacht, mich intensiv mit diesem Thema zu befassen. Allerdings konnte ich keinen soliden, öffentlich zugänglichen Universitätskurs finden (so etwas wie „Einführung in Algorithmen“ am MIT). Und viele der Lehrbücher mit dem Präfix „Einführung“ haben Hunderte von Seiten damit verbracht, ziemlich einfache Konzepte wie Routing-Algorithmen oder sogar physische Drähte, die die Kontinente verbinden, zu erklären!

Dann habe ich Beejs Leitfaden zur Netzwerkprogrammierung gefunden, der im Internet häufig empfohlen wird. Auf den ersten Blick war es für mich leicht zu lesen, da der Autor Konzepte auf humorvolle Weise erklärt. Aber gleichzeitig enthält dieses Buch im Vergleich zu anderen Büchern über Computernetzwerke viele Codebeispiele, sodass es meiner Meinung nach eher für Programmierer geeignet ist, die praktische Praxis in der Socket-Programmierung wünschen.

Und nachdem ich alle Kapitel außer Kapitel 9 durchgelesen hatte (weil es eher eine Referenz für eine Reihe von C-Socket-Funktionen ist), fand ich es gut zu lesen.

Gute Teile

Freundliche Einführung in technische Konzepte

Das Buch beginnt mit einigen Grundkonzepten wie IP, Port und Socket. Es geht jedoch nicht tiefer auf die Einführung sehr technischer Algorithmen oder physischer Geräte ein, die für die Netzwerkkommunikation verwendet werden. Als Entwickler, der täglich mit Webanwendungen zu tun hat, fand ich es für meinen Job relevanter. Obwohl das Buch manchmal Bits und Bytes erwähnt, ist es dennoch lesbar und Sie führen normalerweise nie bitweise Operationen durch, während Sie den C-Code im Buch lesen.

Viele Codebeispiele

Für diejenigen, die sich mit Code die Hände schmutzig machen wollen, ist dieses Buch genau das Richtige. Abgesehen von den allgemeinen Übersichtsteilen zu Computernetzwerken enthalten die meisten Erklärungen im Buch Codebeispiele in C. Dies ist besonders nützlich, um zu verstehen, wie die tatsächliche Netzwerkkommunikation in unseren Webanwendungen abläuft. Der Abfragevorgang durchsucht beispielsweise alle registrierten Sockets, um zu prüfen, ob eingehende Ereignisse verarbeitet werden müssen.

Darüber hinaus importieren die Beispiele keine externen Bibliotheken, sodass Sie sich nicht mit lästigen Abhängigkeitsproblemen von Drittanbietern auseinandersetzen müssen.

Soso-Teile

Konzentriert sich hauptsächlich nur auf die Socket-Programmierung

Dieses Buch eignet sich sehr gut als freundliche Referenz zur Socket-Programmierung und relevanten Systemaufrufen. Allerdings geht es nicht „höher“ oder „niedriger“:

  • „höher“: Die meisten heutigen Webanwendungen basieren auf dem HTTP-Protokoll. Es hätte besser sein können, wenn das Buch mehr Erklärungen zu dieser höheren Ebene mit tatsächlich ausgeführtem Code enthalten hätte.
  • "unten": Ich denke, das Buch hätte zeigen können, wie ein Paket aussieht, wenn man Tools wie Wireshark verwendet hätte, das die durch die Beispiele generierten Pakete abgreift. Die Einführung einiger Linux/Unix-Befehle für Netzwerke könnte auch hilfreich gewesen sein, um zu verstehen, wie unser Anwendungscode mit dem Kernel interagiert.

Allerdings habe ich eine andere gute Ressource gefunden, die vom selben Autor geschrieben wurde: Beej's Guide to Networking Concepts. Es scheint viele Kernkonzepte umfassender abzudecken als dieses Buch und enthält viele Programmierübungen. Ich hoffe, dass dieses „Konzept“-Buch die Lücke des „Programmierbuchs“ schließt.

Nicht empfohlen für diejenigen, die mit C-Code nicht vertraut sind

Wenn Sie nicht viel über C-Programmierung wissen, könnte dieses Buch überwältigend sein. Es werden keine grundlegenden Konzepte wie Zeiger oder Typumwandlung erläutert. Auch wenn wir nicht so sehr unter Abhängigkeiten leiden wie beim Umgang mit CMake, wäre das Lesen von Code dennoch schwierig, wenn man nicht viel über C weiß.

Ich persönlich bin mit C-Code einverstanden. Allerdings hätte das Buch einsteigerfreundlicher sein können, wenn es in Python geschrieben wäre, dessen Socket-Bibliothek fast alle Gegenstücke zu den Socket-Funktionen von C enthält. Das „Konzept“-Buch desselben Autors verwendet dieses Mal Python, wir können also mit etwas Spaß rechnen.

Abschluss

Insgesamt enthält das Buch zahlreiche praktische Codebeispiele, die beim Verständnis einer Netzwerkanwendung mithilfe von Socket-Systemaufrufen hilfreich sind. Natürlich müssen Sie diese Funktionen nicht wirklich verwenden, wenn Sie Ihre eigene Anwendung schreiben, da viele Sprachen ihre eigenen Wrapper für diese „low-level“ Socket-Netzwerkfunktionen unterstützen (Python verfügt über Bibliotheken wie socketserver und http). Dennoch denke ich, dass man einmal in seiner Karriere als Entwickler verstehen sollte, was sich hinter all dieser stark abstrahierten Kommunikation über HTTPS oder WebSocket verbirgt. In diesem Sinne ist dieses Buch eine gute Lektüre und auch eine gute Referenz.

Das obige ist der detaillierte Inhalt von[Buchrezension] Beejs Leitfaden zur Netzwerkprogrammierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn