Unixtopia

main/ artigos/

Estilo de programação SMR ou formatação de código

Na maioria dos casos, uma linguagem de programação permite que o programador escolha o estilo estético no qual escrever o código, assim como um escritor pode formatar seu texto de maneiras visualmente diferentes sem alterar o significado dele, tem-se a opção de nomear variáveis, recuar e alinhar comandos, inserir comentários e assim por diante. Isso dá origem a vários estilos, um programador terá seu próprio estilo preferido, como uma caligrafia, mas uma vez que ele trabalha em uma equipe, algum compromisso tem que ser encontrado ao qual todos devem se conformar para manter o código agradável, consistente e legível por todos. Alguns projetos, como Linux, desenvolveram estilos bons, testados e de fato padronizados, em vez de inventar um estilo personalizado, o que pode não ser tão fácil quanto parece, pode-se escolher adotar alguns dos estilos existentes. Embora isso seja mais uma parte superficial da programação, ainda é muito importante e pensar sobre isso pode ser muito profundo, não deve ser subestimado. Existem formatadores automáticos de código, eles são frequentemente chamados de embelezadores de código. Mas nem tudo pode ser automatizado, um programa dificilmente comentará seu código, ou inserir espaços vazios para separar partes logicamente relacionadas de um código sequencial também é algo para o qual é necessária inteligência humana.

Estilo de programação e formatação SMR C recomendado

Propomos um estilo de programação e formatação de código C que pode usar em seus programas. É um estilo que eu pessoalmente adotei e ajustei ao longo de muitos anos de minha programação. Lembre-se de que nada é definitivo, exceto que você não deve usar tabulações, o mais importante geralmente é ser consistente em um único projeto e realmente pensar sobre o porquê de você estar fazendo as coisas do jeito que está fazendo. Manter o padrão definido aqui lhe dará vantagens como maior legibilidade para outros já familiarizados com o mesmo estilo e evitar cair em armadilhas definidas por decisões míopes em relação a identificadores. Tente pensar do ponto de vista de um programador que obtém apenas seu source-code sem nenhuma maneira de se comunicar com você, torne a vida dele o mais fácil possível. Suponha também que ele esteja lendo seu código em uma calculadora.

if (a == b)
{
  doSomething();
  doSomething2();
}
else
{
  doSomethingElse();
  doSomethingElse2();
}
Identificadores e nomes:
void doSomethingCool(int a, int b, int c)
{
// ...
}

Switch sempre deve ter o rótulo padrão. As instruções podem ser formatadas:

switch (myVariable)
{
case 0:
doSomething();
break;

case 1:
doSomethingElse();
break;

case 2:
{
int a = x + y;
doSomethingCool(a);
break;
}

default:
break;
}

// ou mesmo, dependendo do tamanho das seções:

switch (myVariable2)
{
case 0: doSomething1(); break;
case 1: doSomething2(); break;
case 2: doSomething3(); break;
case 3: doSomething4(); break;
default: break;
}
int a = x;
char b = y;
double q;

doSomething(a);

c += 3 * a;
d -= b;

if (c < d)
a = b;