Merilis, dan Bekerja Sebagai Developer · 6/8
Bertanya dengan cara yang dijawab
Apa yang sudah dicoba, apa yang diharapkan, apa yang terjadi. Format yang menghargai waktu semua orang.
Baca 18 menit
Setelah pelajaran ini kamu bisa
- Menentukan kapan harus bertanya alih-alih terus sendiri
- Menulis pertanyaan yang terjawab di balasan pertama
- Menunjukkan usahamu tanpa menulis esai
- Bertanya dengan cara yang juga membantu orang berikutnya
Dua kegagalan yang sama-sama umum di pekerjaan pertama: bertanya sebelum mencoba apa pun, dan bertahan mentok sehari karena takut terlihat tidak mampu. Yang kedua jauh lebih mahal, dan itulah yang biasanya dipilih developer junior.
Hitungan dari bertahan mentok. Bertanyalah di titik saat waktumu sendiri berhenti jadi pilihan yang lebih murah.
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.
Bentuk pertanyaan yang baik
❌ "hey, the login isn't working, any idea?"
❌ "Can I ask you something?" <- ask the question; do not ask to ask
✅ Sign-in fails on my branch with "UNIQUE constraint failed: users.name_key",
but only for names that already exist in a different case ("Ana" vs "ana").
What I expected: createUser returns undefined and the form shows "nameTaken".
What happens: the constraint error escapes and the action returns a 500.
What I have tried:
- confirmed name_key is lowercased before the insert (features/auth/users.ts:38)
- the pre-check with findUserByName does return undefined, so it falls through
- reproduced with: bun run test flow -t "taken name"
My guess: the try/catch around the INSERT catches the error but the
pre-check ran against a stale connection. Not sure that is possible.
Am I missing something about how the constraint and the pre-check interact?- Apa yang sedang kamu coba lakukan. Tujuannya, bukan cuma error-nya.
- Apa yang kamu harapkan, dan apa yang terjadi. Pesan tepatnya, disalin, jangan diparafrase.
- Apa yang sudah kamu coba. Bagian inilah yang mendatangkan rasa hormat, dan mencegah saran yang sudah kamu singkirkan.
- Dugaan terbaikmu. Bahkan yang salah pun menunjukkan cara kamu berpikir, dan jauh lebih mudah mengoreksi sebuah dugaan daripada mulai dari nol.
- Cara mereproduksinya. Sebuah perintah, URL, atau nama branch.
- Satu pertanyaan spesifik di akhir. Bukan "ada ide?".
Setelah kamu mendapat jawabannya
- Sebutkan apa jawabannya, di utas yang sama. Orang berikutnya yang mencari akan menemukan penyelesaiannya, bukan cuma pertanyaannya.
- Tuliskan kalau tidak jelas — sebuah komentar di kode, atau satu baris di README.
- Tambahkan test kalau itu sebuah bug. Dengan begitu jawabannya ditegakkan, bukan cuma diingat.
- Jangan minta maaf karena bertanya. Kamu bertanya dengan baik; itu artinya pekerjaannya berjalan sebagaimana mestinya.
Tugas praktik
Tulis lengkap sebuah pertanyaan tentang hal di proyek ini yang belum sepenuhnya kamu pahami — memakai bentuk enam bagian di atas. Jangan kirim. Lalu baca ulang dan lihat apakah kamu bisa menjawabnya sendiri sekarang. Kalau bisa, kamu baru saja melihat kenapa formatnya berhasil.
Hasil yang diharapkan
Sering kali, sebuah jawaban yang kamu temukan saat menulis pertanyaannya.