0Pricing
DevOps Bootcamp · Pelajaran

Praktik Terbaik Pembuatan Skrip & Linting

Pelajari konvensi penulisan kode, penggunaan komentar, dan alat seperti ShellCheck untuk menulis skrip Bash yang rapi, mudah dibaca, dan bebas galat.

Praktik Terbaik Pembuatan Skrip & Linting adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Mengapa Praktik Terbaik dalam Pembuatan Skrip?

Menulis skrip Bash sangat bermanfaat, tetapi tanpa kebiasaan yang baik, skrip dapat menjadi sulit dipahami, dipelihara, dan ditelusuri kesalahannya.

Praktik terbaik adalah panduan yang membantu Anda menulis kode yang rapi, tangguh, dan mudah dibaca. Praktik ini membuat skrip Anda:

  • Lebih Mudah Dibaca: Baik oleh Anda sendiri maupun orang lain.
  • Lebih Mudah Dipelihara: Lebih sederhana untuk diperbarui atau diperbaiki.
  • Lebih Sedikit Menimbulkan Kesalahan: Mencegah kesalahan umum.
  • Lebih Baik untuk Kolaborasi: Menyeragamkan tampilan dan perilaku kode.

Menulis Komentar agar Jelas

Komentar sangat penting untuk menjelaskan mengapa kode Anda melakukan sesuatu, bukan hanya apa yang dilakukannya. Komentar berfungsi sebagai catatan untuk Anda di masa mendatang atau untuk pengembang lain.

Gunakan komentar untuk:

  • Menjelaskan tujuan keseluruhan skrip di bagian atas.
  • Menjelaskan logika yang rumit atau bagian yang sulit dipahami.
  • Mendokumentasikan fungsi: tujuan, argumen, dan nilai kembaliannya.

Awali komentar dengan simbol # (tanda pagar).

#!/bin/bash
# This script demonstrates commenting best practices.
# Author: CoddyKit
# Date: 2023-10-27

# Function: greet_user
# Description: Prints a greeting message to the console.
# Arguments:
#   $1 - The name of the user to greet.
greet_user() {
  local name="$1" # Store the first argument in a local variable.
  echo "Hello, ${name}!" # Output the greeting message.
}

# Main script execution starts here.
echo "Script execution started."
greet_user "CoddyKit Learner" # Call the function with a specific name.
echo "Script execution finished."

Konvensi Penamaan yang Jelas

Nama yang bermakna membuat skrip Anda lebih mudah dipahami. Hindari variabel satu huruf, kecuali untuk pencacah perulangan yang umum (seperti i atau j).

Konvensi umum:

  • Variabel: Gunakan nama yang deskriptif (misalnya, user_name, log_file). Gunakan UPPERCASE untuk variabel lingkungan atau konstanta global. Gunakan lowercase_with_underscores untuk variabel skrip lokal.
  • Fungsi: Gunakan lowercase_with_underscores, biasanya diawali kata kerja (misalnya, process_data, check_status).
  • Skrip: Gunakan lowercase_with_hyphens (misalnya, backup-script.sh).

Pemformatan dan Indentasi yang Konsisten

Pemformatan yang konsisten, seperti indentasi dan spasi, sangat meningkatkan keterbacaan. Bayangkan membaca buku dengan indentasi paragraf yang tidak konsisten!

Poin-poin penting:

  • Gunakan 2 atau 4 spasi untuk indentasi (tab sering kali tidak disarankan).
  • Buat baris tetap pendek (kurang dari 80 karakter adalah aturan praktis yang baik untuk terminal).
  • Gunakan baris kosong untuk memisahkan blok kode yang logis.
  • Sejajarkan elemen-elemen yang berkaitan jika sesuai.

Konsistensi lebih penting daripada gaya khusus yang Anda pilih.

Ketangguhan: 'set -u' (nounset)

Opsi set -u (atau set -o nounset) sangat membantu mencegah bug yang disebabkan oleh kesalahan ketik atau variabel yang tidak sengaja tidak ditetapkan. Jika skrip Anda mencoba menggunakan variabel yang belum diberi nilai, set -u akan segera menghentikan skrip dengan sebuah kesalahan.

Hal ini membantu menemukan kesalahan sejak awal dan mencegah perilaku yang tidak terduga di bagian skrip berikutnya.

Cobalah menjalankan kode di bawah ini. Kode tersebut dirancang untuk berhenti lebih awal karena UNSET_NAME tidak didefinisikan.

#!/bin/bash
# Demonstrating 'set -u' (nounset)

set -u # Exit if an unset variable is used

MY_GREETING="Hello"
echo "${MY_GREETING}, CoddyKit!"

# This variable is NOT set. With 'set -u', the script will exit here.
echo "Your name is: ${UNSET_NAME}" 

echo "This line will NOT be reached if 'set -u' is active and UNSET_NAME is indeed unset."

Ketangguhan: 'set -o pipefail'

Saat Anda menyalurkan perintah (misalnya, cmd1 | cmd2 | cmd3), Bash biasanya hanya melaporkan status keluar dari perintah terakhir dalam penyaluran tersebut. Artinya, jika cmd1 gagal tetapi cmd2 dan cmd3 berhasil, penyaluran tersebut mungkin tetap melaporkan keberhasilan!

