• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Bruno

[Geral] Variáveis - Conceito de Expanção e Tempo de Vida

4 mensagens neste tópico

Gostava de saber as vossas opiniões sobre o seguinte artigo q escrevi:

Na programação é muito comum o uso de variaveis no entanto não é normal as pessoas preocuparem-se com a extensão e tempo de vida da mesma!

extensão e tempo de vida são as palavras que encontrei para traduzir "SPAN" e "LIFE TIME"!

A extensão de uma variavel pode ser medida através do numero de linhas desde a sua ultima utilização até a uma nova utilização...

1: int a;
2: int b;
3: a = 3;
4: int c;
5: c = a * 2;
6: c = a + c;
7: b = c;

Neste exemplo a variavel "a" é definida na linha 1 e é usada na linha 3 e na linha 6! A sua 1ª extensão é de 1 linha (declarada na 1 usada na 3). Ja a 2ª extensão é de 2 linhas... o que faz uma media da extensão da variavel "a" de 1,5 linhas! (valores destes sao aceitaveis)

Vejemos agora o caso do "c"... da declaração para a sua primeira utilização não existe nenhuma linha! O mesmo acontece entre a linha 5 e 6! Diz-se que a variavel "c" tem uma extensão de 0 linhas! (ideal)

No caso do b... existe uma extensão de 4 linhas totalmente desnecessária!

Portanto ajustando o programa:

1: int a = 3;
2: int c = a * 2;
3: c = a + c;
4: int b = c;

Torna-o mais legivel e com uma extensão inferior! :D

O que podemos concluir disto é que as variaveis devem ser inicializadas na sua declaração e além disso, devem ser declaradas perto da sua primeira utilização!

O tempo de vida de uma variavel pode ser medido pelo numero de linhas que vão desde a sua declaração até à sua ultima utilização!

1: int a=1;
2: int b;
....
6: a++;
...
11: a = b;
...
16: a++;

Neste exemplo temos uma extensão de "a" de 4 linhas por 3 vezes e porem o seu tempo de vida é de 15 linhas! Portanto, embora a extensão tenha que ser mais pequena que o tempo de vida não há nenhuma outra relação entre as duas!

Diminuir o tempo de vida de uma variavel trás algumas vantagens como: para quem está a ler o codigo não precisa de andar a fazer scroll para cima e para baixo a ver os valores que a variavel tinha antes; o facto de a usar ao longo de muitas linhas pode ser um indicio de que a variavel está a ser usada para muitas coisas.

Uma variavel deve ser usada com um unico propósito. O reaproveitamento de variaveis aumenta o tempo de vida e a sua extensão tal como torna pouco explicito qual o seu objectivo, isto é:

int bolas = 20;
int bonecas = 4;
int miudos = 5;
int miudas = 2;
int temp;

temp = bolas + bonecos;
...

temp = miudos + miudas;
...

N seria mais legivel se fosse antes:

int bolas = 20;
int bonecas = 4;
int miudos = 5;
int miudas = 2;

int numBrinquedos = bolas + bonecas;
...

int numPop = miudos + miudas;
...

Portanto as variáveis devem ser criadas com um unico fim!

Dito isto é perceptivel porque não se aconselha a usarem variaveis globais (teriam uma extensão e um tempo de vida enormes).

Variaveis locais existem para serem usadas! :)

for(int i = 0; i < MAX_STRING; i++) {
...
}

Uma variavel declarada assim "morre" após o ciclo! (algumas linguagens não permitem este tipo de "técnicas")

Em média uma variavel não deve ter mais que 6 linhas de extensão nem mais de 20 de "vida". :P

----

Baseado no Code Complete, um livro muito conceituado nos dias de hoje.

O Code Complete tem como objectivo aperfeiçoar a performance, a qualidade e legibilidade do código desenvolvido por um programador nas várias linguas que abrange (Visual Basic, C, C++, Java, etc...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Grande artigo. Algo em que nunca tinha pensado.

É bom ver destes artigos vindos de universitários. Dá sempre para aprender bastante.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nunca tinha pensado nisso por acaso.

A minha compreensão de 10 horas da noite demorou um pouco a perceber isso :P

Mais uma maneira de serem 1337's a programar, bom post :P

Fiquem bem :D;):)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites