Интенсивное чтение «Введение в Node.js»

Node.js JavaScript
Интенсивное чтение «Введение в Node.js»

предисловие

Если вы хотите глубже изучить Node, вам обязательно стоит прочитать книгу «Introduction to Node.js», которая знакомит с внутренними функциями и структурой Node с разных точек зрения. Указанный введением Node в первой главе, он охватывает все аспекты Node.Основное содержание включает раскрытие механизма модуля, представление принципа реализации асинхронного ввода-вывода, обсуждение асинхронного программирования, введение управление памятью, сведения о буфере двоичных данных и сведения об основах сетевого программирования Node, веб-разработке в Node, обмене сообщениями между процессами, тестировании Node, а также о том, что нужно и чего нельзя делать при создании продукта с помощью Node. Последнее приложение охватывает установку, отладку, соглашения по кодированию и NPM-репозиторий Node. В процессе прочтения этой книги я многому научился, и записал это в виде ментальной карты, которую мне удобно пересматривать позже. Если вы просто не читали ее, вы можете прочитать ее в качестве предварительного просмотра этой книги, и я верю, что вы также что-то получите (изображение карты разума может быть немного маленьким, не забудьте щелкнуть по нему)

Глава 1. Введение в Node.js

Глава 2 Механизмы модуля


Спецификации, предложенные Commonjs, очень просты, но практическая значимость очень мощная. Узел организует свои собственные родные модули через спецификацию модуля, составляют слабые структурные проблемы JavaScript, образуют стабильную структуру и предоставляют услуги внешнему миру. NPM эффективно организует сторонние модули путем поддержки спецификаций пакета, что делает проблему зависимости в разработке проекта хорошо решено, И эффективно предоставляют платформу для обмена и распространения, с помощью сторонней мощности с открытым исходным кодом, скорость разработки сторонних модулей узлов беспрецедентна, что беспрецедентно для других реализаций JavaScript JavaScript. В некотором смысле, спецификация Commonjs помогает узел образует свой скелет. Только сильные корни могут выращивать пышные ветви и листья и растут в возвышенные деревья. Именно эти основные характеристики и практики позволяют создавать узел в упорядоченном виде, избавиться от хаоса и недопонимания JavaScript в прошлом и развиваться в доброкачественную экосистему.

Глава 3 асинхронный ввод / вывод


В этой главе представлены асинхронный ввод-вывод и другие асинхронные методы, которые не являются вводом-выводом. Можно видеть, что цикл событий является ядром асинхронной реализации, которая в основном согласуется с моделью выполнения в браузере. И подобно древнему Rhino, хотя это среда выполнения JavaScript, которая может работать на стороне сервера раньше, модель выполнения не управляется событиями, как браузер, а синхронный ввод-вывод, как в других языках. Как основная модель, это делает ее неиграбельной с точки зрения производительности. Node опирается на построение полного набора высокопроизводительных асинхронных фреймворков ввода/вывода, что позволяет преодолеть ситуацию, когда JavaScript застой на стороне сервера.

Глава 4. Асинхронное программирование


В процессе обращения к Node многие люди отказываются от нескольких функций обратного вызова после жесткого контакта. Асинхронное программирование немного сложнее, но оно не лишено достоинств, и как только вы к нему привыкнете, оно станет естественным. Судя по сообществу и прошлому опыту, проблема асинхронного программирования в JavaScript в основном решена, будь то с помощью событий, шаблонов Promise/Deferred или библиотек управления потоком. Взаимно Я считаю, что после овладения вышеуказанными навыками асинхронное программирование не составит труда, и после того, как вы привыкнете к асинхронному программированию, вы получите большой опыт программирования, которым стоит наслаждаться.

В этой главе в основном представлены несколько основных решений для асинхронного программирования, которые в настоящее время в основном используются в JavaScript. Но для других языков есть такие способы, как сопрограммы. Однако из-за того, что Node основан на V8, текущая реализация EMCAScript5 не поддерживает сопрограммы. Эти стандарты и спецификации все еще находятся в стадии разработки, поэтому пока не будут вводиться. Если будущий V8 будет поддерживать Generator, его также можно будет использовать непосредственно в Node.

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

Глава 5 Управление памятью

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

Глава 6. Понимание буферов


После знакомства с манипулированием строками, удобными для JavaScript, некоторые разработчики могут сформировать образ мышления и понимать Buffer как строку. Но между строками и буферами есть существенные различия, то есть буферы представляют собой двоичные данные, а между строками и буферами существует отношение кодирования. Следовательно, необходимо понимать многие детали Buffer, чтобы эффективно обрабатывать двоичные данные. полезный.

Глава 7 Сетевое программирование


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

Глава 8. Создание веб-приложений


The content involved in this chapter is relatively rich. In the entire construction process of Web applications, the entire process from processing requests to responding to requests is explained in principle. By sorting out the details of this chapter, a fully functional Web development framework can будет завершена.过去的各种Web技 术,随着框架和库的成型,开发者往往迷糊地知道应用框架和库,却不知道细节的实现,这好比 没有地图却在野地里行进。本章的内容希望能为Node开发者带来地图似的启发,在开发Web应用 时能够心有轮廓,明了细微。

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

Глава 9 Игра с процессом

Хотя Node достаточно хрупок с однопоточной точки зрения: он не может полностью использовать ресурсы многоядерного процессора и не может гарантировать его стабильность. Но сила группы велика, и с помощью простой модели «главный-подчиненный» качество приложения может быть улучшено до более высокого уровня. В реальном сложном бизнесе нам, возможно, придется запустить множество подпроцессов для обработки задач, а структура еще сложнее, чем в режиме ведущий-ведомый, но каждый подпроцесс должен быть достаточно простым, чтобы хорошо выполнять только одну задачу, а затем передавать их с помощью технологии межпроцессного взаимодействия.Просто подключитесь. Это соответствует философии дизайна Unix, каждый процесс делает только одну вещь и делает одну вещь хорошо, разлагая сложное на простое и объединяя простое в мощное.

Хотя стабильность Node можно значительно улучшить с помощью модуля child_process, после сбоя основного процесса все дочерние процессы станут неуправляемыми. В дополнение к управлению процессами Node также необходимо отслеживать количество процессов или отслеживать журналы, чтобы обеспечить стабильность всей системы.Даже если основной процесс завершается с ошибкой, оповещения мониторинга могут быть получены вовремя, чтобы разработчики могли вовремя справляться с неудачами.

Глава 10 Тестирование

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

Для производительности в процессе кодирования должно быть некоторое перцептивное познание, которое частично отклоняется от реальной ситуации, и тест производительности может скорректировать это различие.

Глава 11 Продуктизация


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

расширять

Карта разума может более четко восстановить систему структуры знаний всей книги.Если вы еще не читали эту книгу, вы можете быстро просмотреть ее в соответствии с идеями этой карты разума, чтобы повысить эффективность обучения. Изучение новых вещей всегда легко забыть. Я предпочитаю использовать интеллект-карты, чтобы делать некоторые заметки при чтении книг, чтобы я мог просмотреть их позже. Если вы прочитали эту книгу, также рекомендуется собрать и просмотреть. Если у вас есть предложения или идеи Shenma, оставьте сообщение или добавьте меня в WeChat: 646321933

«Введение в Node.js» PDF