Рубрики
Без рубрики

Как начать с конкурентного программирования в JavaScript

Priyabrata Biswas Как начать с конкурентным программированием в JavaScriptle U =? =>? ; U (m); / * M → ‘Mathball’ * / Если вы не знакомы с конкурентным программированием, в основном это умный вид спорта с целью написания кода для решения заданных проблем. Я был представлен ему в моем первокурсником

Автор оригинала: FreeCodeCamp Community Member.

Priyabrata Biswas

Если вы не знакомы с Конкурентное программирование В основном это сознание спорта с целью написания кода для решения заданных проблем. Я познакомился с этим в моем первокурснике моих пожилых людей. Насколько это написано, я до сих пор не очень хорошо в этом! Может быть, это связано с тем, что мне не нравится кодировать в C ++, или, возможно, я ленивый человек, который не найдет время, чтобы на самом деле было достаточно хорошо изучать. Но я люблю алгоритмы и данные-структуры столько, сколько мне нравится JavaScript!

Итак, нелепая мысль снова передумала снова и снова. «Что, если мы начнем использовать JavaScript на конкурентной арене?» Оказывается, это не похоже на неизведанную территорию, которую я подумал, что это будет. Многие платформы, такие как HackeRrank , Codechef и CodeForces Поддержка JavaScript.

Я знаю, C ++ намного быстрее по сравнению с JavaScript и может динамически распределять память. C и C ++ очень похожи с точки зрения производительности, но конкурентные программисты в основном используют C ++ из-за его Стандартный шаблон библиотеки (или STL). Он предоставляет общие структуры данных по программированию, такие как список, стек, массив вместе с классами контейнера, алгоритмы и итераторы из коробки.

Но JavaScript предлагает что-то не хватает C ++:

Будучи языком сценариев, JavaScript по своей природе медленнее. Но все же, это самый популярный язык там. По данным 2018 года Обзор разработчика переполнения стека 69,8% респондентов используют JavaScript для своих целей развития. Но в то же время он так хорошо не сияет в случае конкурентного программирования. Причина в том, что это было просто не построено для этого!

Вернувшись в 1995 году, Брендан Эйч Разработанный JavaScript только для добавления интерактивности на веб-страницы, такие как обработка щелчка мыши.

Сегодня мы можем создавать серверы, игры, мобильные приложения, приложения IoT, и даже машинное обучение в браузере возможно с JavaScript. Итак, почему стыдно, используя его в конкурентном программировании?

Помните, что я рассказал вам о STL и Toolkit, он обеспечивает конкурентное программирование? Я думал себе, почему нет TC 39 Придумайте что-то подобное для JavaScript!

Вы слышали о «Узел Пакет менеджера», также известный как « NPM ‘?

Ну, это в мире Крупнейший реестр программного обеспечения С более чем 874 285 пакетами (как в этом написании) и является диспетчером пакета по умолчанию для Node.js.

Представляем Матчбол

Mathball – это пакет NPM для конкурентного программирования в JavaScript, реализующий оптимизированные алгоритмы для более быстрого выполнения. Хорошо, теперь я преувеличиваю! Правда в том, что он поддерживает только 16 функций утилиты, реализующие Подходы к братам слишком далеко. Я собрал этот крошечный помощник библиотеки для оказания помощи людям в конкурентном программировании.

Вы можете легко получить пакет, если на вашем компьютере установлен Node.js и NPM, введя следующую команду в вашем терминале:

npm install mathball

Вы можете получить доступ к всем утилитам через Матчбол Объект, М , вот так:

Опять же, просто получение индивидуальной функции так просто, как это:

О, теперь вы должны думать –

Ответ прост, просто пучок Это! ?

Позвольте мне объяснить, что я имею в виду! Допустим, вы пытаетесь решить эту особую проблему на HackeRrank –

Простая сумма массива | HackeRrank Рассчитайте сумму целых чисел в массиве. www.hackerrank.com.

Не перегружены всеми этими строками кода. Если вы использовали HackErrank до того, как вы уже знаете, что это просто для обработки ввода/вывода.

Сначала скопируйте и вставьте вышеуказанное содержимое в файл, index.js Отказ Затем в том же каталоге откройте терминал и введите:

npm install mathball

Далее, внутри index.js Файл, измените следующее:

Наконец, чтобы заблокировать все в одном файле, я использую WebPack, но вы можете выбрать любой модуль Commonjs Bundler!

Итак, давайте создадим webpack.config.js Файл в том же каталоге с следующим кодом в нем:

Если у вас еще нет WebPack, пожалуйста, установите его так:

npm install -g webpack webpack-cli

Наконец, введите следующее:

webpack --config ./webpack.config.js --mode=development

Теперь приведенная выше команда создаст файл с именем bundle.js в том же каталоге. Итак, скопируйте и вставьте его контент на HackeRrank и нажмите * Отправить код *. Вот и все!

Эпилог

Не имеет смысла проходить всю эту ерунду, чтобы вы могли вычислить сумму массива … верно? Поэтому я должен признаться, что проблемы на конкурентное программирование, как правило, гораздо более сложнее, чем это.

После того, как вы выясните, какой алгоритм или структура данных вашей проблемы потребности, кодирование становится довольно просто, если у вас есть библиотека, как Mathball в вашем распоряжении. Кроме того, вам не нужно проходить все эти шаги для объединения каждый раз, когда вы кодируете что-то. Это в основном одноразовый процесс настройки. Просто код вдоль и свяжите свои файлы последней командой.

Забавный факт – Вы можете использовать Mathball в вашем проекте тоже!

Я буду постоянно совершенствовать Matchball, и я искренне приветствую ваш вклад. Вместе мы можем сделать Mathball сделать намного больше! Вот …| ссылка для репо.

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

Вот список ресурсов, которые вдохновили меня вступать в мое путешествие поддержки JavaScript в конкурентном программировании:

  1. Pranay Dubey – JavaScript для конкурентного программирования
  2. JavaScript для алгоритмического конкурентного программирования

Спасибо за ваше время! ✌️.