Да, я наконец-то дочитала эту книгу.
Как человек, который никогда не посещал курсы компьютерных сетей в университете, я долгое время думал о том, чтобы интенсивно изучать этот предмет. Однако мне не удалось найти солидный университетский курс, открытый для публики (что-то вроде введения в алгоритмы Массачусетского технологического института). А во многих учебниках с префиксом «введение» сотни страниц объясняются концепции довольно низкого уровня, такие как алгоритмы маршрутизации или даже физические провода, соединяющие континенты!
Затем я нашел Руководство Биджа по сетевому программированию, которое часто рекомендуют в Интернете. На первый взгляд, мне было легко читать книгу из-за того, как автор объясняет концепции в юмористической манере. Но в то же время, по сравнению с другими книгами по компьютерным сетям, эта книга содержит много примеров кода, поэтому я подумал, что она больше подходит программистам, которым нужна практическая практика программирования сокетов.
И после прочтения всех глав, кроме главы 9 (потому что она больше похожа на справочник по множеству функций сокетов C), я нашел ее хорошим чтением.
Книга начинается с нескольких основных понятий, таких как IP, порт и сокет. Однако он не углубляется в представление очень технических алгоритмов или физических устройств, используемых для сетевых коммуникаций. Как разработчик, который ежедневно занимается веб-приложениями, я нашел это более актуальным для моей работы. Несмотря на то, что в книге иногда упоминаются биты и байты, она все равно читабельна, и вы обычно никогда не выполняете никаких побитовых операций при чтении кода C в книге.
Для тех, кто хочет испачкать руки программированием, эта книга для вас. За исключением общих обзорных частей, посвященных компьютерным сетям, большинство объяснений в книге сопровождаются примерами кода на C. Это особенно полезно для понимания того, как фактические сетевые коммуникации происходят внутри наших веб-приложений. Например, операция опроса просматривает все зарегистрированные сокеты, чтобы проверить, есть ли входящие события, которые необходимо обработать.
Более того, примеры не импортируют какие-либо внешние библиотеки, поэтому вам не придется сталкиваться с раздражающими проблемами сторонних зависимостей.
Эта книга очень хороша как удобный справочник по программированию сокетов и соответствующим системным вызовам. Однако он не идет «выше» или «ниже»:
Однако я нашел еще один хороший ресурс, написанный тем же автором: «Руководство Биджа по сетевым концепциям». Кажется, что многие основные концепции рассматриваются более полно, чем эта книга, и содержит множество упражнений по программированию. Я надеюсь, что эта «концептуальная» книга заполнит пробел в книге «Программирование».
Если вы мало что знаете о программировании на языке C, эта книга может оказаться для вас непосильной задачей. Он не объясняет никаких базовых понятий, таких как указатели или приведение типов. Хотя мы не страдаем от ада зависимостей, как при работе с CMake, если вы мало что знаете о C, чтение кода все равно будет затруднено.
Лично меня устраивает код на C. Однако книга могла бы быть более удобной для новичков, если бы она была написана на Python, в библиотеке сокетов которого имеются почти все аналоги функций сокетов языка C. В «концептуальной» книге того же автора на этот раз используется Python, так что здесь можно ожидать немного удовольствия.
В целом, книга наполнена практическими примерами кода, которые полезны при понимании сетевых приложений, использующих системные вызовы сокетов. Конечно, вам не понадобится использовать эти функции при написании собственного приложения, поскольку многие языки поддерживают свои собственные оболочки для этих «низкоуровневых» сетевых функций сокетов (Python имеет такие библиотеки, как Socketserver и http). Тем не менее, я думаю, что однажды в вашей карьере разработчика вы должны понять, что происходит за всеми этими крайне абстрактными коммуникациями с использованием HTTPS или веб-сокетов. В этом смысле эту книгу можно хорошо прочитать, а также в качестве справочного материала.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3