quarta-feira, 2 de julho de 2008

Código Fonte bonito

Bom, deixando as apresentações de lado, vamos ao primeiro post nerd hehehe.
Queria começar com algo bem leve, deixar a programação pesada mais pra frente.

Como você escreve seus códigos? Eu apenas vi um blog falando sobre uma parte do assunto que quero comentar aqui e foi no clientside. O post era sobre: Devo usar ponto-e-vírgula?

Em Javascript, não é necessário realmente o uso do ponto-e-vírgula e meu estilo de programar é parecido com o do Elcio neste aspecto. Eu me importo com a apresentação do código, seja lá qual for a linguagem, então além de me preocupar com a lógica do programa, na sua reutilização, na sua generalização, eu também me importo com a sua "cara".

Vou mostrar o que eu estou querendo dizer, implementando uma classe:

function Pessoa(nome, idade, sexo, profissao){
var nome = nome
var idade = idade
var sexo = sexo
var profissao = profissao

this.fala = function(fala){
if(typeof fala=="string"){
alert(fala)
}
else{
alert("O tipo de fala precisa ser uma string!!!")
}
}
}

Normal certo?

O meu jeito de codificar:

function Pessoa
(nome, idade, sexo, profissao){

var nome = nome
var idade = idade
var sexo = sexo
var profissao = profissao

this.fala = function(fala){
(typeof fala=="string") ?
alert(fala) :
alert("O tipo de fala precisa ser uma string!!!")
}
}

Faz exatamente a mesma coisa, não tem nenhum ganho de velocidade nem nada do tipo. Mas pessoalmente acho muito mais bonito dessa forma, sem chaves caso tiver apenas uma instrução, sem ponto-e-vírgulas e quando o número de parâmetros for grande, quebro a linha no prototipo da função e SEMPRE indentando.

Isso ajuda na documentação do script, ajuda aos meus olhos e ajuda a me achar no meio de um código gigantesco.

É a mesma coisa com arrays:

var lista=new Array()

lista[0]="Pera"
lista[1]="Uva"
lista[2]="Maça"
lista[3]="Salada Mista"

Forma que eu prefiro:

var lista = [
"Pera",
"Uva",
"Maça",
"Salada Mista"
]

Chamada de funções:

var Edu = new Pessoa(
"Eduardo Ottaviani",
24,
"Masculino",
"Programador"
)

Concatenação de strings:

ajax.url = (
"pagina.php?sid=" +
Math.random() +
"&query=" +
document.forms[0].elements[0].value
)


Antigamente não se usava muito essa forma de codificar, mas depois dos "callbacks" usados em algumas bibliotecas Javascript como Jquery, onde você muitas vezes precisa passar uma função como argumento, essa maneira começou a ficar mais comum.
Fica horrível fazer a chamada de uma função passando vários argumentos numa linha só!!!

Eu gosto de generalizar os códigos para que fiquem úteis em outras aplicações, geralmente antes de fazer um function eu já planejo onde eu posso usar aquilo mais tarde. Nessas, às vezes é necessário usar 1 ou 2 argumentos a mais na função, então sempre utilizo a forma mais "bonita" de codificar.

Enfim, é a maneira que eu sinto mais confortável, então não estranhe porque a partir deste post, todos os outros terão esse mesmo padrão de codificação.

Um abraço.

Um comentário:

Unknown disse...

Ola

Primeiro parabéns pelo blog.

Ja adicionei aos favoritos, agora so falta você se animar e postar mais... hehehehe


Nao tem alguma funçao em Java Script para fazer o seguinte, se uma imagem nao existir carregar uma outra ? Estou procurando a tempo e nao achei, ate tinha desistido de procurar, talvez você me de uma luz.

meu msn é digital_scARROBAhotmail.com so subistitui o arroba por @ q fica certinho.

Grato e parabens

Quem sou eu

São Paulo, São Paulo, Brazil
Sou estudante de Ciência da Computação e acabei virando nerd por acidente. Em meados de 1998/1999 meu interesse era mais jogar futebol, odiava computador. Mas eu acho que caí algum dia no treino e bati a cabeça... tsc tsc. Pior para o mundo do futebol...