66
77 <br >
88
9- [ ![ CI] ( https://github.com/ESousa97/go-file-processor/actions/workflows/ci.yml/badge.svg )] ( https://github.com/ESousa97/go-file-processor/actions )
10- [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/ESousa97/go-file-processor )] ( https://goreportcard.com/report/github.com/ESousa97/go-file-processor )
11- [ ![ CodeFactor] ( https://www.codefactor.io/repository/github/ESousa97/go-file-processor/badge )] ( https://www.codefactor.io/repository/github/ESousa97/go-file-processor )
12- [ ![ Go Reference] ( https://pkg.go.dev/badge/github.com/ESousa97/go-file-processor.svg )] ( https://pkg.go.dev/github.com/ESousa97/go-file-processor )
13- [ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( https://opensource.org/licenses/MIT )
14- [ ![ Go Version] ( https://img.shields.io/github/go-mod/go-version/ESousa97/go-file-processor )] ( https://github.com/ESousa97/go-file-processor )
15- [ ![ Last Commit] ( https://img.shields.io/github/last-commit/ESousa97/go-file-processor )] ( https://github.com/ESousa97/go-file-processor/commits/main )
9+ [ ![ CI] ( https://github.com/ESousa97/go-file-processor/actions/workflows/ci.yml/badge.svg )] ( https://github.com/ESousa97/go-file-processor/actions )
10+ [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/ESousa97/go-file-processor )] ( https://goreportcard.com/report/github.com/ESousa97/go-file-processor )
11+ [ ![ CodeFactor] ( https://www.codefactor.io/repository/github/ESousa97/go-file-processor/badge )] ( https://www.codefactor.io/repository/github/ESousa97/go-file-processor )
12+ [ ![ Go Reference] ( https://pkg.go.dev/badge/github.com/ESousa97/go-file-processor.svg )] ( https://pkg.go.dev/github.com/ESousa97/go-file-processor )
13+ [ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( https://opensource.org/licenses/MIT )
14+ [ ![ Go Version] ( https://img.shields.io/github/go-mod/go-version/ESousa97/go-file-processor )] ( https://github.com/ESousa97/go-file-processor )
15+ [ ![ Last Commit] ( https://img.shields.io/github/last-commit/ESousa97/go-file-processor )] ( https://github.com/ESousa97/go-file-processor/commits/main )
16+
1617</div >
1718
1819---
@@ -22,6 +23,7 @@ O **Go File Processor** é uma ferramenta de linha de comando e biblioteca de al
2223## Demonstração
2324
2425### Como Biblioteca
26+
2527Adicione transformadores e configure o pool de execução de forma fluida:
2628
2729``` go
@@ -36,13 +38,15 @@ metrics, err := proc.Process("input.csv", "output.json", config)
3638```
3739
3840### Como CLI
41+
3942Execute processamentos massivos com métricas em tempo real:
4043
4144``` bash
4245./fileproc -input data.csv -output data.json -workers 4
4346```
4447
4548Output:
49+
4650``` text
4751[INFO] Iniciando processamento...
4852[INFO] Progresso: 100000 linhas processadas
@@ -54,13 +58,13 @@ Output:
5458
5559## Stack Tecnológico
5660
57- | Tecnologia | Papel |
58- | ------------| -------|
59- | ** Go 1.22+** | Linguagem principal com concorrência nativa de alta performance |
60- | ** Worker Pool** | Gerenciamento de paralelismo e controle de carga |
61- | ** slog** | Structured logging para observabilidade e rastreabilidade |
62- | ** Atomic Counters** | Coleta de métricas de alta performance sem contenção (lock-free) |
63- | ** Channels** | Comunicação segura e desacoplada entre Producer, Workers e Consumer |
61+ | Tecnologia | Papel |
62+ | ------------------- | ------------------------------------------------------------------- |
63+ | ** Go 1.22+** | Linguagem principal com concorrência nativa de alta performance |
64+ | ** Worker Pool** | Gerenciamento de paralelismo e controle de carga |
65+ | ** slog** | Structured logging para observabilidade e rastreabilidade |
66+ | ** Atomic Counters** | Coleta de métricas de alta performance sem contenção (lock-free) |
67+ | ** Channels** | Comunicação segura e desacoplada entre Producer, Workers e Consumer |
6468
6569## Pré-requisitos
6670
@@ -88,13 +92,13 @@ make bench
8892
8993## Makefile Targets
9094
91- | Target | Descrição |
92- | --------| -----------|
93- | ` make build ` | Compila o binário ` fileproc ` na raiz do projeto |
94- | ` make test ` | Executa a suíte de testes unitários |
95- | ` make bench ` | Roda comparativos de performance (Sequencial vs Paralelo) |
96- | ` make generate-data ` | Gera arquivo de teste massivo (100.000 registros) |
97- | ` make clean ` | Remove binários e arquivos temporários |
95+ | Target | Descrição |
96+ | -------------------- | --------------------------------------------------------- |
97+ | ` make build ` | Compila o binário ` fileproc ` na raiz do projeto |
98+ | ` make test ` | Executa a suíte de testes unitários |
99+ | ` make bench ` | Roda comparativos de performance (Sequencial vs Paralelo) |
100+ | ` make generate-data ` | Gera arquivo de teste massivo (100.000 registros) |
101+ | ` make clean ` | Remove binários e arquivos temporários |
98102
99103## Arquitetura
100104
@@ -111,7 +115,7 @@ graph LR
111115 Transformers --> Results{Result Channel}
112116 Results --> Consumer[Consumer]
113117 Consumer --> Output[JSON Output]
114-
118+
115119 subgraph "Worker Pool"
116120 W1
117121 W2
@@ -125,11 +129,11 @@ Documentação técnica detalhada disponível em [pkg.go.dev/github.com/ESousa97
125129
126130## Configuração (CLI Flags)
127131
128- | Flag | Descrição | Tipo | Padrão |
129- | ------| -----------| ------| ---------|
130- | ` -input ` | Caminho do arquivo CSV de entrada | ` string ` | ` input.csv ` |
131- | ` -output ` | Caminho do arquivo JSON de saída | ` string ` | ` output.json ` |
132- | ` -workers ` | Número de workers simultâneos | ` int ` | ` 4 ` |
132+ | Flag | Descrição | Tipo | Padrão |
133+ | ---------- | --------------------------------- | -------- | ------------- |
134+ | ` -input ` | Caminho do arquivo CSV de entrada | ` string ` | ` input.csv ` |
135+ | ` -output ` | Caminho do arquivo JSON de saída | ` string ` | ` output.json ` |
136+ | ` -workers ` | Número de workers simultâneos | ` int ` | ` 4 ` |
133137
134138## Roadmap
135139
@@ -139,7 +143,6 @@ Acompanhe as etapas de evolução do projeto:
139143- [x] ** Fase 2: Transformação** — Camada de Middleware (Chain of Responsibility).
140144- [x] ** Fase 3: Observabilidade** — Métricas atômicas e logs estruturados (` slog ` ).
141145- [x] ** Fase 4: Governança** — CI/CD, Documentação profissional e Badges.
142- - [ ] ** Fase 5: Extensibilidade** — Suporte a outros formatos (XML, Parquet).
143146
144147## Contribuindo
145148
0 commit comments