1
0
mirror of https://github.com/plastinin/let-s-code.git synced 2025-02-21 19:48:35 +02:00

Добавлена документация

This commit is contained in:
plastinin 2022-04-23 17:58:48 +03:00
parent 19c317d937
commit bc28838cd4
2 changed files with 119 additions and 0 deletions

119
README.MD Normal file
View File

@ -0,0 +1,119 @@
# Let's code - платформа для решения и проверки задач на встроенном языке 1С: Предприятие
[![Join telegram chat](https://img.shields.io/badge/chat-telegram-blue?style=flat&logo=telegram)](https://t.me/simplelogic)
[![Last release](https://img.shields.io/github/v/release/plastinin/let-s-code?include_prereleases&label=last%20release&style=badge)](https://github.com/plastinin/let-s-code/releases/latest)
[![download](https://img.shields.io/github/downloads/plastinin/let-s-code/total)](https://github.com/plastinin/let-s-code/releases/download/latest/1cv8.cf)
[![GitHub issues](https://img.shields.io/github/issues-raw/plastinin/let-s-code?style=badge)](https://github.com/plastinin/let-s-code/issues)
[![License](https://img.shields.io/github/license/plastinin/let-s-code?style=badge)](https://github.com/plastinin/let-s-code/blob/master/LICENSE)
![](img/main-window.png)
## Области применения
- Площадка для тестирования соискателей - если в вашем процессе найма персонала предусмотрена процедура тестирования
- Тренажер для разработчиков - каждый может потренироваться в решении алгоритмических задач на встроенном языке 1С: Предприятие
- Челленджи - для реализации соревнований внутри команды разработки или комьюнити (по аналогии с [1С: Битва](https://youtu.be/crZg4xvQJdQ))
## Логика работы
- **Администратор** настраивает набор задач, количество баллов за решение и набор проверящих (unit) тестов
- **Участник тестирования** выбирает задачу(и) из списка, знакомится с ее постановкой, реализует решение на встроенное языке 1С: Предприятие, запускает проверку (unit) тестов. Если тест пройден успешно, участник тестирования может опубликовать решение. При публикации решения в регистре фиксируется количество баллов и предоставленный код
- **Администратор** имеет право увеличить/уменьшить количество баллов за конкретные решения/предоставленный код (например при _CodeReview_) с помощью инструмента _отчет Результаты тестирования_
### Состав релиза
Элемент | Назначение |
---------|----------|
`1cv8.cf` | Конфигурация релиза|
`demo-base.dt` | Демонстрационная база **с набором задач** |
`Source code` | Исходники в формате 1С: EDT |
## Требования к программному обеспечению
- [OneScript](https://github.com/EvilBeaver/OneScript/releases/latest/) для работы движка проверки
- PowerShell
- Платформа 1С: Предприятие 8.3.16 и старше (для корректной работы буфера обмена)
## Публикации
- [1C: Битва 2.0](https://www.youtube.com/watch?v=crZg4xvQJdQ)
## Благодарности
- [OneScript](https://github.com/EvilBeaver/OneScript)
- [Универсальные инструменты](https://github.com/cpr1c/tools_ui_1c)
- [Hexlet codebattle](https://github.com/hexlet-codebattle/battle_asserts/tree/master/src/battle_asserts/issues)
- [Юрий Пермитин](https://t.me/DevQuietPlace) и его статья на Infostart [Вы запускаете приложения, но делаете это без уважения](https://infostart.ru/1c/articles/1266995/)
## Поддержать автора
Лучший способ поддержать автора - рассказать в чате канала [Простая логика](simplelogic_chat) о том, как вы применили инструмент, и подписаться на наш YouTube-канал [Команда ИТК](https://www.youtube.com/channel/UCXCFK4G65cNI4soCev0mOWA)
## Развитие
**Разработка**: 1С: EDT
**Руководство контрибьтора**: _в разработке_
**Бэклог задач**: [Issues](https://github.com/plastinin/let-s-code/issues)
## Поддержать автора
Лучший способ поддержать автора - рассказать в чате канала [Простая логика](simplelogic_chat) о том, как вы применили инструмент, и подписаться на наш YouTube-канал [Команда ИТК](https://www.youtube.com/channel/UCXCFK4G65cNI4soCev0mOWA)
## Информация о конфигурации
### Ролевая модель
Роль | Права | Режим основного окна
---------|----------|---------
`Полные права` | Добавление задач и тестов, формирование отчета о резульататах тестирования | Обычный
`Участник тестирования` | Тестирование | Рабочее место
### Структура задачи
Элемент | Назначение |
---------|----------|
`Наименование` | Представление задачи в списке|
`Актуальность` | Признак актуальность задачи. Неактульные задачи не отображаются в списке |
`Постановка задачи` | Постановка задачи в формате HTML |
`Шаблон кода` | Шаблон кода, который заполнится в окне редактора кода у участника тестирования при выборе задачи |
`Набор тестов` | Таблица тестов См. [структура теста](#структура-теста) |
### Структура теста
Элемент | Назначение |
---------|----------|
`Предустановка` | Инициализация входящих параметров функции|
`Тест` | Исходный код теста. Тест будет **выполнен** если значение этого кода будет `Истина`|
`Представление` | Визуальное отображение теста в протоколе тестирования|
### Алгоритм работы проверки задачи
1. Входная точка в алгоритм - `Справочники.ИТК_Задачи.ПолучитьРезультатыТестирования()`
2. Функция осуществляет подготовку протокола тестирования по [набору тестов](#структура-теста) для задачи
3. Тест считается успешным если, все тесты из набора выполнены `Истина`
4. Если хоть один тест завершился не успешно, процедура проверки завершается
#### Алгоритм проверки теста
1. Подготовка скрипта **OneScript** по шаблону
```
%КОД_УЧАСТНИКА_ТЕСТИРОВАНИЯ%
Попытка
%ПРЕДУСТАНОВКИ_ПАРАМЕТРОВ_ТЕСТА%
%КОД_ТЕСТА%
Исключение
Результат = ОписаниеОшибки();
КонецПопытки;
Сообщить(Результат);
```
2. Выполенение скрипта OneScript с помощью PowerShell
3. Анализ результата выполнения

BIN
img/main-window.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB