Carta ao programador

<< Click to Display Table of Contents >>

Navigation:  Novatos >

Carta ao programador

Previous pageReturn to chapter overviewNext page

Programador,

Escrever código-fonte é como escrever um livro ou uma carta a um amigo. Não seja repetitivo

Cada "capítulo" tem seu papel - cada procedure executa uma parte da tarefa do código.
Não é porque você pode copiar e colar que vai espalhar o mesmo trecho por todo o programa.
Imagine que alguém altere um trecho e não outro. Logo será impossível dizer qual é o trecho correto.
Por outro lado, alterar a procedure é muito mais fácil e garante que ela fará o que deve ser feito.

 

DICAS para programação DELPHI...

 

Para ganhar tempo: Pressione Ctrl+Shift+R, digite uma seqüência de teclas, pressione Ctrl+Shift+R novamente - Isso gravará uma macro. Execute a macro com Ctrl+Shift+P .

 

Para criar uma procedure rapidamente, digite a palavra "procedure" mais o nome da procedure, na área private, public ou protected da declaração do form. Depois pressione Ctrl+Shift+C. A implementação da procedure será gerada no corpo do código.

 

Para se deslocar da declaração para a implementação da procedure, você pode pressionar Ctrl+Shift+<seta para baixo> a qualquer momento.

 

Respeite os nomes: O que aconteceria se um locutor esportivo decidisse narrar o jogo falando apenas os números dos jogadores? Ficaria confuso, não? dar manutenção em um código onde Button5 habilita CheckBox3 e limpa Edit2 também é confuso!

 

Agora pense como você gostaria que seu nome fosse escrito por alguém que não tivesse a barra de espaços: No mínimo, você exigiria que as iniciais estivessem em maiúsculo, não é?! Por exemplo, "joaquimpereirasantos" é mais difícil de compreender que "JoaquimPereiraSantos". É o caso de "FieldByName", "ShowModal", "SetFocus", "UpperCase" etc.
 

Na dúvida, pressione Ctrl+Shift+<espaço> para ativar o Code Insight do Delphi que mostrará a maneira correta* de escrever o nome de uma propriedade ou método. * = Ao contrário do Java, por exemplo, o compilador do Delphi não é case sensitive: Se você escrever nomes do jeito "carnavalesco" (com maiusculos e/ou minusculos aleatóriamente), o compilador ainda tentará fazer algo de bom com isso.

 

Diagramação

Olhe os jornais e revistas. Repare como o texto é organizado de forma que fique agradável aos olhos.
Indentação é assunto polêmico entre programadores: Alguns acham que devem colocar um número aleatório de espaços ou quebras de linha; Outros acham que fica bonito alinhar os comandos com a palavra da linha de cima...
Basicamente, um bloco de código deve ser organizado para dar a sensação de hierarquia: o bloco do "if" e do "else" devem estar alinhados porque pertencem ao mesmo nível hierárquico.
A quantidade de blocos begin/end pode ser bem reduzida com a melhor utilização dos comandos Exit, Break e Continue.

 

Indentação

Marque um bloco e pressione Ctrl+Shift+I para colocar indentação ou Ctrl+Shift+U para retirar indentação.

 

Comentário
A coisa mais terrível na vida de um programador é pegar aquele fonte monstruoso e ver no final da procedure algumas dúzias de "end" sem saber de onde vieram.
Uma coisa legal a fazer nesse caso é comentar alguns deles dizendo qual é do "for", qual é do "with", qual é do "try"...
Comentários são como placas de sinalização para o coitado que estiver perdido na confusão do código - Placas demais, no entanto, só vão piorar a confusão.

 

Templades
No menu "Tools", "Editor Options", clique na aba "Code Insight" - Na parte central da tela haverá uma área para configurar templates de código.
Você pode definir um template para os tipos de blocos mais comuns que você usa (if, while, for, with...) e já com o comentário adequado.
Quando estiver programando, digite o atalho e pressione Ctrl+J - Assim o bloco será escrito no código sempre como foi definido - e não será necessário colocar o comentário no "end" do bloco.

 

Variáveis são suas amigas

Não seja excêntrico - seja prático: Soluções rápidas geram muita dor de cabeça.
Use sua criatividade para tornar seu programa o mais modular possível, tornando-o fácil de entender e depurar.
É aí que entram as variáveis: pegue aquele valor que se repete e coloque-o numa variável; Dê à sua variável um nome adequado ao que ela representa.

Veja um exemplo simples:

 

procedure TForm1.ExtraiDDD;

begin

  if (Pos('(',string1)>0then 

  begin

    if (Pos(')',string1)>0then 

    begin

      string1:=Copy(string1,Pos('(',string1)+1,Pos(')',string1)-Pos('(',string1)-1);

    end;

  end;

end;

 
Quantas vezes "Pos('(')" foi utilizada acima?
Seria mais prático substituí-lo pela variável "pos_abre"... E "s_mascara" seria um nome mais claro para "string1".

 
procedure TForm1.ExtraiDDD;

var

  pos_abre,pos_fecha: Integer;

begin

  pos_abre := Pos('(',s_Mascara);

  if pos_abre = 0 then

  begin

    Exit; // Nenhum parênteses encontrado

  end;

 

  pos_fecha := Pos('(',s_Mascara);

  if pos_fecha > pos_abre then

  begin

    {** Ajusta as variáveis para extrair a string entre os separadores

    (Esta verificação nem era feita antes!)**}

    Inc(pos_abre);

    s_Mascara := Copy(s_Mascara,pos_abre,pos_fecha-pos_abre);

  end;

end;

 
Melhorou?

Um grande abraço a todos e bons códigos!