Puncak dari apa yang dijawab oleh jawaban-jawaban lain, bukanlah bahwa "nilai-nilai sihir" itu buruk, tetapi seharusnya:
- didefinisikan sebagai konstanta;
- didefinisikan hanya satu kali dalam seluruh domain penggunaannya (jika memungkinkan secara arsitektur);
- didefinisikan bersama jika mereka membentuk seperangkat konstanta yang entah bagaimana terkait;
- didefinisikan pada tingkat umum yang sesuai dalam aplikasi di mana mereka digunakan; dan
- didefinisikan sedemikian rupa untuk membatasi penggunaannya dalam konteks yang tidak sesuai (misalnya menerima mengetik jenis).
Apa yang biasanya membedakan "konstanta" yang dapat diterima dari "nilai magis" adalah beberapa pelanggaran terhadap satu atau lebih aturan ini.
Digunakan dengan baik, konstanta hanya memungkinkan kita untuk mengekspresikan aksioma tertentu dari kode kita.
Yang membawa saya ke poin terakhir, bahwa penggunaan konstanta yang berlebihan (dan karena itu sejumlah asumsi atau kendala yang dinyatakan dalam nilai), bahkan jika itu sesuai dengan kriteria di atas (tetapi terutama jika menyimpang dari mereka), dapat menyiratkan bahwa solusi yang dirancang tidak cukup umum atau terstruktur dengan baik (dan karena itu kita tidak benar-benar berbicara tentang pro dan kontra dari konstanta lagi, tetapi tentang pro dan kontra dari kode terstruktur dengan baik).
Bahasa tingkat tinggi memiliki konstruk untuk pola dalam bahasa tingkat rendah yang harus menggunakan konstanta. Pola yang sama juga dapat digunakan dalam bahasa tingkat yang lebih tinggi, tetapi seharusnya tidak demikian.
Tapi itu mungkin penilaian ahli berdasarkan kesan dari semua keadaan dan seperti apa solusi seharusnya, dan bagaimana tepatnya penilaian itu akan sangat bergantung pada konteksnya. Memang itu mungkin tidak dapat dibenarkan dalam hal prinsip umum apa pun, kecuali untuk menyatakan "Saya sudah cukup umur untuk melihat pekerjaan seperti ini, yang dengannya saya kenal, dilakukan dengan lebih baik"!
EDIT: setelah menerima satu suntingan, menolak yang lainnya, dan sekarang telah melakukan edit saya sendiri, mungkin sekarang saya menganggap gaya pemformatan dan tanda baca dari daftar aturan saya harus diselesaikan sekali dan untuk semua haha!