17-01-2023
Código Javascript Limpo - 2 de 5 - Parte 1
2. CARACTERÍSTICAS DE FUNÇÕES
Continuação do Tema "Código Javascript Limpo" iniciado no passado dia 04 de Janeiro de 2023.
NÚMERO DE PARÂMETROS
As funções ou métodos são um conjunto de instruções que executam uma tarefa ou calculam um valor e deve ser simples para o programador identificar facilmente a razão da sua existência. Chamar e interagir com funções deve ser simples e o número de parâmetros passado por argumento deve ser reduzido (um dois no máximo).
Maus exemplos:
const savePerson = (id, firstName, lastName, age, gender) => { //(...) return id; }; savePerson (11111, 'Nuno', 'Matos', 20, 'Masculino');
Bons exemplos:
const savePerson = (...args) => { [id, firstName, lastName, age, gender] = args; //(...) return id; }; savePerson (11111, 'Nuno', 'Matos', 20, 'Masculino');
ou
const savePerson = ({ id, firstName, lastName, age, gender }) => { //(...) return id; }; const person = {id: 11111, firstName: "Nuno", lastName: "Matos", age: "20", gender: "Masculino"}; savePerson(person);
Explicações:
No primeiro (mau) exemplo temos a chamada a uma função, como os programadores chamavam há um bom par de anos, mas este tipo de chamada implica que tenhamos de enviar por argumento uma série de parâmetros que neste caso dizem respeito a uma única pessoa, isto é, se as características dessa pessoa aumentasse, implicaria que se criasse mais uma variável e enviássemos mais uma por argumento para a função. Se fossem uma ou duas variáveis até poderia não ser confuso, mas não neste caso, já estamos a enviar cinco parâmetros por argumento o que é bastante exagerado.
Simplificando esta opção, podemos usar o rest parameter, trazido pelo ES6, que coloca os restantes (neste caso todos) valores numa matriz.
A outra opção é enviarmos os dados como um objeto ficando as características agrupadas numa única variável.
Qualquer uma destas opções, mesmo a identificada como mau exemplo, retornará o mesmo resultado, isto é, o id da pessoa com o valor 11111.
Artigos Relacionados:
RELACIONADAS