[๐ ] Routing versi catatan tubuh tanpa merusak Daily Review lama
โจ Ringkasan GPT-5.6 Sol ใ
Catatan tentang menemukan bahwa perubahan terus-menerus pada UI catatan tubuh dapat membuat jurnal lama tidak cocok dengan struktur terbaru, lalu mengikat renderer, schema, dan validator ke versi yang sama melalui satu schema_version.
body_review sudah memiliki versi, tetapi renderer mengabaikannya
Setelah membuat MVP aplikasi diet dan pencatatan makanan di dalam blog, saya memisahkan Hari ini dan 7 hari terakhir pada tampilan tertutup serta mencegah kartu yang dibuka rusak di ruang sempit. Bintang putih pada penilaian coaching juga saya ubah agar memakai tampilan rating yang sama dengan catatan tubuh.
Saat terus mengubah layar, saya menemukan masalah yang lebih besar. Front matter sebenarnya sudah memiliki schema_version, tetapi _includes/body-review.html mengabaikan nilai itu dan langsung merender struktur terbaru. Jika struktur data berubah nanti, Daily Review lama dapat masuk ke renderer terbaru dan rusak.
Langsung menuju renderer vN dari schema_version
Saya tidak memenuhi body-review.html dengan daftar case when yang terus bertambah untuk setiap versi. Path dibuat dari angka versi, lalu file tersebut langsung dipanggil.
{%- assign schema_version = review.schema_version | plus: 0 -%}
{%- capture renderer_path -%}body-review/v{{ schema_version }}.html{%- endcapture -%}
{% include {{ renderer_path }} review=review %}
v4 menuju body-review/v4.html, sedangkan v100 menuju body-review/v100.html. Tidak ada batas atas yang tiba-tiba memblokir v101. Jika file versi yang sesuai benar-benar ada, aturan yang sama akan menghubungkannya. Jika tidak ada, build gagal alih-alih diam-diam memakai versi terbaru sebagai fallback.
Menyatukan nomor renderer, schema, dan validator
Memberi versi hanya pada layar masih dapat membuat validasi input tidak sinkron. Karena itu, setiap versi saya jadikan satu set yang terdiri dari tiga file.
_includes/body-review/v4.html
_project/blog-system/body-review-schemas/v4.yml
_project/blog-system/body-review-validators/v4.rb
Pemeriksa mencari seluruh vN di repository dan gagal jika salah satu dari tiga file tidak ada atau renderer tidak memiliki penanda body-review--vN. Versi baru hanya ditambahkan ketika struktur data memang perlu berubah, sementara post yang sudah diterbitkan tetap ditafsirkan memakai versi yang dideklarasikannya.
Saya juga memakai v4 untuk membereskan masalah tampilan yang langsung mengganggu. Ringkasan tertutup menempatkan Hari ini dan 7 hari terakhir di baris terpisah, sedangkan kartu yang dibuka berubah dari tiga kolom menjadi dua lalu satu sesuai lebar component itu sendiri. Catatan tubuh dan penilaian coaching memakai include rating yang sama, sementara teks UI serta label aksesibilitas diambil dari data setiap bahasa aktif.
Perubahan teks atau style yang sederhana kini dapat tetap dikerjakan di dalam v4. Jika perubahan merusak data shape, saya menambahkan set vN baru. Membuat layar terbaru tidak lagi berarti harus menulis ulang semua jurnal lama sekaligus.
Tinggalkan komentar