Ví dụ thực tế mâu thuẫn với chính công cụ tính toán của nó
Tôi vận hành một trang web với các công cụ tính toán chi phí cải tạo nhà cửa.
Mỗi trang hiển thị cùng một mức chi phí ở bốn vị trí khác nhau:
- Một widget tương tác.
- Một bảng tham chiếu tĩnh.
- Các ví dụ bằng văn bản.
- Một phần FAQ.
Tôi đã phát hiện ra một lỗi. Một ví dụ bằng văn bản cho biết chi phí dự án là $62,300. Trong khi đó, widget tính toán lại cho biết cùng dự án đó có chi phí là $56,779.
Khoảng cách chênh lệch là $5,500.
Lỗi xảy ra vì tôi đã tự nhập số bằng tay. Tôi đã sử dụng các giả định khác nhau cho phần văn bản so với phần mã nguồn. Văn bản giả định một thiết bị HVAC mới. Mã nguồn lại giả định một hệ thống hiện có. Cả hai đều hợp lệ, nhưng chúng không khớp nhau.
Đây là một lỗi phổ biến. Khi bạn lưu trữ cùng một sự thật ở hai nơi, chúng sẽ dần trở nên sai lệch.
Tôi đã khắc phục điều này bằng hai quy tắc.
Quy tắc 1: Logic ưu tiên nguồn dữ liệu.
Hàm tính toán là nơi duy nhất một con số được tạo ra. Tôi không còn tự nhập số vào các bảng hay các đoạn văn nữa. Thay vào đó, tôi sử dụng hàm để tạo ra các bảng và ví dụ tại thời điểm build.
Nếu hàm thay đổi, toàn bộ trang web sẽ thay đổi theo. Bảng và widget sẽ luôn thống nhất vì chúng sử dụng cùng một logic.
Quy tắc 2: Thêm nguồn gốc dữ liệu.
Một con số chỉ hữu ích khi bạn biết nó đến từ đâu. Mọi phép tính hiện bao gồm:
- Kịch bản cụ thể được sử dụng.
- Nguồn dữ liệu.
- Ngày truy cập dữ liệu.
- Ngày hết hạn của dữ liệu.
Dữ liệu chi phí không phải là một sự thật vĩnh viễn. Nó là một sự thật có thời hạn. Việc thêm ngày xem xét giúp nhắc nhở tôi cập nhật dữ liệu trước khi nó trở nên sai lệch.
Một nguồn sự thật duy nhất (single source of truth) giúp bạn nhất quán. Thêm nguồn gốc dữ liệu giúp bạn trung thực.
Nếu bạn hiển thị cùng một con số ở hai nơi, đừng nhập lại nó. Hãy import nó. Hãy để quy trình build xử lý việc trùng lặp.
Nguồn: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-