Skip to content

Development pt BR

gsjonio edited this page Jul 13, 2026 · 1 revision

🇺🇸 English

Requer Go 1.24+.

git clone https://github.com/gsjonio/netwp.git
cd netwp
go build ./...
go test ./...
go vet ./...
gofmt -l .        # não deve imprimir nada

Checagens que rodam no CI

Todo push e PR roda, no Windows e no Ubuntu:

  • go build, go vet, go test ./...
  • golangci-lint
  • go test -race ./... (Ubuntu, precisa de cgo, então não faz parte da checagem local numa máquina sem toolchain C)
  • uma passada curta de fuzzing sobre os parsers de wire de DNS/mDNS/ARP

O -race precisa de um toolchain C (cgo), então não está no go test local padrão. Os jobs de race e fuzz cobrem os caminhos concorrentes da descoberta e os parsers de entrada de rede não confiável.

Onde as coisas ficam

O netwp é hexagonal (veja Arquitetura). A regra prática ao adicionar uma capacidade:

  • Lógica de domínio (um caso de uso novo, um tipo, uma heurística) vai em internal/core, atrás de uma interface de porta. O core nunca importa net, os/exec ou syscall.
  • Qualquer coisa que fale com o SO ou a rede vai em internal/adapter/*, implementando uma porta do core. Código específico de plataforma é dividido por build tags (_windows.go, _linux.go, _other.go).
  • O wiring da CLI fica fino, em cmd/netwp.
  • A renderização no terminal vai em internal/tui.

Lógica não trivial (um branch, um parser, uma heurística) vem com um teste. Os parsers que leem bytes de rede também têm alvos de fuzz.

Docs para manter em sincronia

O README e o README.pt-BR são bilíngues e devem ficar estruturalmente idênticos. Se uma mudança é algo que um iniciante precisa que expliquem, atualize o par do guia também.

Guia completo do contribuidor, convenções de mensagem de commit e checklist de PR: CONTRIBUTING.md. Este projeto segue o Código de Conduta.

Clone this wiki locally