İlk Code Review'da Kırılmamak
Yorum satırı, kişi dosyası değil

İlk pull request'imi açtığım gün commit'e adımı yazmıştım, yorumlara da adımı yazılmış gibi okudum. 'Bu isim kötü' cümlesi kulağıma 'sen kötüsün' diye geldi. İki gün kimseye sormadım. PR orada durdu, iş de durdu.
Review bir sınav kâğıdı değil. Birisi diff'e bakıp ileride kendisinin de takılacağı yeri işaret ediyor. Sert üslup ayrı bir konu; onu kişiye söylemek gerekir. Ama 'bu fonksiyon iki iş yapıyor' cümlesi karakter tahlili değil.
Yorumu üçe ayırmak
- Hemen düzelteceğim: yazım, null, yanlış isim, testin olmadığı yer.
- Soracağım: neden bu katmanda, neden bu isim, bir kural mı var.
- Tartışacağım: davranış değişiyorsa, sessizce 'düzelttim' demem.
// Review: "Bu metod hem kaydediyor hem e-posta atıyor."
public async Task PublishAsync(Guid noteId, CancellationToken ct)
{
var note = await db.Notes.SingleAsync(n => n.Id == noteId, ct);
note.Status = NoteStatus.Published;
await db.SaveChangesAsync(ct);
await mail.SendPublishedAsync(note, ct);
}
// Ayırınca review kapanıyor, mail düşerse kayıt da geri alınmıyor.
public async Task PublishAsync(Guid noteId, CancellationToken ct)
{
await notes.MarkPublishedAsync(noteId, ct);
await mail.QueuePublishedAsync(noteId, ct);
}
İkinci hali 'daha clean' diye övülmek için değil. Yorumdaki tek cümleye cevap. Mail kuyruğu ayrı tartışma; onu yeni thread'de sordum. İlk PR'da her yorumu aynı anda çözmeye çalışmak, yine kırılmak.
Kırılmamak, hissi yok saymak değil. His geliyor. Sonra dosyayı tekrar açıp yorumun işaret ettiği satıra bakıyorum. Satır yoksa soruyorum. Satır varsa düzeltiyorum. Üçüncü bir yol olan 'o zaman kod yazmam' bir haftalık sessizlikti; işe yaramadı.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap