Menjelaskan Variabel
Kasing Anda adalah contoh dari pengantar menjelaskan variabel refactoring. Singkatnya, variabel yang menjelaskan adalah variabel yang tidak sepenuhnya diperlukan, tetapi memungkinkan Anda untuk memberikan nama yang jelas untuk sesuatu, dengan tujuan meningkatkan keterbacaan.
Kode berkualitas baik mengkomunikasikan maksud kepada pembaca; dan sebagai keterbacaan pengembang profesional dan rawatan adalah tujuan # 1 Anda.
Dengan demikian, aturan praktis yang saya sarankan adalah ini: jika tujuan parameter Anda tidak segera jelas, jangan ragu untuk menggunakan variabel untuk memberikannya nama baik. Saya pikir ini adalah praktik yang baik secara umum (kecuali disalahgunakan). Berikut adalah contoh cepat dan dibuat-buat - pertimbangkan:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
versus yang sedikit lebih panjang, tetapi bisa dibilang lebih jelas:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
Parameter Boolean
Contoh Anda sebenarnya menyoroti mengapa boolean di API sering merupakan ide yang buruk - di sisi panggilan, mereka tidak melakukan apa pun untuk menjelaskan apa yang terjadi. Mempertimbangkan:
ParseFolder(true, false);
Anda harus mencari tahu apa arti parameter tersebut; jika mereka enum, itu akan jauh lebih jelas:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
Sunting:
Ditambahkan judul dan bertukar urutan dua paragraf utama, karena terlalu banyak orang yang berfokus pada bagian parameter boolean (untuk menjadi adil, itu adalah paragraf pertama awalnya). Juga menambahkan contoh ke bagian pertama.