Cloud Code Functions
Rapporto complessità del codice Cloud Code con Plato
10 min
come creare un rapporto che mostri la complessità del tuo cloud code introduzione questa sezione ti insegnerà a generare un rapporto sulla complessità del codice del tuo cloud code utilizzando plato il cloud code deve essere efficiente fin dalla progettazione poiché viene chiamato molte e molte volte, una leggera perdita di prestazioni può diventare un enorme problema e influenzare negativamente il tuo ambiente di produzione se dedichi del tempo a progettare il tuo cloud code in modo efficiente, sarai in grado di gestire più richieste utilizzando server più piccoli, il che può portare a enormi risparmi nel tempo d'altra parte, un cloud code mal progettato può scalare solo su macchine più grandi e costose, che hanno anche delle limitazioni questa situazione può e probabilmente porterà alla necessità di riscrivere il codice e a maggiori spese nel tempo per favore, prenditi il tuo tempo per testare, eseguire test di carico e controllare costantemente i rapporti sulla complessità del codice requisiti per completare questo tutorial, avrai bisogno di un ambiente locale con node js installato per applicare i test unitari puoi seguire il tutorial ufficiale di nodejs per installare correttamente node js nel tuo terminale un'app creata su back4app segui il tutorial per creare una nuova app per imparare come creare un'app su back4app back4app command line configurato con il progetto segui il tutorial per impostare il cloud code per imparare come impostare il codice cloud per un progetto per prima cosa, dobbiamo parlare di plato di solito iniziamo a sviluppare creando un insieme più piccolo di funzioni che suddividono un grande problema in problemi più piccoli e più facili da affrontare questo approccio di solito va bene e queste funzioni iniziali più piccole crescono nel tempo, eseguendo operazioni più complesse e gestendo più dati man mano che i dati crescono nella tua applicazione, compiti computazionalmente intensivi come cicli e chiamate ricorsive vengono chiamati sempre di più, il che tende a rallentare l'applicazione nei casi più gravi potrebbe persino bloccare completamente l'applicazione è qui che plato https //www npmjs com/package/plato entra in gioco plato https //www npmjs com/package/plato è uno strumento di visualizzazione del codice sorgente javascript, analisi statica e complessità che genera report mostrando quanto complessa sta diventando la tua applicazione e dove intervenire per potenzialmente velocizzare i processi 1 installazione di plato se hai nodejs https //nodejs org/en/download/package manager/ e npm https //www npmjs com/ installati nel tuo sistema, installare plato https //www npmjs com/package/plato è facile come digitare se non lo hai fatto, ti preghiamo di installarli prima di procedere 2 eseguire plato eseguire plato https //www npmjs com/package/plato dopo l'installazione consiste nel digitare il seguente comando dalla directory in cui si trova il tuo cloud code le opzioni significano r ricorsivo, il che significa che entrerà nelle directory e nelle sottodirectory alla ricerca di file d myreportfolder (output) directory plato creerà una directory chiamata myreportfolder myreportfolder dove memorizzerà i suoi risultati t “my report for this app” titolo plato chiamerà questo rapporto my report for this app my report for this app questo è utile per creare più rapporti nel tempo e tenere traccia x json escludi i file json puoi dire a plato di ignorare i tipi di file in modo che funzioni più velocemente js cerca qualsiasi cosa con l'estensione js da valutare 3 ottenere risultati nella myreportfolder myreportfolder creata dal comando sopra, troverai un index html index html contenente il rapporto apri quel file in un browser e troverai qualcosa di simile a questo nel mio caso, avevo solo un file chiamato main js main js , ma a seconda del tuo codice, puoi avere più file scorri verso il basso fino alla files files sezione e fai clic sul nome del file che desideri aprire (main js nel mio caso) questo aprirà il rapporto per quel file la manutenibilità è un valore compreso tra 0 e 100 che rappresenta la relativa facilità di mantenere il codice un valore alto significa una migliore manutenibilità la misura della difficoltà è correlata alla difficoltà del programma da scrivere o comprendere gli errori stimati sono i bug consegnati da halstead e sono una stima del numero di errori nell'implementazione il peso della funzione ha due metriche per complessità questa metrica conta il numero di percorsi distinti attraverso un blocco di codice valori più bassi sono migliori per sloc linee di codice sorgente / linee logiche di codice ora puoi scorrere verso il basso e vedere gli avvisi e le possibili correzioni che vengono suggerite nel mio caso, è indicativo che la sintassi della funzione freccia (=>)' è disponibile solo in es6 (usa 'esversion 6') la sintassi della funzione freccia (=>)' è disponibile solo in es6 (usa 'esversion 6') , il che non è un problema ma aggiungiamo un codice molto inefficiente a quella funzione e rivalutiamo 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 valuta il risultato come possiamo vedere, la complessità di questa funzione è 4, il che va bene maggiore è il numero che ottieni, più complessa è la funzione e più dovresti assicurarti che sia efficiente plato https //www npmjs com/package/plato ti avviserà anche di punti e virgola mancanti e altri potenziali errori di javascript conclusione avere uno strumento come plato https //www npmjs com/package/plato che controlla la complessità del tuo codice e rielabora continuamente il codice cloud per essere il più veloce e efficiente possibile può portare a enormi risparmi nel tempo tu e tutti gli sviluppatori dovreste includere questo passaggio o qualcosa di simile nel vostro processo di sviluppo per assicurarvi di ottenere il massimo dal vostro investimento nel servire richieste