Saya sedang mengerjakan aplikasi dengan banyak konstanta. Pada ulasan kode terakhir muncul bahwa konstanta terlalu tersebar dan semua harus diatur dalam satu file konstanta "master". Ketidaksepakatan adalah tentang bagaimana mengatur mereka. Mayoritas merasa bahwa menggunakan nama konstan harus cukup baik, tetapi ini akan mengarah pada kode yang terlihat seperti ini:
public static final String CREDITCARD_ACTION_SUBMITDATA = "6767";
public static final String CREDITCARD_UIFIELDID_CARDHOLDER_NAME = "3959854";
public static final String CREDITCARD_UIFIELDID_EXPIRY_MONTH = "3524";
public static final String CREDITCARD_UIFIELDID_ACCOUNT_ID = "3524";
...
public static final String BANKPAYMENT_UIFIELDID_ACCOUNT_ID = "9987";
Saya menemukan jenis konvensi penamaan ini tidak praktis. Saya pikir mungkin lebih mudah menggunakan kelas bersarang publik, dan memiliki sesuatu seperti ini:
public class IntegrationSystemConstants
{
public class CreditCard
{
public static final String UI_EXPIRY_MONTH = "3524";
public static final String UI_ACCOUNT_ID = "3524";
...
}
public class BankAccount
{
public static final String UI_ACCOUNT_ID = "9987";
...
}
}
Gagasan ini tidak diterima dengan baik karena "terlalu rumit" (saya tidak mendapatkan banyak detail mengapa ini mungkin terlalu rumit). Saya pikir ini menciptakan pembagian yang lebih baik antara kelompok konstanta terkait dan pelengkapan otomatis membuatnya lebih mudah untuk menemukan ini juga. Saya belum pernah melihat ini dilakukan, jadi saya bertanya-tanya apakah ini adalah praktik yang diterima atau apakah ada alasan yang lebih baik yang seharusnya tidak dilakukan.