Gunakan pendekatan kedua, hanya karena Anda dapat memperkenalkan jenis atau item sumber daya baru kapan saja tanpa harus menulis ulang atau memperbarui kode ( pengembangan berbasis data ).
Edit:
Untuk menguraikan lebih jauh mengapa hal ini secara umum merupakan praktik yang baik, bahkan jika Anda 100% yakin beberapa nilai tidak akan pernah berubah.
Mari kita ambil contoh permainan konsol yang disebutkan dalam komentar, karena ini memberikan alasan yang sangat bagus tentang mengapa Anda tidak boleh melakukan hard-code apa pun, kecuali Anda benar-benar memiliki (atau ingin) untuk, misalnya kunci enkripsi, nama Anda sendiri, dll.
Ketika merilis game di konsol, ini biasanya harus melalui proses review, di mana QA produsen konsol sendiri akan menguji game, bermain melalui itu, mencari masalah, dll. Ini adalah wajib dan memerlukan biaya, banyak uang. Saya pikir saya pernah membaca bahwa rilis mungkin berharga $ 30.000-50.000 hanya untuk sertifikasi saja.
Sekarang bayangkan Anda mendorong game Anda untuk rilis, membayar $ 30.000 dan menunggu. Dan tiba-tiba Anda menyadari bahwa beberapa nilai gim Anda benar-benar rusak. Katakanlah Anda dapat membeli batangan besi dengan harga 50 emas dan menjualnya dengan harga 55 emas.
Apa yang kamu kerjakan? Jika Anda telah membuat kode sulit untuk hal itu, Anda harus membuat versi pembaruan / rilis baru, yang harus melalui peninjauan sekali lagi, jadi kasus terburuk Anda akan membayar sekali lagi untuk sertifikasi ulang! Saya yakin Ubisoft tidak akan keberatan, tetapi untuk kantong pengembang indie game kecil Anda sendiri ... aduh!
Tapi bayangkan permainan hanya sesekali memeriksa definisi game yang diperbarui (misalnya dalam bentuk file JSON). Game Anda dapat mengunduh dan menggunakan versi terbaru kapan saja tanpa memerlukan pembaruan baru. Anda dapat memperbaiki ketidakseimbangan / eksploitasi / bug ini kapan saja tanpa memerlukan sertifikasi ulang atau uang lain yang dibayarkan. Hanya beberapa keputusan desain kecil, Anda tidak berpikir itu sepadan, hanya menghemat uang 5 digit! Bukankah itu luar biasa? :)
Hanya saja jangan salah paham. Ini juga berlaku untuk jenis perangkat lunak dan platform lainnya. Mengunduh file data yang diperbarui secara umum jauh lebih mudah dan dapat dilakukan untuk pengguna standar, tidak peduli apakah itu permainan atau semacam aplikasi / alat. Bayangkan sebuah game terpasang di bawah Program Files di Windows. Pembaru Anda memerlukan hak administrator untuk memodifikasi apa pun dan Anda tidak dapat mengubah program yang sedang berjalan. Dengan DDD, program Anda hanya mengunduh data dan menggunakannya. Pemain mungkin bahkan tidak menyadari ada pembaruan.