Boas Práticas e Padrões Idiomáticos em Go e C
Nem sempre boas práticas são consideradas design patterns formais. Porém, quando uma técnica se torna a única forma eficaz de resolver problemas recorrentes, ela deixa de ser apenas "higiene de código" e passa a funcionar como um padrão idiomático da linguagem.
Este documento explora como structs, composição e interfaces em Go (e até em C) podem ser vistos como soluções de design aplicando esses princípios para um bom código. O texto começa explicando o uso em C de ponteiros e faz uma analogia sobre injeção de código de POO. Este documento tem por objetivo de tornar um dia um desgin para GO ou até C, QUE SÃO PROCEDURAIS. É um exemplo onde você não resolve bem uma questão sem esse principio de que se você não usar, você não resolve da melhor maneira. O documento é trabalhado nas fases seguintes com o argumento de porque usar ou não usar para justificar um design.[ Hits: 1.745 ]
Por: trogmaiu em 25/03/2026
Go (e até em C) podem ser vistos como soluções de design, aplicando princípios como SRP e OCP do SOLID.Go não possui herança clássica, mas interfaces + composição permitem polimorfismo.type Reader interface {
Read(p []byte) (n int, err error)
}
- Qualquer tipo que implemente pode ser usado como.func (l Logger) Log(msg string) {
fmt.Println(msg)
}
type Service struct {
Logger
}
func (s Service) DoWork() {
s.Log("Executando tarefa...")
}
- Service reutiliza Logger sem herança.int (*operation)(int, int);
} Strategy;
int add(int a, int b) { return a + b; }
int multiply(int a, int b) { return a * b; }
Strategy s;
s.operation = add;
printf("%d\n", s.operation(2, 3)); // 5
"Aqui, Strategy funciona como uma interface.Go não tem, e tentar simular herança com composição pode gerar confusão.A mágica do polimorfismo e seus conceitos na ótica de C/C++
Cuidado com números em Ponto Flutuante
Tratamento de exceções na linguagem C
Nenhum comentário foi encontrado.
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Discos que não instalam o sistema por erro MBR/GPT no Linux
Hospedagem de Mangás com Kavita e Docker para Acesso Remoto via Tailscale
Aplicar tema e ícones do Ubuntu Cinnamon no Arch Linux sem AUR
Enquete: qual bloco de código C++ é mais legível? (3)
Instalação do driver Epson L3150 [RESOLVIDO] (5)









