«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > [Рецензия на книгу] Руководство Биджа по сетевому программированию

[Рецензия на книгу] Руководство Биджа по сетевому программированию

Опубликовано 15 августа 2024 г.
Просматривать:502

[Book Review] Beej

Вступление: о чем эта книга?

Да, я наконец-то дочитала эту книгу.

Как человек, который никогда не посещал курсы компьютерных сетей в университете, я долгое время думал о том, чтобы интенсивно изучать этот предмет. Однако мне не удалось найти солидный университетский курс, открытый для публики (что-то вроде введения в алгоритмы Массачусетского технологического института). А во многих учебниках с префиксом «введение» сотни страниц объясняются концепции довольно низкого уровня, такие как алгоритмы маршрутизации или даже физические провода, соединяющие континенты!

Затем я нашел Руководство Биджа по сетевому программированию, которое часто рекомендуют в Интернете. На первый взгляд, мне было легко читать книгу из-за того, как автор объясняет концепции в юмористической манере. Но в то же время, по сравнению с другими книгами по компьютерным сетям, эта книга содержит много примеров кода, поэтому я подумал, что она больше подходит программистам, которым нужна практическая практика программирования сокетов.

И после прочтения всех глав, кроме главы 9 (потому что она больше похожа на справочник по множеству функций сокетов C), я нашел ее хорошим чтением.

Хорошие детали

Дружественное знакомство с техническими концепциями

Книга начинается с нескольких основных понятий, таких как IP, порт и сокет. Однако он не углубляется в представление очень технических алгоритмов или физических устройств, используемых для сетевых коммуникаций. Как разработчик, который ежедневно занимается веб-приложениями, я нашел это более актуальным для моей работы. Несмотря на то, что в книге иногда упоминаются биты и байты, она все равно читабельна, и вы обычно никогда не выполняете никаких побитовых операций при чтении кода C в книге.

Множество примеров кода

Для тех, кто хочет испачкать руки программированием, эта книга для вас. За исключением общих обзорных частей, посвященных компьютерным сетям, большинство объяснений в книге сопровождаются примерами кода на C. Это особенно полезно для понимания того, как фактические сетевые коммуникации происходят внутри наших веб-приложений. Например, операция опроса просматривает все зарегистрированные сокеты, чтобы проверить, есть ли входящие события, которые необходимо обработать.

Более того, примеры не импортируют какие-либо внешние библиотеки, поэтому вам не придется сталкиваться с раздражающими проблемами сторонних зависимостей.

Сосо части

В основном сосредоточен только на программировании сокетов.

Эта книга очень хороша как удобный справочник по программированию сокетов и соответствующим системным вызовам. Однако он не идет «выше» или «ниже»:

  • "выше": большинство современных веб-приложений используют протокол HTTP. Было бы лучше, если бы в книге содержалось больше объяснений этого более высокого уровня с реальным работающим кодом.
  • «нижний»: Я думаю, что в книге можно было бы показать, как выглядит пакет, с помощью таких инструментов, как Wireshark, который перехватывает пакеты, сгенерированные в примерах. Знакомство с несколькими командами Linux/Unix для работы в сети также могло бы быть полезным для понимания того, как код нашего приложения взаимодействует с ядром.

Однако я нашел еще один хороший ресурс, написанный тем же автором: «Руководство Биджа по сетевым концепциям». Кажется, что многие основные концепции рассматриваются более полно, чем эта книга, и содержит множество упражнений по программированию. Я надеюсь, что эта «концептуальная» книга заполнит пробел в книге «Программирование».

Не рекомендуется тем, кто не знаком с кодом C.

Если вы мало что знаете о программировании на языке C, эта книга может оказаться для вас непосильной задачей. Он не объясняет никаких базовых понятий, таких как указатели или приведение типов. Хотя мы не страдаем от ада зависимостей, как при работе с CMake, если вы мало что знаете о C, чтение кода все равно будет затруднено.

Лично меня устраивает код на C. Однако книга могла бы быть более удобной для новичков, если бы она была написана на Python, в библиотеке сокетов которого имеются почти все аналоги функций сокетов языка C. В «концептуальной» книге того же автора на этот раз используется Python, так что здесь можно ожидать немного удовольствия.

Заключение

В целом, книга наполнена практическими примерами кода, которые полезны при понимании сетевых приложений, использующих системные вызовы сокетов. Конечно, вам не понадобится использовать эти функции при написании собственного приложения, поскольку многие языки поддерживают свои собственные оболочки для этих «низкоуровневых» сетевых функций сокетов (Python имеет такие библиотеки, как Socketserver и http). Тем не менее, я думаю, что однажды в вашей карьере разработчика вы должны понять, что происходит за всеми этими крайне абстрактными коммуникациями с использованием HTTPS или веб-сокетов. В этом смысле эту книгу можно хорошо прочитать, а также в качестве справочного материала.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/uponthesky/book-review-beejs-guide-to-network-programming-9mg. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3