Skip to content

Latest commit

 

History

History
84 lines (59 loc) · 1.44 KB

File metadata and controls

84 lines (59 loc) · 1.44 KB

Modules, Testing, dan Langkah Berikutnya

Modules

Saat proyek membesar, kode perlu dipecah ke beberapa modul.

Contoh sederhana:

mod matematika {
    pub fn tambah(a: i32, b: i32) -> i32 {
        a + b
    }
}

pub berarti fungsi bisa diakses dari luar modul.

Pemisahan file

Kamu bisa memindahkan modul ke file terpisah agar kode lebih rapi. Dalam proyek yang lebih besar, kamu akan sering memakai:

  • src/lib.rs
  • src/main.rs
  • folder modul

Testing dasar

Rust punya dukungan testing bawaan.

fn tambah(a: i32, b: i32) -> i32 {
    a + b
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_tambah() {
        assert_eq!(tambah(2, 3), 5);
    }
}

Jalankan dengan:

cargo test

Tooling penting

  • cargo fmt untuk format kode
  • cargo clippy untuk saran kualitas
  • cargo doc untuk membangun dokumentasi API

Langkah belajar berikutnya

Setelah materi ini, kamu bisa lanjut ke:

  • traits dan generics
  • lifetimes
  • iterator
  • smart pointers
  • async Rust
  • Axum atau Actix untuk backend
  • SQLx atau Diesel untuk database

Exercise

  1. Buat modul util yang memiliki fungsi sapa.
  2. Buat satu fungsi matematika dan test untuk fungsi tersebut.
  3. Jalankan cargo test.
  4. Jalankan cargo fmt dan cargo clippy.

Challenge

Refactor salah satu contoh sebelumnya menjadi:

  • satu modul untuk model data
  • satu modul untuk logika
  • test minimal satu kasus sukses dan satu kasus gagal