MrFSP/backend-project-lvl2

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Maintainability](https://api.codeclimate.com/v1/badges/eb838a1bba6ef5fc178c/maintainability)](https://codeclimate.com/github/MrFSP/backend-project-lvl2/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/eb838a1bba6ef5fc178c/test_coverage)](https://codeclimate.com/github/MrFSP/backend-project-lvl2/test_coverage)
[![Build Status](https://travis-ci.org/MrFSP/backend-project-lvl2.svg?branch=master)](https://travis-ci.org/MrFSP/backend-project-lvl2)
[![Node.js CI](https://github.com/MrFSP/backend-project-lvl2/workflows/Node.js%20CI/badge.svg)](https://github.com/MrFSP/backend-project-lvl2/actions)

## [Проект Вычислитель отличий](https://ru.hexlet.io/professions/backend/projects/46) / [Профессия Бэкенд JavaScript (node.js)](https://ru.hexlet.io/professions/backend)

### Уровень: 2

### Цель

Второй проект является логическим развитием первого. Он захватывает большую часть синтаксических 
возможностей js и использует более сложную архитектуру. Затрагиваемые темы:

* cli. В этом проекте вы научитесь создавать cli приложения так, как это делается в настоящей 
жизни, с использованием специальных библиотек, занимающихся парсингом входных параметров, 
валидацией и генерацией помощи.
* Форматы данных: json, yaml, ini. Кроме понимания самих форматов, вы так же научитесь 
транслировать данные из js в эти форматы и обратно.
* Алгоритмическая подготовка. Вас ждет обработка и трансформация деревьев. Немного кода, 
кипятящего мозг, никогда не помешает.
* Архитектурные принципы: Фасад, Адаптер. Вы познакомитесь и на практике реализуете одни 
из самых распространенных подходов при организации кода.
* Полиморфизм
* Функциональное программирование

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

Красной нитью сквозь этот проект будет проходить автоматизированное тестирование, а в идеале — 
разработка через тесты.

### Описание

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

Возможности утилиты:

* Поддержка разных форматов
* Генерация отчета в виде plain text, pretty и json

### Установка

```sh
$ make install
```

### Запуск

```sh
$ gendiff pathToFile1 pathToFile2

``` 

### Демонстрации:

#### 

[![asciicast](https://asciinema.org/a/297754.svg)](https://asciinema.org/a/297754)

#### 

[![asciicast](https://asciinema.org/a/298205.svg)](https://asciinema.org/a/298205)

#### 

[![asciicast](https://asciinema.org/a/298226.svg)](https://asciinema.org/a/298226)