Cloud Code Functions
Relatórios de Complexidade de Código com Plato para Desenvolvedores
10 min
como criar um relatório mostrando a complexidade do seu código em nuvem introdução esta seção irá ensiná lo a gerar um relatório de complexidade de código do seu código em nuvem usando plato o código em nuvem deve ser eficiente desde o design como é chamado muitas e muitas vezes, um desempenho ligeiramente pior pode se tornar um grande problema e afetar negativamente seu ambiente de produção se você dedicar seu tempo para projetar seu código em nuvem de forma eficiente, conseguirá atender mais solicitações usando servidores menores, o que pode levar a enormes economias ao longo do tempo por outro lado, um código em nuvem mal projetado só pode escalar em máquinas maiores e mais caras, que também têm limitações essa situação pode e provavelmente levará à necessidade de reescrever o código e a mais gastos ao longo do tempo por favor, leve seu tempo para testar, realizar testes de carga e verificar constantemente os relatórios sobre a complexidade do código pré requisitos para completar este tutorial, você precisará um ambiente local com node js instalado para aplicar testes unitários você pode seguir o tutorial oficial do nodejs para instalar com sucesso o node js no seu terminal um aplicativo criado no back4app siga o tutorial de criar novo app para aprender como criar um aplicativo no back4app back4app command line configurado com o projeto siga o tutorial de configuração do cloud code para aprender como configurar o código em nuvem para um projeto primeiro, precisamos falar sobre o plato normalmente começamos a desenvolver criando um conjunto menor de funções que dividem um grande problema em partes menores e mais fáceis de resolver essa abordagem geralmente é boa e essas funções iniciais menores crescem ao longo do tempo, realizando operações mais complexas e lidando com mais dados à medida que os dados crescem em sua aplicação, tarefas computacionais intensivas, como loops e chamadas recursivas, são chamadas cada vez mais, o que tende a desacelerar a aplicação em casos severos, pode até congelar completamente a aplicação é aqui que plato https //www npmjs com/package/plato entra plato https //www npmjs com/package/plato é uma ferramenta de visualização de código fonte javascript, análise estática e complexidade que gera relatórios mostrando quão complexa sua aplicação está se tornando e onde abordar correções para potencialmente acelerar processos 1 instalando o plato se você tem nodejs https //nodejs org/en/download/package manager/ e npm https //www npmjs com/ instalados em seu sistema, instalar plato https //www npmjs com/package/plato é tão fácil quanto digitar se você não tiver, por favor, instale os antes de prosseguir 2 executando o plato executar plato https //www npmjs com/package/plato após a instalação consiste em digitar o seguinte comando a partir do diretório onde seu código em nuvem está as opções significam r recursivo, o que significa que irá para diretórios e subdiretórios em busca de arquivos d myreportfolder (saída) diretório plato criará um diretório chamado myreportfolder myreportfolder onde armazenará seus resultados t “meu relatório para este app” título plato nomeará este relatório meu relatório para este app meu relatório para este app isso é útil para criar múltiplos relatórios ao longo do tempo e manter o controle x json excluir arquivos json você pode dizer ao plato para ignorar tipos de arquivos para que ele funcione mais rápido js procure por qualquer coisa com a extensão js para ser avaliada 3 obtendo resultados no myreportfolder myreportfolder criado pelo comando acima, você encontrará um index html index html contendo o relatório abra esse arquivo em um navegador e você encontrará algo como isto no meu caso, eu só tinha um arquivo chamado main js main js , mas dependendo do seu código, você pode ter mais arquivos role para baixo até a seção arquivos arquivos e clique no nome do arquivo que você deseja abrir (main js no meu caso) isso abrirá o relatório para aquele arquivo a manutenibilidade é um valor entre 0 e 100 que representa a facilidade relativa de manter o código um valor alto significa melhor manutenibilidade a medida de dificuldade está relacionada à dificuldade do programa para escrever ou entender erros estimados é o número de bugs entregues de halstead, que é uma estimativa para o número de erros na implementação o peso da função tem duas métricas por complexidade esta métrica conta o número de caminhos distintos através de um bloco de código valores mais baixos são melhores por sloc linhas de código fonte / linhas lógicas de código agora você pode rolar para baixo e ver os alertas e possíveis correções que são sugeridas no meu caso, está dizendo que a sintaxe da função de seta (=>)' está disponível apenas no es6 (use 'esversion 6') a sintaxe da função de seta (=>)' está disponível apenas no es6 (use 'esversion 6') , o que não é um problema mas vamos adicionar um código muito ineficiente a essa função e reavaliar 1function getsquarerootof(numberone, numbertwo, numberthree){ 2 var finalresult; 3 4 var i = 0; 5 var j = 0; 6 var k = 0; 7 8 for (i = 0; i < 100; i ++){ 9 for (j = 0; j < 100; i ++){ 10 for (k = 0; k < 100; k++){ 11 var resultone = getsquarerootof(numberone); 12 var resulttwo = getsquarerootof(numbertwo); 13 var resultthree = getsquarerootof(numberthree); 14 finalresult = resultone + resulttwo + resultthree; 15 } 16 } 17 } 18} e avalie o resultado como podemos ver, a complexidade dessa função é 4, o que é aceitável quanto maior o número que você obtiver, mais complexa a função é e mais você deve garantir que ela seja eficiente plato https //www npmjs com/package/plato também irá alertá lo sobre ponto e vírgula ausentes e outros erros potenciais de javascript conclusão ter uma ferramenta como plato https //www npmjs com/package/plato verificando a complexidade do seu código e continuamente reestruturando o código em nuvem para ser o mais rápido e eficiente possível pode levar a enormes economias ao longo do tempo você e todos os desenvolvedores devem incluir essa etapa ou algo semelhante em seu processo de desenvolvimento para garantir que você obtenha o máximo retorno sobre seu investimento ao atender solicitações