Busca

fim de expediente

by rafa soares

Tag

dicas

purtugueis di purtugal

As discrepâncias entre o português brasileiro e o português de Portugal não são nenhuma novidade, mas ainda assim são engraçadas e, às vezes, interessantes.

Hoje li uma notícia que dizia o seguinte:

Fazer uma viagem no troço Porto-Amarante da A4 saindo em todas as portagens fica mais barato do que realizar o percurso de forma directa, noticia o Jornal de Notícias.

Troço? Não é uma palavra que eu esperaria ler numa notícia, mas tendo em mente as diferenças , fui pesquisar.

Resultado:

Definitions of troço on the Web in Portuguese:

Tudo a ver! Mas o pior é que eu ainda não entendi muito bem “dica” do jornal… Mas e daí?! Não pretendo dirigir pelas estradas portuguesas tão cedo! (nem qualquer uma fora de São Paulo 😛 )

E por que diabos eu estava lendo uma notícia lusa? Culpa dele

da série ‘pesadelos do desevolvedor alheio’: chainability

Título confuso? Deixe-me explicar:

Sabe aquele código que você faz que é lindo, perfeito, funcional e limpo, mas que só você entende (pelo menos de primeira). Não que o código seja mal-feito. Simplesmente é confuso para quem não tem a mesma linha de raciocínio que você. Por isso, pesadelo do desenvolvedor alheio.

Título explicado, vamos lá…

Episódio de hoje:

Chainability

Em primeiro lugar, o que é esse bicho de nome feio? É capacidade de, digamos, “acorrentar” o código, criando uma cadeia de comandos na mesma tacada.

Exemplo prático:

// Codigo comum
var texto = document.formulario.textbox.value;
texto = texto.replace( 'A', 'a' );
texto = texto.replace( 'abc', 'nonono' );

// Usando uma "corrente" de comandos
var texto = document.formulario.textbox.value.replace( 'A', 'a' ).replace( 'abc', 'nonono' );

Os dois códigos produzem o mesmo resultado, mas o 2º, para um desenvolvedor que não está acostumado, pode ficar confuso.

Mas qual o fundamento da chainability (traduzindo literalmente, “habilidade de acorrentar”)? É simples, eu tenho um método ou propriedade que retorna um valor, logo posso chamar qualquer método ou propriedade que pertenca ao tipo do valor em questão. No exemplo, value é do tipo string. Eu chamo o método “replace” que retorna outra string. E assim vai.

Os frameworks de javascript, como jQuery e Prototype, se vangloriam dessa capacidade que, na verdade, é nativa a várias linguagens. (já comprovei no JS e no C#).

Realmente a prática economiza várias linhas de código. (duas, no meu exemplo trivial)

Mas quando usá-la, questione-se como vai se sentir o desenvolvedor alheio. 😉

Acima ↑