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: 638 ]
Por: trogmaiu em 25/03/2026
C e o porquê de usar ponteiros, mas a ideia é virar um design em procedural, mais especificamente em GO, e até em C, pois muito do que já é usado possui diversas formas de codificar.C
#include
void alteraValor(int x) {
x = 20; // altera apenas a cópia
}
int main() {
int numero = 10;
alteraValor(numero);
printf("Numero: %d\n", numero); // continua 10
return 0;
}
O problema:C
#include
void alteraValor(int *x) {
*x = 20; // altera o valor no endereço original
}
int main() {
int numero = 10;
alteraValor(&numero);
printf("Numero: %d\n", numero); // agora é 20
return 0;
}
O motivo:C
#includeO que acontece:int main() { int numeros[] = {10, 20, 30, 40, 50}; int *ptr = numeros; // ponteiro para o primeiro elemento for (int i = 0; i < 5; i++) { printf("Elemento %d: %d\n", i, *(ptr + i)); } return 0; }
C
#includeO que acontece:int main() { char texto[] = "Copilot"; char *p = texto; while (*p != '\0') { printf("%c ", *p); // imprime caractere atual p++; // avança para o próximo } return 0; }
C
#includeO motivo:void maiuscula(char *s) { while (*s != '\0') { if (*s >= 'a' && *s <= 'z') { *s = *s - 32; // converte para maiúscula } s++; } } int main() {
char palavra[] = "ponteiros";
maiuscula(palavra);
printf("Resultado: %s\n", palavra);
return 0;
}
GO.Alocação dinâmica de memória em C
Desenvolvendo um plugin de visualização para o XMMS (Parte 1)
Ponteiros - Saindo de Pesadelos
Nenhum comentário foi encontrado.
Boas Práticas e Padrões Idiomáticos em Go e C
Vale a pena ter mais de uma interface grafica no seu Linux?
Estrutura e Funcionamento de um Ebuild no Gentoo Linux
Usando o ble.sh (Bash Line Editor) no lugar do bash completion
Montagem pré automática de HD externo usb em NTFS não funciona no Debian Trixie - Solução
Guia de instalação do Gentoo Linux com Cinnamon (UEFI, LUKS2, Btrfs)
No Ubuntu 26.04, sudo passou a mostrar os asteriscos ao digitar por pa... (2)
Criei um app de escrita acadêmica para brasileiros! (4)









