𝗧𝗵𝗲 𝗪𝗼𝗿𝗸𝗲𝗱 𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝗧𝗵𝗮𝘁 𝗗𝗶𝘀𝗮𝗴𝗿𝗲𝗲𝗱 𝗪𝗶𝘁𝗵 𝗜𝘁𝘀 𝗢𝘄𝗻 𝗖𝗮𝗹𝗰𝘂𝗹𝗮𝘁𝗼𝗿

Saya mengelola sebuah situs web dengan kalkulator biaya perbaikan rumah.

Setiap halaman menampilkan biaya yang sama di empat tempat berbeda:

Saya menemukan sebuah bug. Sebuah contoh tertulis menyatakan biaya proyek adalah $62.300. Widget kalkulator menyatakan proyek yang sama berbiaya $56.779.

Selisihnya adalah $5.500.

Kesalahan itu terjadi karena saya menulis angka-angkanya secara manual. Saya menggunakan asumsi yang berbeda untuk teks dibandingkan dengan yang saya gunakan untuk kode. Teks tersebut mengasumsikan unit HVAC baru. Kode tersebut mengasumsikan sistem yang sudah ada. Keduanya valid, tetapi tidak cocok.

Ini adalah kegagalan yang umum terjadi. Ketika Anda menyimpan fakta yang sama di dua tempat, keduanya akan saling menyimpang.

Saya memperbaiki ini dengan dua aturan.

Aturan 1: Logika mengutamakan sumber (Source-first logic).

Fungsi kalkulator adalah satu-satunya tempat di mana sebuah angka "lahir". Saya tidak lagi mengetik angka ke dalam tabel atau paragraf. Sebaliknya, saya menggunakan fungsi tersebut untuk menghasilkan tabel dan contoh pada saat proses build.

Jika fungsinya berubah, seluruh halaman akan berubah. Tabel dan widget akan selalu selaras karena keduanya menggunakan logika yang sama.

Aturan 2: Tambahkan asal-usul (provenance).

Sebuah angka hanya berguna jika Anda tahu dari mana asalnya. Setiap perhitungan kini mencakup:

Data biaya bukanlah fakta permanen. Itu adalah fakta yang mudah kedaluwarsa. Menambahkan tanggal peninjauan mengingatkan saya untuk memperbarui data sebelum menjadi salah.

Satu sumber kebenaran (single source of truth) membuat Anda konsisten. Menambahkan asal-usul (provenance) membuat Anda jujur.

Jika Anda menampilkan angka yang sama di dua tempat, jangan mengetik ulang. Impor angka tersebut. Biarkan proses build Anda yang menangani duplikasi tersebut.

Sumber: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9