GithubHelp home page GithubHelp logo

mbelsky / js-problems Goto Github PK

View Code? Open in Web Editor NEW
236.0 9.0 72.0 2.03 MB

📚 Русскоязычный сборник задач с автоматической системой проверки JavaScript решений

License: MIT License

JavaScript 100.00%
javascript algorithms coding hacktoberfest

js-problems's Introduction

js-problems

Оттачивай навыки алгоритмики и кодирования.

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

Вместе с задачами поставляется система для автоматической проверки решений написанных на JavaScript.

Предварительные настройки

  1. Убедись, что git и node v10.13.0+ установлены на твоем компьютере
  2. Склонируй репозиторий
  3. В папке с проектом из терминала выполни npm ci

Теперь можно приступать к решению задач!

Задачник

Задачи находятся в папке /problems. Каждая задача оформлена в виде отдельного .js файла.

Каждый файл имеет следующую структуру:

  1. Комментарий с
    • описанием условия задачи
    • примером вызова функции, передаваемых аргументов и ожидаемым результатом
    • JSDoc для параметров и возвращаемого функцией значения
  2. Заглушка тела функции. Пиши свое решение здесь
  3. Инструкция module.exports = … делает функцию доступной для автоматического тестирования

Тестирование решений

Система автоматичекой проверки решений может быть запущена в одном из трех режимов.

Рекомендуется использовать автоматическую проверку в связке с pre-commit. А каждую решенную задачу оформлять в виде коммита, чтобы не запускать лишние тесты.

Ручная проверка

Запускается командой

npm run test

Эта команда проверит правильность решений для всех файлов в которые были внесены изменения и git статус которых not staged for commit.

Автоматическая проверка

Запускается командой

npm run test:watch

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

Pre-commit проверка

Каждую решенную задачу рекомендуется оформлять в отдельный коммит. Pre-commit проверка автоматически запускается на выполнение команды git commit. Тесты выполняются для всех файлов добавленных в содержание коммита.

Отладка

При решении задач в IDE Visual Studio Code подключение отладчика происходит в пару кликов:

  1. В меню среды разработки выбрать View -> Debug. Слева отобразится панель отладчика
  2. Выбрать Debug js-problems как конфигурацию отладчика (видеоверсия) Демонстрация выбора конфигурации отладчика
  3. Через меню запустить отладчик Debug -> Start Debugging. git статус отлаживаемого файла должен быть not staged for commit.

Альтернативы

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

Как альтернативный русскоязычный сборник задач можно рассматривать сайт "Школа программиста", но без системы для автоматической проверки JavaScript решений.

Содействия

Любой желающий может помочь проекту, например:

  • добавлением новых задач в сборник
  • расширением тест-кейсов

Для этого оформляйте свои предложения в виде задач.

Лицензия

Проект разрабатывается под лицензией MIT.

js-problems's People

Contributors

daniil-ov avatar dependabot[bot] avatar mbelsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

js-problems's Issues

Не работает Pre-commit проверка

На ОС Windows не срабатывает Pre-commit проверка если коммит совершается из пользовательского интерфейса Visual Studio Code: Source Control.

Обновить husky до версии @7.0.4 для устранения секьюрити уязвимости

Или рассмотреть альтернативы.

                       === npm audit security report ===                        
                                                                                
# Run  npm install --save-dev [email protected]  to resolve 1 vulnerability
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Regular Expression Denial of Service (ReDOS)                 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ semver-regex                                                 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ husky [dev]                                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ husky > find-versions > semver-regex                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://github.com/advisories/GHSA-44c6-4v22-4mhx            │
└───────────────┴──────────────────────────────────────────────────────────────┘


found 1 moderate severity vulnerability in 709 scanned packages
  1 vulnerability requires semver-major dependency updates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.