Небольшое понимание: количество звездочек в «Node.js Study Notes» превысило 1000+.

Node.js внешний интерфейс
Небольшое понимание: количество звездочек в «Node.js Study Notes» превысило 1000+.

письменный фон

Автор начал писать в прошлом году.«Заметки об изучении Node.js»Количество звезд на github превысило 1000, что является важной вехой.

Прошло полтора года с момента первой подачи (2016.11.03). Я вдруг почувствовал себя немного взволнованным и захотел написать что-нибудь, чтобы рассказать об урожае, умственном путешествии и о том, как изучать Node.js в этот период.

Ментальное путешествие

У автора всегда была привычка делать технические заметки, в последние несколько лет я тоже много чего написал про Node.js, но все они хранятся в evernote. Когда я писал, я чувствовал, что нужно систематизировать это, поэтому родился этот проект.

После приблизительной статистики было отправлено около 60 руководств, иОколо 300 примеров сценариев.

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

Процесс написания довольно скучный и немного утомительный, особенно посреди ночи или выходных для кодовых слов Студенты, которые часто пишут технические статьи, должны быть в состоянии понять это. В любом случае, я упорствовал до конца и до сих пор чувствую, что многого добился.

1. Накопление технологий. Изначально в evernote были только разрозненные заметки, но после сортировки и корректуры, дальнейшего обдумывания и углубленного изучения разрозненные точки знаний постепенно соединялись в систематизированную поверхность знаний. Это более полезно, чем простое запоминание сотен API-интерфейсов Node.js и скучных элементов конфигурации.

2. Обмен знаниями. В процессе написания многие студенты, которые также изучают Node.js, выразили свою благодарность через QQ или личные сообщения. Для автора это на самом деле имеет больше смысла, чем увеличение количества звезд.

3. Уменьшилась техническая тревога. Как мы все знаем, фронтенд-поле меняется слишком быстро, и практикующие в нем находятся под большим давлением, что также является причиной того, что знаменитая ножка «Я не могу учиться» внезапно смахнула. Глубокое обучение, размышление и овладение методами и законами обучения могут в определенной степени облегчить техническую тревогу.

4. Внезапная удача. В этот период я ​​получил приглашения от сообщества Alibaba Yunqi (блогер-эксперт) и сообщества Tencent Cloud+, приглашения для написания статей от многих известных издательств и приглашения начать курсы от образовательных онлайн-платформ (таких как МООК).

Как изучить Node.js

Аналогичный вопрос был задан 2 года назад в сообществе SegmentFault.«Узнаете о nodejs? 》, то ответил просто.

  1. Практика — лучший способ учиться.Если вы сможете применить то, что узнали, на практике, эффективность будет намного выше, чем если бы вы не занимались оптикой.
  2. Если у вас возникнут проблемы, научитесь использовать Google, stackoverflow и официальную документацию.
  3. Препятствием для изучения узла в большинстве случаев является не сам узел, а связанные с ним знания предметной области.

Практика приносит истинное знание, этот момент не нужно подчеркивать. В кругу единодушно принято правильно использовать поисковые системы при возникновении технических проблем (новичкам необходимо повысить осведомленность об этом аспекте).

На самом деле, самый сложный пункт — это пункт 3, отличающий проблему, с которой вы столкнулись.

Например, сейчас хочу учитьсяhttpsЭтот модуль, многие новички будут беспомощны, общие проблемы:

  1. Вопрос 1: модули https, http, net выглядят одинаково, и API похожи, какая между ними связь?
  2. Вопрос 2: Одним из элементов конфигурации является сертификат, для чего он нужен? Я настроил сертификат по инструкции, почему браузер сообщает об ошибке?
  3. Вопрос 3:Локально сервер работает хорошо,но когда он развернут на облачный сервер,к нему нет доступа.Его можно пропинговать и порт включен.Почему выдается запрос на отказ в доступе?

Прежде чем ответить на вопрос формально, сначала предложите схему многоуровневой сетевой архитектуры, пожалуйста, имейте это в виду.

Интернет реализован на основе многоуровневой архитектуры, включающей прикладной уровень, транспортный уровень, сетевой уровень, канальный уровень и физический уровень. Среди них фронтенд-разработчики больше знакомы с прикладным уровнем (протокол HTTP).Если вы хотите изучить программирование сервера Node, вам необходимо хотя бы некоторое представление о транспортном уровне (TCP) и сетевом уровне (IP).

Для каждого уровня сети Node.js в основном имеет соответствующие модули, такие как https, http, net(TCP), tls/crypto и т. д.

Перечисленные выше проблемы вызваны недостаточным пониманием сетевых знаний и знаний о серверах, а не сложностью и сложностью понимания API Node.js.

Вот прямой ответ на вопрос:

  1. Вопрос 1: http — это модуль прикладного уровня, который в основном кодирует и декодирует данные в соответствии с определенным протоколом; net — это модуль транспортного уровня, который в основном отвечает за передачу закодированных данных прикладного уровня; https — комплексный модуль (охватывающий http/ tls/crypto и т. д.), в основном используется для защиты данных, должно быть понятно, какой модуль использовать.
  2. Вопрос 2: Сертификаты безопасности являются важной частью системы PKI и в основном используются для проверки подлинности. Если сертификат, используемый для локальной отладки, подписан вами, браузер сочтет его небезопасным и сообщит об ошибке.Сканирование научно-популярных сообщений HTTPS".
  3. Вопрос 3: В этом случае велика вероятность того, что запрос заблокирован брандмауэром. Для проверки связи используется протокол ICMP, который обрабатывается ядром операционной системы. Возможность проверки связи не означает, что TCP-соединение может быть успешно установлено. См. 《Анализ использования и принцип реализации ping

написать на обороте

Процесс написания «Учебных заметок по Node.js» принес много пользы, и у меня много чувств, поэтому я не буду здесь слишком много говорить. По вопросу "Как выучить Node.js" на самом деле хочется много чего написать.Ввиду ограниченного места следующие статьи будут подробно расширены.

Ссылки по теме

Заметки об исследовании Nodejs

Личный блог автора