Skip to content

qwars/byndyusoft-node-calc-cli

Repository files navigation

byndyusoft-node-calc-cli

Тестовое задание для byndyusoft.com

Mail

в качестве тестового задания предлагаем написать на Node.js консольный калькулятор (можно с веб-интерфейсом), который принимает входную строку, содержащую математическое выражение (целые и десятично-дробные числа, знаки +, -, *, / и скобки) и выводит в консоль результат его вычисления.

Главным критерием при оценке задания является использование при разработке TDD и принципов SOLID. Архитектура решения должна обеспечивать расширение списка поддерживаемых операций при минимальном и максимально безболезненном для существующей функциональности внесении изменений в исходный код. Код должен быть легко читаем и отформатирован в едином стиле, содержать минимальное число поясняющих комментариев.

Пример консольного ввода: Введите выражение: 1+2-3 Результат: 0

Результатом будет публично доступный репозиторий на GitHub с исходным кодом тестового задания.

Ждем фидбек, когда приступите к выполнению или решите не делать тестовое. Пожалуйста, в ответе поставьте метку "ответить всем"

-- Best wishes, Margarita Milberger HR-manager at Byndyusoft http://byndyusoft.com

Установка и настройка

Для установки понадобиться:

nodejs $ sudo apt install nodejs yarn $ sudo npm i -g yarn

Для настройки: yarn install

Разработка тесты: yarn test

Консольная версия: yarn start

Публикация для WEB: yarn build:web - создает мини сайт в 'public'

Разработка для WEB: yarn develop:web

Использование

const Calculator = ( fn => new fn() )( require(  './source/calculator' ).default );

var result = Calculator.calculate('.....');

или

const Calculator = require(  './source/calculator' ).default;

var result = Calculator('.....');

или

const Calc = require(  './source/calculator' ).default;

const Calculator = new Calc()

var result = Calculator.calculate('.....');

Методы

calculate( exp ) - вычисляет выражение exp

About

Тестовое задание для byndyusoft.com

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published