Cloud Code Functions
Back4Appでのクラウドコード複雑性レポート生成方法
9 分
クラウドコードの複雑さを示すレポートの作成方法 はじめに このセクションでは、 plato を使用して、クラウドコードのコード複雑性レポートを生成する方法を学びます。 クラウドコードは設計段階から効率的でなければなりません。何度も呼び出されるため、わずかにパフォーマンスが悪いと大きな問題となり、プロダクション環境に悪影響を及ぼす可能性があります。 効率的にクラウドコードを設計する時間をかければ、より小さなサーバーを使用してより多くのリクエストに応えることができ、時間の経過とともに大きなコスト削減につながります。 一方で、設計が不十分なクラウドコードは、より大きく高価なマシンでしかスケールアップできず、これにも限界があります。この状況は、コードの書き直しや時間の経過とともにさらなる支出の必要性につながる可能性があります。 テストを行い、負荷テストを実施し、コードの複雑さに関するレポートを常に確認するために、時間をかけてください。 前提条件 このチュートリアルを完了するには、以下が必要です: ユニットテストを適用するためにnode jsがインストールされたローカル環境。ターミナルでnode jsを正常にインストールするには、 公式nodejsチュートリアル を参照してください。 back4appで作成されたアプリ。 back4appでアプリを作成する方法を学ぶには、 新しいアプリを作成するチュートリアル を参照してください。 プロジェクトに設定されたback4appコマンドライン。 プロジェクトのためにクラウドコードを設定する方法を学ぶには、 クラウドコードの設定チュートリアル を参照してください。 まず、プラトンについて話す必要があります 私たちは通常、大きな問題を小さく、対処しやすい問題に分解する小さな関数のセットを作成することから開発を始めます。 このアプローチは通常問題なく、これらの初期の小さな関数は時間とともに成長し、より複雑な操作を行い、より多くのデータを扱うようになります。 アプリケーション内のデータが増えるにつれて、ループや再帰呼び出しなどの計算集約的なタスクがますます呼び出され、アプリケーションが遅くなる傾向があります。深刻な場合には、アプリケーションが完全にフリーズすることさえあります。 ここで、 プラトン https //www npmjs com/package/plato が登場します。 plato https //www npmjs com/package/plato は、アプリケーションがどれほど複雑になっているか、そしてプロセスを潜在的に高速化するために修正すべき場所を示すレポートを生成するjavascriptソースコードの可視化、静的分析、複雑性ツールです。 1 platoのインストール もしあなたのシステムに nodejs https //nodejs org/en/download/package manager/ と npm https //www npmjs com/ がインストールされているなら、 plato https //www npmjs com/package/plato のインストールは、次のコマンドを入力するだけで簡単に行えます。 もしインストールしていない場合は、先にそれらをインストールしてください。 2 platoの実行 インストール後の plato https //www npmjs com/package/plato の実行は、cloud codeがあるディレクトリから次のコマンドを入力することです。 オプションの意味は次の通りです r 再帰的、つまりディレクトリやサブディレクトリに入ってファイルを探します d myreportfolder (出力) ディレクトリ。platoは myreportfolder myreportfolder という名前のディレクトリを作成し、結果を保存します t “my report for this app” タイトル。platoはこのレポートに my report for this app my report for this app という名前を付けます。これは、時間の経過とともに複数のレポートを作成し、追跡するのに便利です x json jsonファイルを除外します。platoにファイルタイプを無視させることで、より速く実行できます js 拡張子が js のものを評価するために探します 3 結果を取得する 上記のコマンドで作成された myreportfolder myreportfolder の中に、レポートを含む index html index html というファイルがあります。そのファイルをブラウザで開くと、次のようなものが表示されます 私の場合、 main js main js という名前のファイルしかありませんでしたが、コードによってはもっと多くのファイルがあるかもしれません。 files files セクションまでスクロールし、開きたいファイル名(私の場合はmain js)をクリックします。これにより、そのファイルのレポートが開きます 保守性は0から100の間の値で、コードの保守の相対的な容易さを表します。高い値はより良い保守性を意味します。 難易度測定は、プログラムを書くことや理解することの難しさに関連しています。 推定エラーは、halsteadの提供するバグの数で、実装におけるエラーの数の推定です。 関数の重みには2つの指標があります 複雑さによるもの この指標は、コードのブロックを通る異なるパスの数をカウントします。値が低いほど良いです。 slocによるもの ソースコード行数 / 論理行数 今、下にスクロールして、提案されたアラートと可能な修正を確認できます 私の場合、次のことを示しています アロー関数構文 (=>) は es6 でのみ利用可能です ( 'esversion 6' を使用) アロー関数構文 (=>) は es6 でのみ利用可能です ( 'esversion 6' を使用) , これは問題ではありません。 しかし、その関数に非常に非効率的なコードを追加して再評価しましょう 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} そして結果を評価します ご覧の通り、この関数の複雑さは 4 であり、問題ありません。得られる数が大きくなるほど、関数はより複雑になり、効率的であることを確認する必要があります。 plato https //www npmjs com/package/plato は、セミコロンの欠落やその他の潜在的な javascript エラーについても警告します。 結論 コードの複雑さをチェックし、クラウドコードをできるだけ速く、効率的に再作成するためのツールとして plato https //www npmjs com/package/plato を持つことは、時間の経過とともに大きな節約につながる可能性があります。 あなたとすべての開発者は、このステップまたはそれに類似したものを開発プロセスに含めて、リクエストを処理する際に最大の効果を得ることを確認するべきです。