[Desenvolvimento] Proficiência através do código
Como falado lá no outro artigo, pelo seu estilo de codar, conseguimos ter alguns parâmetros do seu conhecimento de tal tecnologia. Eu sei que a linguagem é apenas uma ferramenta e tudo que tem nela é possível fazer em outra, porém uma linguagem de programação não carrega apenas sua sintaxe, mas sim todo um universo de ferramentas, paradigmas e utilizações mais específicas (geralmente pensando no porquê ela foi criada).
Todo mundo tem sua linguagem que é a "escolhida", a que quando você vê um problema é a que você pensa em como solucionar. Geralmente é nela em que você vai dominar os mais variados métodos mágicos que já vem built-in e muito provavelmente seu código vai demonstrar isso trazendo elegância e simplicidade. Por exemplo:
Vamos pensar no amigão que destrói em .Net, 95% do tempo ele coda em C# e sabe todas coisinhas mágicas que a Microsoft adora adicionar na linguagem, mas de vez em quando ele faz umas coisinhas no front com asp e um jQuery maneiro, logo ele também sabe JS. Aí aparece um projeto em Nodejs e chamam ele, então ele cria um objeto lindo assim:
var obj = {
property: 'gente',
method: function() {
return 'Eae ' + this.property;
},
};
E aí, sabe me dizer o que tem de errado nesse código? NADA! Mas você que destrói em JS, sabe que a gente consegue fazer uma sintaxe bem mais "sugar" ou até mesmo ir por outra pegada para ter uma usabilidade melhor no futuro, como criar uma classe.
Esse código fala bastante sobre a pessoa que o escreveu, como o paradigma, o raciocínio e a profundidade na linguagem (mais ou menos né, sem generalizar). Vamos ver outro exemplo, agora o cara que "manja" JS.
const isOk = !!~array.indexOf(algo);
O que tem de errado nesse código? Nada? Bem, eu acho que tem um erro gravíssimo aí. Ele funciona como esperado, mas vamos ler e entender o que acontece aí, temos um array e ele está salvando em uma variável se tal valor (algo) existe nesse array, mas o que é esse til (~) mesmo e qual é dessas exclamações?
Um bom código é aquele que conta uma história para você, um código que qualquer pessoa consiga ler e entender o que está acontecendo e seu propósito. O til (~) é um operador binário (Bitwise Not operator, inverte todos os bits) que nesse caso ele está convertendo todos números positivos para negativo, onde a negação dupla do JS transforma em true no caso (dá uma olhada aqui em valores Truthy e Falsy) e os -1 do indexOf para false, mas claramente isso é uma coisa muito específica das coisinhas malucas que JS faz (o til (~) com essa mesma funcionalidade existe em outras linguagens, mas não faço idéia se é em todas ou até mesmo que qualquer um que olhar meu código vai saber disso, até porque fazer operações binárias não é algo que você vê todo dia) e sabemos muito bem que valores Truthy e Falsy é bem JS isso.
O método indexOf como o próprio nome já diz, é para pegar o index de um determinado item em um array, não apenas saber se ele está lá. Além disso, usar algo que provavelmente a galera não conhece, não faz você parecer melhor, pelo contrário, você pode estar colocando uma bomba aí para quem for fazer a manutenção em um futuro. "Um bom código é aquele que conta uma história para você" (isso, repeti mais uma vez para ficar bem claro), pois é, vamos deixar isso mais bonito então.
const isOk = array.includes(algo);
Pois é, auto explicativo. Essa linha já explicou o artigo todo, complexidade não lhe faz parecer melhor, só deixa o trampo mais difícil. Códigos no geral demonstram a proficiência da pessoa na tecnologia escolhida, pois dá a noção de o quão próximo a pessoa está com a tecnologia, pois esses exemplos mostrados são extremamente comuns em bases legadas (antes do ES6 principalmente) e se alguém ainda coda assim mesmo com TS, Babel e etc, mostra o acompanhamento não faz parte do cotidiano. Fica a reflexão, paz!