SPECTRALANG_

// DOCS NAVIGATION

Convenções e Boas Práticas_

SOURCE: content/docs/reference/01-introducao.md01 Introdução / 8. Convenções e Boas Práticas / Conventions & Best Practices

Nomenclatura / Naming Conventions

PT-BR:

Construto / ConstructConvenção / ConventionExemplo / Example
Variáveis / Variablessnake_caseminha_variavel, contador
Funções / Functionssnake_casecalcular_area, obter_nome
StructsPascalCasePonto, RetanguloColorido
EnumsPascalCaseCor, EstadoConexao
Variantes de Enum / Enum VariantsPascalCaseVermelho, Conectado
Módulos / Modulessnake_case com pontosapp.controladores
Constantes / ConstantsSCREAMING_SNAKE_CASEMAX_SIZE, PI
Parâmetros de Tipo / Type ParamsPascalCase curtoT, E, Chave, Valor

EN-US:

ConstructConventionExample
Variablessnake_casemy_variable, counter
Functionssnake_casecalculate_area, get_name
StructsPascalCasePoint, ColoredRectangle
EnumsPascalCaseColor, ConnectionState
Enum VariantsPascalCaseRed, Connected
Modulessnake_case with dotsapp.controllers
ConstantsSCREAMING_SNAKE_CASEMAX_SIZE, PI
Type ParametersShort PascalCaseT, E, Key, Value

Organização de Arquivos / File Organization

projeto/                   # Raiz do projeto / Project root
├── Spectra.toml           # Manifesto do projeto / Project manifest
├── src/
│   ├── main.spectra       # module main / public func main() returns int { ... }
│   ├── utils.spectra      # module utils
│   └── modelos/
│       ├── usuario.spectra  # module modelos.usuario
│       └── produto.spectra  # module modelos.produto
└── tests/
    └── testes.spectra     # module tests

Formatação / Formatting

PT-BR:
Use spectralang fmt para formatar automaticamente. As regras padrão são:

EN-US:
Use spectralang fmt to format automatically. The default rules are:

  • Indentação / Indentation: 4 espaços / 4 spaces
  • Comprimento máximo de linha / Max line length: 100 caracteres / characters
  • Espaçamento em operadores / Operator spacing: a + b (não a+b)
  • Chaves / Braces: Abre na mesma linha / Opens on same line: func foo() {

Próximo / Next: 02 — Fundamentos / Fundamentals