Sugestões de um programador


[Home] [Dissertação] [Biba] [Linux] [Conjugue] [br.ispell] [axw3] [uplink]

Seguem algumas sugestoes de programacao C e outras sobre
programacao em geral que eu fui acumulando com o tempo e talvez
sejam uteis a voce.

* E' importante usar, ao menos durante o desenvolvimento, algum
compilador C ANSI, que suporta prototipos e, portanto, permite
consistencia de tipos em tempo de compilacao. O cc das estacoes
Unix em geral nao e' C ANSI, mas o gcc e'. Se voce trabalhar em
estacoes Unix em que o gcc nao estiver instalado, sugiro
fortemente instala'-lo ou pedir para alguem instalar.

* Para voce economizar tempo, e' fundamental conhecer as
ferramentas de desenvolvimento do ambiente em que voce trabalha.
Voce perdera' algumas horas aprendendo a utiliza'-las, mas
podera' economizar semanas de tempo de desenvolvimento. Em
estacoes Unix essas ferramentas sao principalmente o make e os
debugadores disponiveis, como o dbx e o gdb, que via de regra nao
sao usados diretamente, mas atraves de alguma interface de alto
nivel como o xgdb ou o editor Emacs.

* A linguagem C nao faz consistencias de indices de forma
automatica, e e' praticamente impossivel conseguir incluir essas
consistencias de forma explicita no codigo, mas, com uma boa
modularizacao, consegue-se consistir ao menos os indices
associados `as estruturas de dados principais do programa, que
nao devem ser manipuladas diretamente, mas atraves de uma
interface de funcoes, sendo que cada uma dessas funcoes, na sua
entrada, consiste cuidadosamente todos os argumentos para evitar
danificar a estrutura.

* Sobre apontadores, apesar de haver uma infinidade de erros
possiveis, os mais frequentes nao sao muitos e, com a pratica,
pode-se localizar rapidamente a maior parte deles sabendo de
antemao quais eles costumam ser. A funcao scanf com grande
frequencia protagoniza erros envolvendo pointers. Escrever
'scanf("%d",x)' ao inves de 'scanf("%d",&x)' nao e' raro e as
consequencias costumam ser desastrosas. Tambem sao comuns erros
envolvendo apontadores de strings nao inicializados.

* Nao e' possivel em C deixar de usar apontadores, por isso, no
caso de se ter muita dificuldade com eles, o maximo que se pode
fazer e' limitar o seu uso. Isso significa, mais ou menos,
usa'-los apenas quando houver necessidade de se fazer passagem de
parametros por referencia. Lembre-se que a passagem por
referencia e' inevitavel quando o parametro e' um vetor ou uma
estrutura.

* Em geral nao e' uma boa ideia gastar mais do que quinze ou
vinte minutos tentando encontrar o erro de um programa. Se passar
esse tempo e nao conseguirmos encontra'-lo, costuma ser uma boa
estrategia passar a fazer outras coisas e retomar o problema dali
a algumas horas ou no dia seguinte. Nao raras vezes conseguimos
resolve-lo com muito mais facilidade ao retoma'-lo.