set -o pipefail mengubah perilaku ini. Jika ada perintah dalam penyaluran yang gagal (mengembalikan status keluar bukan nol), status keluar seluruh penyaluran akan menjadi status bukan nol tersebut.

Hal ini membuat alur perintah Anda lebih andal dengan segera memberi tahu jika perintah di awal gagal.

#!/bin/bash
# Demonstrating 'set -o pipefail'

set -o pipefail # Ensures pipe's exit status is the last non-zero command

echo "Running a failing command in a pipe:"
echo "---"

# 'false' command always fails (exit status 1).
# 'cat /dev/null' always succeeds (exit status 0).
# With 'set -o pipefail', the pipe's overall exit status will be 1 from 'false'.
false | cat /dev/null

# This line will only be reached if the pipe above succeeds.
echo "---"
echo "Script finished successfully (this line won't show if pipe failed with set -o pipefail)."

Memperkenalkan ShellCheck

Bahkan dengan praktik terbaik, Anda dapat dengan mudah melewatkan kesalahan sintaks kecil atau jebakan umum. Di sinilah ShellCheck membantu!

ShellCheck adalah alat analisis statis (sebuah 'pemeriksa kode') untuk skrip shell. Alat ini membaca skrip Anda dan menunjukkan:

  • Kesalahan sintaks.
  • Kesalahan umum pemula.
  • Masalah semantik yang sulit terlihat.
  • Masalah portabilitas antar-shell yang berbeda.

Alat ini memberikan saran yang membantu, sering kali disertai tautan ke penjelasan yang lebih terperinci.

ShellCheck Saat Bekerja: Skrip Buruk

Mari kita lihat skrip dengan beberapa masalah umum. Masalah-masalah ini mungkin tidak langsung menyebabkan skrip mogok, tetapi merupakan praktik buruk atau bug yang berpotensi terjadi.

Bayangkan Anda menyimpan skrip ini sebagai bad_script.sh. Untuk menjalankan ShellCheck pada skrip tersebut, Anda dapat mengetik: shellcheck bad_script.sh

Coba temukan masalahnya sebelum menjalankan ShellCheck!

#!/bin/bash
# A script with some common issues

MY_NAME=coddykit # Variable assignment needs no space, but quoting is good for values
echo "Hello $MY_NAME!" # Missing quotes around variable expansion

if [ $1 = "admin" ]; then # Missing quotes around $1
  echo "Welcome, administrator."
fi

# A simple loop with potential issues
for file in *.txt; do # Unquoted glob could expand to multiple arguments
  echo File: $file # Missing quotes around $file
done

Memperbaiki Peringatan ShellCheck

ShellCheck akan menampilkan keluaran seperti: SC2086: Double quotes missing around "$MY_NAME". ShellCheck sering memberikan kode tertentu (seperti SC2086) yang dapat Anda cari untuk mendapatkan informasi lebih lanjut.

Berikut skrip sebelumnya yang telah diperbaiki sesuai rekomendasi ShellCheck dan praktik terbaik umum:

Perhatikan penggunaan tanda kutip ganda "" di sekitar ekspansi variabel dan substitusi perintah untuk mencegah pemisahan kata dan pencocokan pola, yang sering menjadi sumber kesalahan.

#!/bin/bash
# A script with issues fixed by ShellCheck

MY_NAME="CoddyKit" # Quote variable assignment values
echo "Hello ${MY_NAME}!" # Always quote variable expansions

if [ "$1" = "admin" ]; then # Quote positional parameters like $1
  echo "Welcome, administrator."
fi

# A simple loop with corrected quoting
for file in *.txt; do 
  echo "File: ${file}" # Quote variable expansions, especially in loops
done

Pemeriksaan Praktik Terbaik

Manakah dari berikut ini yang dianggap sebagai praktik yang baik saat menulis skrip Bash?

Rangkuman: Penulisan Skrip Profesional

Selamat! Anda telah mempelajari cara meningkatkan skrip Bash Anda dari sekadar berfungsi menjadi profesional.

Yang telah kita bahas:

  • Pentingnya praktik terbaik untuk keterbacaan dan kemudahan pemeliharaan.
  • Penggunaan komentar dan konvensi penamaan agar skrip lebih jelas.
  • Membuat skrip yang tangguh dengan set -u dan set -o pipefail.
  • Kemampuan ShellCheck untuk menemukan masalah secara otomatis dan meningkatkan kode Anda.

Dengan menerapkan prinsip-prinsip ini, Anda akan menulis skrip Bash yang lebih andal, mudah dipahami, dan mudah dikerjakan bersama. Teruslah berlatih!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Praktik Terbaik Pembuatan Skrip & Linting” gratis?

Ya — teks lengkap “Praktik Terbaik Pembuatan Skrip & Linting” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Praktik Terbaik Pembuatan Skrip & Linting”?

Pelajari konvensi penulisan kode, penggunaan komentar, dan alat seperti ShellCheck untuk menulis skrip Bash yang rapi, mudah dibaca, dan bebas galat. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Praktik Terbaik Pembuatan Skrip & Linting” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Men-debug Skrip Bash (set -x, trap)
  2. Penanganan Galat & Status Keluar
  3. Praktik Terbaik Pembuatan Skrip & Linting
  4. Menguji Skrip Bash dengan Bats
← Kembali ke DevOps Bootcamp