Skip to content

Instantly share code, notes, and snippets.

@marcelgsantos
Created April 5, 2018 00:09
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save marcelgsantos/78837adf48491a05e42f0fee1530d650 to your computer and use it in GitHub Desktop.
Save marcelgsantos/78837adf48491a05e42f0fee1530d650 to your computer and use it in GitHub Desktop.
  • Existem diversas discussões sobre qual deve ser o tamanho de uma função.
  • Mas algo mais importante é se perguntar: "Quando devemos envolver um código na sua própria função?"
  • Algumas pessoas se guiam por:
    • tamanho - uma função não deve ser tão grande que não caiba na tela
    • reuso - qualquer código utilizado mais de uma vez deve ser colocado em uma função, caso contrário, deve ser deixado inline
  • Uma abordagem interessante é separação entre intenção e implementação.
  • Se você tiver que se esforçar ao olhar um fragmento de código para entender o que ele faz, o código deve ser extraído para um função e a função nomeada.
  • Quando você ler o código novamente, o propósito da função ficará explícito sem a necessidade de entender o seu funcionamento internamente.
  • Ao utilizar esta abordagem, adquire-se o hábito de criar funções curtas com pouquíssimas linhas ou, até mesmo, com apenas uma linha.
  • Não devemos nos preocupar com funções curtas em relação ao desempenho pois, atualmente, compiladores podem tirar vantagem disso ao realizar o cache de funções.
  • Pode-se utilizar uma função com um nome revelador da intenção como isEmpty, por exemplo, para um código como myList.length == 0.
  • Utilizar funções pequenas funcionam somente se forem utilizados bons nomes e, por isso, deve-se prestar bastante atenção ao nomear funções.
  • A utilização dessa prática torna o código auto-documentável e funções maiores podem ser lidas como uma estória.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment