Lompat ke konten
Kembali ke modul

Merilis, dan Bekerja Sebagai Developer · 7/8

Membaca kode asing dan dokumentasi sungguhan

Keahlian yang bertahan lebih lama dari framework apa pun: menemukan jawaban di codebase yang bukan kamu tulis.

Baca 28 menit

Setelah pelajaran ini kamu bisa

  • Menemukan jalan di codebase yang bukan kamu tulis
  • Melacak sebuah fitur dari UI sampai database
  • Membaca kode sumber library saat dokumentasinya tidak cukup
  • Menilai apakah dokumentasi yang kamu temukan masih berlaku

Ini keahlian yang bertahan lebih lama dari framework apa pun. Framework berubah setiap beberapa tahun; kemampuan masuk ke codebase yang asing lalu menemukan jawabannya tidak. Ini juga sebagian besar dari apa yang sebenarnya dilakukan developer senior.

Insting kita adalah mulai dari bagian atas sebuah file lalu membaca ke bawah. Itu tidak berhasil di codebase besar, karena tidak ada bagian atasnya. Lacak sebuah fitur sebagai gantinya: pilih sesuatu yang dilakukan pengguna, temukan tempat ia mulai, lalu ikuti.

Coba sendiri

Melacak sebuah fitur dengan mengikuti call graph — penelusuran yang sama seperti "go to definition" di editormu.

Hasil

Tekan Jalankan untuk melihat hasilnya.

Ini jalan di browser kamu, di dalam sandbox. Apa pun yang kamu tulis di sini tidak bisa merusak situs.

Mengenali codebase baru

  1. `README` dan `package.json`. Ini apa, dan perintah apa yang ada? Mulai dari script-nya.
  2. Jalankan. Tidak ada yang lebih cepat mengenalkanmu daripada melihatnya bekerja. Lalu rusak sesuatu dengan sengaja.
  3. Struktur foldernya. Diorganisasi per fitur atau per lapisan? Itu memberitahumu di mana harus mencari sesuatu.
  4. Test-nya. Itu dokumentasi yang bisa dieksekusi tentang apa yang diyakini penulisnya seharusnya dilakukan kodenya.
  5. Satu fitur, dilacak dari ujung ke ujung. Pilih yang paling sederhana dan nyata. Jangan coba memahami semuanya.
  6. Riwayat git pada file yang kamu pedulikan. git log -p <file> menunjukkan kenapa bentuknya seperti itu.

Saat dokumentasinya tidak cukup

Dokumentasi mencakup kasus-kasus umum. Masalahmu sering bukan kasus umum. Saat itu terjadi, jawabannya ada di node_modules — kode sumber sebenarnya dari setiap library yang kamu pakai ada di disk-mu, bisa dibaca.

  • Baca definisi type-nya dulu. node_modules/<pkg>/**/*.d.ts adalah daftar API yang presisi dan lengkap — sering lebih baik daripada dokumentasinya.
  • Lalu kode sumbernya. Itu cuma JavaScript. Biasanya tidak sepintar yang kamu takutkan.
  • Cek versi yang benar-benar kamu punya. cat node_modules/<pkg>/package.json | grep version. Separuh dari semua keluhan "dokumentasinya salah" itu karena membaca dokumentasi untuk versi major yang berbeda.
  • Baca test di dalam package-nya. Mereka menunjukkan pemakaian yang dimaksudkan, termasuk kasus tepinya.
  • Lalu issue tracker-nya. Cari issue yang sudah ditutup; biasanya sudah ada yang mengalaminya.

Tugas praktik

Lacak sebuah fitur di proyek ini yang belum kamu baca: mulai dari app/[lang]/dashboard/page.tsx dan ikuti setiap function yang dipanggilnya sampai kamu mencapai database atau sebuah API Next.js. Gambar pohonnya di kertas. Lalu pakai "find all references" pada getSessionUser dan daftar setiap tempat ia dipakai.

Hasil yang diharapkan

Empat atau lima tingkat dalam, berakhir di node:sqlite dan next/headers.