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.533 ]
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.SDL - Ótimo para criação de jogos
Programação com números inteiros gigantes
A mágica do polimorfismo e seus conceitos na ótica de C/C++
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Configurando o Cairo Dock individualmente em ambientes diferentes na mesma maquina
Calculadoras online gratuitas para o dia a dia do usuário Linux
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Isso acontece quando tento ajudar alguém (0)
Como instalar Warsaw no Gentoo? (8)
Governo da França vai trocar Windows por Linux (4)









