Kami memiliki situs web berbasis Django di mana kami ingin membuat beberapa konten (teks, dan logika bisnis seperti rencana harga) mudah diedit di rumah , jadi kami memutuskan untuk menyimpannya di luar basis kode. Biasanya alasannya adalah salah satu dari yang berikut:
Ini adalah sesuatu yang ingin diedit oleh orang-orang non-teknis . Salah satu contohnya adalah copywriting untuk sebuah situs web - pemrogram menyiapkan sebuah templat dengan teks yang standarnya adalah "Lorem ipsum ...", dan konten yang sebenarnya dimasukkan kemudian ke dalam basis data.
Ini adalah sesuatu yang ingin kita ubah dengan cepat, tanpa perlu menyebarkan kode baru (yang saat ini kita lakukan dua kali seminggu). Contohnya adalah fitur yang saat ini tersedia untuk pelanggan di berbagai tingkatan harga. Alih-alih meng-hardcoding ini, kami membacanya dari database.
Solusi yang dijelaskan itu fleksibel tetapi ada beberapa alasan mengapa saya tidak menyukainya.
Karena konten harus dibaca dari database, ada overhead kinerja .
Kami mengurangi itu dengan menggunakan skema caching, tetapi ini juga menambahkan beberapa kompleksitas pada sistem.
Pengembang yang menjalankan kode secara lokal melihat sistem dalam keadaan yang sangat berbeda dibandingkan dengan cara kerjanya pada produksi. Tes otomatis juga menjalankan sistem dalam keadaan berbeda. Situasi seperti menguji fitur baru pada server pementasan juga menjadi lebih rumit - jika server pementasan tidak memiliki salinan baru-baru ini dari basis data, itu dapat secara tak terduga berbeda dari produksi.
Kita dapat mengurangi itu dengan melakukan keadaan baru ke repositori sesekali (misalnya dengan menambahkan migrasi data), tetapi sepertinya pendekatan yang salah. Apakah itu?
Adakah cara terbaik untuk menyelesaikan masalah ini? Apakah ada pendekatan yang lebih baik untuk menangani konten yang saya abaikan?