Latihan 1 dari materi Code Comments di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode di editor penuh komentar yang cuma mengulang apa yang dikerjakan kode, dan batas sesi ditulis sebagai angka 3600000 tanpa nama. Rapikan:
Hapus komentar yang mengulang kode: // hitung selisih waktu, // return hasil perbandingan, // panggil fungsi dan // panggil lagi dengan waktu expired. Yang dicek: // hitung selisih waktu dan // return hasil perbandingan gak boleh tersisa.
Pindahkan angkanya ke const SESSION_TIMEOUT_MS = 3600000; (3.600.000 milidetik = 1 jam) dan pakai konstanta itu di isSessionValid. Tulis di atasnya komentar yang menjelaskan kenapa, misalnya // Kebijakan keamanan: sesi tidak aktif kedaluwarsa setelah 1 jam. (yang dicek: ada komentar tepat di atas baris const itu atau di ujung barisnya; isinya bebas, dan menulis alasannya itulah inti lesson-nya).
Tambahkan // TODO: pindahkan ke config env tepat di atas const API_KEY. API_KEY sudah ada dan tetap.
Dua console.log di bawah tetap ada. Output-nya harus:
true
false
isSessionValid juga diuji sendiri: isSessionValid(0, 3600001) harus false, dan isSessionValid(3600000, 3600001) harus true. Yang dibandingkan adalah selisih now - lastActivity dengan SESSION_TIMEOUT_MS.
Hint
Komentar yang cuma membaca ulang kode dibuang. Komentar yang layak tinggal adalah yang menjelaskan alasan, misalnya kenapa sesi berakhir setelah 1 jam.
Ganti angka 3600000 dengan konstanta SESSION_TIMEOUT_MS yang nilainya sama persis, pakai di isSessionValid, lalu taruh // TODO: pindahkan ke config env di atas const API_KEY.
// TODO: pindahkan ke config env
const API_KEY = 'sk_test_123';
// Kebijakan keamanan: sesi tidak aktif kedaluwarsa setelah 1 jam.
const SESSION_TIMEOUT_MS = 3600000;
function isSessionValid(lastActivity, now) {
return now - lastActivity < SESSION_TIMEOUT_MS;
}
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...