Giter Club home page Giter Club logo

js-problems's Introduction

js-problems

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

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

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

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

  1. Убедись, что git и node установлены на твоем компьютере
  2. Склонируй репозиторий
  3. В папке с проектом из терминала выполни команды:
npm install
git checkout -b solutions

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

Для чего делать checkout? Выполнить `git checkout -b solutions` предлагается для того, чтобы в будущем было проще обновиться до последней версии задачника. Для обновления необходимо выполнить `git pull origin master`. Если при обновлении возник merge conflict и решить его не получается, можно отменить текущий процесс влития `git merge --abort`, переключиться в master ветку, обновиться и продолжить занятия в новой ветке.

Задачник

Задачи находятся в папке /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

mbelsky avatar

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.