„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > [Buchrezension] Beejs Leitfaden zur Netzwerkprogrammierung

[Buchrezension] Beejs Leitfaden zur Netzwerkprogrammierung

Veröffentlicht am 15.08.2024
Durchsuche:757

[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 vorangestellten „Einleitung“ verbrachten Hunderte von Seiten damit, 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 suchen.

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 eine gute Lektüre.

Gute Teile

Freundliche Einführung in technische Konzepte

Das Buch beginnt mit einigen grundlegenden Konzepten 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 herumschlagen 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 „tiefer“:

  • "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.
  • "lower": 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 das Netzwerk könnte auch hilfreich gewesen sein, um zu verstehen, wie unser Anwendungscode mit dem Kernel interagiert.

Ich habe jedoch 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ß.

Persönlich bin ich 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 uns also auf einiges an Spaß freuen.

Abschluss

Insgesamt enthält das Buch zahlreiche praktische Codebeispiele, die beim Verständnis einer Netzwerkanwendung mithilfe von Socket-Systemaufrufen nützlich 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.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/uponthesky/book-review-beejs-guide-to-network-programming-9mg Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3