Một tài liệu kỹ thuật mới mang tên "Fintech Engineering Handbook" vừa gây chú ý trên Hackernews với hơn 232 upvote, cung cấp các pattern thiết yếu cho lập trình viên xây dựng hệ thống xử lý tiền. Không chỉ dành cho dân fintech, handbook này giải thích vì sao phần mềm tài chính khác biệt hoàn toàn so với các ứng dụng thông thường, và điều đó ảnh hưởng trực tiếp đến túi tiền của người dùng.
Ba nguyên tắc vàng: Không bịa dữ liệu, không mất dữ liệu, không tin ai
Tác giả nhấn mạnh ba nguyên tắc cốt lõi: không được tạo ra tiền từ hư vô (chống trùng lặp, kiểm soát idempotency), không được mất dữ liệu (ghi lại mọi giao dịch với độ chính xác tuyệt đối) và không tin tưởng bất kỳ bên thứ ba nào (phải xác minh webhook, đối chiếu chéo dữ liệu). Điều này giải thích tại sao ví điện tử hay app thanh toán phải hoạt động cực kỳ chính xác, khác với một trang thương mại điện tử thông thường.
Biểu diễn tiền: Từ float sai lầm đến số nguyên thông minh
Một trong những quyết định quan trọng nhất là cách lưu trữ số tiền. Nhiều lập trình viên mắc sai lầm dùng kiểu float/double, dẫn đến sai số khó lường (ví dụ: 0.1 + 0.2 có thể ra 0.30000000000000004). Handbook khuyến nghị dùng số nguyên theo đơn vị nhỏ nhất (ví dụ: 12,34 euro = 1234 cent) hoặc dùng kiểu BigDecimal cho các phép tính phức tạp như tỷ giá. Đối với crypto, do độ chính xác lên đến 18 chữ số thập phân (wei của Ethereum), lập trình viên cần dùng số nguyên có độ rộng tùy ý để tránh tràn số.
Bài học rút ra: dù bạn là nhà phát triển fintech hay chỉ đơn giản muốn hiểu tại sao app thanh toán đôi khi sai số, handbook này là tài liệu tham khảo đáng giá. Nó nhấn mạnh rằng xử lý tiền không phải là chuyện đùa – mỗi dòng code sai có thể khiến người dùng mất tiền thật.
