Cloud Code Functions

Menganalisis Kompleksitas Kode Cloud dengan Plato Di Back4App

10min

Cara Membuat Laporan yang Menunjukkan Kompleksitas Kode Cloud Anda

Pendahuluan

Bagian ini akan mengajarkan Anda untuk menghasilkan laporan Kompleksitas Kode dari Kode Cloud Anda menggunakan Plato.

Kode Cloud harus efisien dari desain. Karena dipanggil berkali-kali, sedikit penurunan kinerja dapat menjadi masalah besar dan berdampak buruk pada lingkungan produksi Anda.

Jika Anda meluangkan waktu untuk merancang kode cloud Anda dengan efisien, Anda akan dapat melayani lebih banyak permintaan menggunakan server yang lebih kecil, yang dapat mengarah pada penghematan besar seiring waktu. Di sisi lain, kode cloud yang dirancang dengan buruk hanya dapat ditingkatkan pada mesin yang lebih besar dan lebih mahal, yang juga memiliki batasan. Situasi ini dapat dan mungkin akan mengarah pada kebutuhan untuk menulis ulang kode dan pengeluaran lebih banyak seiring waktu.

Silakan luangkan waktu Anda untuk menguji, menguji beban, dan terus memeriksa laporan tentang kompleksitas kode.

Prasyarat

  • Untuk menyelesaikan tutorial ini, Anda akan membutuhkan:
  • Lingkungan lokal dengan Node.js terinstal untuk menerapkan pengujian unit. Anda dapat mengikuti tutorial resmi NodeJS untuk berhasil menginstal Node.js di terminal Anda.
  • Sebuah aplikasi yang dibuat di Back4App.
  • Ikuti tutorial Membuat Aplikasi Baru untuk belajar cara membuat aplikasi di Back4App.
  • Back4App Command Line yang dikonfigurasi dengan proyek.
  • Ikuti tutorial Menyiapkan Cloud Code untuk belajar cara menyiapkan cloud code untuk proyek.

Pertama-tama, kita perlu membicarakan Plato

Kami biasanya mulai mengembangkan dengan membuat seperangkat fungsi yang lebih kecil yang memecah masalah besar menjadi yang lebih kecil dan lebih mudah ditangani. Pendekatan ini biasanya baik dan fungsi-fungsi kecil awal ini tumbuh seiring waktu, membuat operasi yang lebih kompleks dan menangani lebih banyak data. Seiring pertumbuhan data dalam aplikasi Anda, tugas-tugas yang intensif komputasi seperti loop dan panggilan rekursif semakin sering dipanggil, yang cenderung memperlambat aplikasi. Dalam kasus yang parah, itu bahkan bisa membekukan aplikasi sepenuhnya. Di sinilah Plato berperan.

Plato adalah alat visualisasi kode sumber JavaScript, analisis statis, dan kompleksitas yang menghasilkan laporan yang menunjukkan seberapa kompleks aplikasi Anda dan di mana harus melakukan perbaikan untuk mempercepat proses.

1 - Menginstal Plato

Jika Anda memiliki NodeJS dan NPM terinstal di sistem Anda, menginstal Plato semudah mengetik

1 npm install -g plato

Jika tidak, silakan instal sebelum melanjutkan.

2 - Menjalankan Plato

Menjalankan Plato setelah instalasi terdiri dari mengetik perintah berikut dari direktori tempat Cloud Code Anda berada:

1 plato -r -d MyReportFolder -t "Laporan Saya untuk Aplikasi ini" -x .json *.js

opsi berarti:

  • -r: Rekursif, artinya akan masuk ke dalam direktori dan subdirektori untuk mencari file
  • -d MyReportFolder: (output) Direktori. Plato akan membuat direktori bernama MyReportFolder di mana ia akan menyimpan hasilnya
  • -t “Laporan Saya untuk Aplikasi ini”: Judul. Plato akan menamai laporan ini Laporan Saya untuk Aplikasi ini. Ini berguna untuk membuat beberapa laporan seiring waktu dan melacak
  • -x .json: Kecualikan file .json. Anda dapat memberi tahu Plato untuk mengabaikan jenis file sehingga berjalan lebih cepat
  • *.js: Cari apa pun dengan ekstensi .js untuk dievaluasi

3 - Mendapatkan hasil

Di dalam MyReportFolder yang dibuat oleh perintah di atas, Anda akan menemukan sebuah index.html yang berisi laporan. Buka file itu di browser dan Anda akan menemukan sesuatu seperti ini:

Document image


Dalam kasus saya, saya hanya memiliki file bernama main.js, tetapi tergantung pada kode Anda, Anda bisa memiliki lebih banyak file. Gulir ke bawah ke bagian Files dan klik nama file yang ingin Anda buka (main.js dalam kasus saya). Ini akan membuka laporan untuk file tersebut:

Document image

  • Maintainability adalah nilai antara 0 dan 100 yang mewakili kemudahan relatif dalam memelihara kode. Nilai tinggi berarti pemeliharaan yang lebih baik.
  • Ukuran kesulitan terkait dengan kesulitan program untuk ditulis atau dipahami.
  • Perkiraan Kesalahan adalah bug yang disampaikan oleh Halstead adalah perkiraan untuk jumlah kesalahan dalam implementasi.

Bobot Fungsi memiliki dua metrik:

  • Berdasarkan Kompleksitas: Metrik ini menghitung jumlah jalur yang berbeda melalui blok kode. Nilai yang lebih rendah lebih baik.
  • Berdasarkan SLOC: Baris Kode Sumber / Baris Kode Logis

Sekarang Anda dapat menggulir ke bawah dan melihat peringatan serta kemungkinan perbaikan yang disarankan:

Document image


Dalam kasus saya, ini menunjukkan bahwa sintaks fungsi panah (=>)' hanya tersedia di ES6 (gunakan 'esversion: 6'), yang bukan masalah. Tapi mari kita tambahkan beberapa kode yang sangat tidak efisien ke fungsi itu dan evaluasi ulang:

JS


Dan evaluasi hasilnya:

Document image


Seperti yang kita lihat, kompleksitas fungsi ini adalah 4, yang baik. Semakin tinggi angka yang Anda dapatkan, semakin kompleks fungsi tersebut dan semakin Anda harus memastikan bahwa itu efisien.

Plato juga akan memperingatkan Anda tentang titik koma yang hilang dan kesalahan Javascript potensial lainnya.

Kesimpulan

Memiliki alat seperti Plato yang memeriksa kompleksitas kode Anda dan terus-menerus mengerjakan ulang kode cloud agar secepat dan seefisien mungkin dapat mengarah pada penghematan besar seiring waktu. Anda dan semua pengembang harus menyertakan langkah ini atau sesuatu yang serupa dalam proses pengembangan Anda untuk memastikan Anda mendapatkan hasil maksimal dari setiap permintaan.