BotLino/Lino

View on GitHub
docs/policies/style_sheet.md

Summary

Maintainability
Test Coverage
|Data       | Versão | Descrição            | Autor             |
|:----------:|:------:|:--------------------:|:-----------------:|
| 26/09/2018 | 1.0 | Criação do Documento de Folha de Estilo  | Bruna Pinos |

# Sumário

>[1. Nomes](#1-nomes)

- >[1.1. Intents](#11-intents)
- >[1.2. Actions](#12-actions)
- >[1.3. Utterances](#13-utterances)
- >[1.4. Entities](#14-entities) 
- >[1.5. Arquivos](#15-arquivos)

>[2. Formatação](#2-formatacao)


## 1. Nomes

<p align="justify">&emsp;&emsp;Os nomes de todos os componentes do código deve ser em <b>inglês</b>.</p>

### 1.1. Intents

<p align="justify">&emsp;&emsp;Intens devem ser compostas por verbos conjugados na <b>3˙ pessoa do singular</b>, no <b>presente do indicativo</b>. Isso deve indicar que o usuário está realizando uma tarefa, no sentido literal, com a intenção de algo.</p>

``` md

    // Bom exemplo
    * knows_daily_menu
    * asks_school_certificate

    // Mau exemplo
    * daily_menu
    * saber_sobre_o_cardapio

```

### 1.2. Actions

<p align="justify">&emsp;&emsp;As Actions devem ser uma resposta às intents correspondentes. Logo, também serão compostas por verbos conjugados na <b>3˙ pessoa do singular</b>, no <b>presente do indicativo</b>, porém iniciadas por <b>action</b>.</p>

* Deste modo, está descrito como seria no arquivo de _*stories*_:
``` md

    // Bom exemplo
    - action_gives_daily_menu
    - action_explain_school_certificate

    // Mau exemplo
    - action_daily_menu
    - saber_sobre_o_cardapio
    - knows_weekly_menu

```

* Nos arquivos de _*actions*_, como classe, é necessário estar assim:
``` py

    // Bom exemplo
    class ActionGivesDailyMenu(Action)
    class ActionExplainSchoolCertificate(Action)

    // Mau exemplo
    class action_daily_menu(Action)
    class KnowsWeeklyMenu(Action)

```

### 1.3. Utterances

<p align="justify">&emsp;&emsp;As Utterances seguem o estilo das Actions nos arquivos _*stories*_. </p>

### 1.4. Entities

<p align="justify">&emsp;&emsp;Entities serão substantivos que representam o objeto que se quer armazenar nos <i>slots</i>. Sempre será genérico, pois normamente representa uma categoria.</p>

``` md

    // Bom exemplo
    - meal
    - period
    - name

    // Mau exemplo
    - lunch // não genérico
    - school_certificate // não genérico

```

### 1.5. Arquivos

<p align="justify">&emsp;&emsp;Nas pastas de <i><b>actions</b></i> <i><b>intents</b></i> e <i><b>stories</b></i>, deve ter arquivos referentes a cada contexto. Ou seja, temos um arquivo para intents gerais, e outro referentes a refeição</p>

``` md

    // Bom exemplo
    
    /stories 
     * general.md 
     * menu.md
     * documents.md

    // Mau exemplo
    
    /intents
     * nlu.md

```

## Fomatação

<p align="justify">&emsp;&emsp; A formatação de todos os arquivos serão feitas usando PEP8.  Os links encontram-se abaixo:</p>

> [PEP8](https://www.python.org/dev/peps/pep-0008/) 

> [5 min guide to PEP8 - Pybit](https://pybit.es/pep8.html)