Phản hồi từ người dùng về Splync
Khoảng một tháng rưỡi sau khi phát hành Splync v1.5 - bản cập nhật cuối cùng cho phép đặt tỷ lệ chia sẻ tùy chỉnh theo dự án và danh mục - một đợt phản hồi mới xuất hiện. Bản cập nhật v1.5 yêu cầu thay đổi lớn về phía máy chủ, nên tôi nghĩ mức độ chi tiết đó là "đủ tốt" cho hầu hết các trường hợp sử dụng. Sau đó, một số người dùng mới đặt câu hỏi đơn giản và hợp lý: “Chúng ta có thể đặt tỷ lệ chia sẻ tùy chỉnh cho từng chi phí riêng lẻ không?” Trong dự án du lịch của họ, có những lúc chỉ hai thành viên cần chia sẻ một chi phí cụ thể, và những lúc khác thì cả ba muốn chia sẻ. Với Splync v1.8, câu trả lời không may là không. Tôi đã giải thích rằng họ có thể tạo thêm các danh mục với tỷ lệ tùy chỉnh để phù hợp với trường hợp đó - một giải pháp tạm thời, không phải là giải pháp thực sự.
Rừng Fractal trở nên choáng ngợp
Thật khó khăn khi nhớ lại công sức đã bỏ ra cho v1.5. Đầu tiên, tôi phải cho phép các dự án có tỷ lệ chia sẻ riêng. Sau đó, các danh mục cũng cần tỷ lệ tùy chỉnh riêng. Tại thời điểm đó, tôi nghĩ mình đã bao quát toàn bộ - thu thập mọi thứ từ mọi nhánh. Nhưng khi làm việc với tỷ lệ chia sẻ theo từng chi phí lại khác. Mỗi lần tôi hái một quả, một cái cây mới lại mọc lên từ chính chỗ đó. Không phải rừng fractal vô tận, mà là một cấu trúc hai tầng rõ ràng: một tầng sinh ra tầng tiếp theo. Theo logic v1.5, một chi phí đầu tiên thừa hưởng tỷ lệ của dự án. Nếu danh mục của nó có tỷ lệ tùy chỉnh, những tỷ lệ này sẽ ghi đè các giá trị của dự án. Khi thêm tỷ lệ chia sẻ theo từng chi phí, tôi thấy mình đang cố gắng thêm một ghi đè khác lên trên ghi đè đó. Cấu trúc trở thành một cầu thang ghi đè - về mặt kỹ thuật thì đúng, nhưng rất rối rắm. Thật khó để biện minh cho việc xây dựng thêm một tầng logic chắp vá nữa.
Thay đổi tư duy trong Splync v1.9
Đột phá cuối cùng đến từ việc lật ngược cấu trúc. Thay vì làm "dự án → danh mục → chi phí" và mỗi tầng ghi đè tầng tiếp theo, tại sao không nghĩ ngược lại? Chia sẻ theo chi phí → chia sẻ theo danh mục → chia sẻ theo dự án. Thứ tự này phản ánh cách suy nghĩ của con người thật: nếu một chi phí cụ thể có quy tắc riêng, nó nên chỉ đơn giản là theo chúng. Nếu không, mô hình của danh mục có lý. Nếu ngay cả điều đó cũng không phù hợp, quay lại với mặc định của dự án. Không còn cầu thang ghi đè - chỉ còn một hệ thống ưu tiên rõ ràng. Khi tôi nhìn thấy cấu trúc theo cách này, sương mù của rừng fractal giả đã ngay lập tức tan biến. Con đường thực thi trở nên rõ ràng: “Mỗi chi phí được kiểm tra tỷ lệ chia sẻ tùy chỉnh theo chi phí. Nếu có, sử dụng chúng. Nếu không, kiểm tra tỷ lệ chia sẻ theo danh mục. Nếu không, sử dụng mặc định của dự án.”
Đi bộ dưới bầu trời
Logic mới cảm thấy đơn giản, dễ đoán và hợp lý về mặt toán học. Để hỗ trợ hệ thống ưu tiên này, chúng tôi đã thêm một bảng MariaDB chuyên dụng cho các chia sẻ theo từng chi phí, giống như bảng cho các chia sẻ theo danh mục. Bảng chi tiết chi phí cũng cần mở rộng, giống như bảng chi tiết danh mục đã làm trong v1.5. Khi thiết kế "hai tầng" cơ bản trở nên rõ ràng, phần còn lại chỉ là mã hóa cẩn thận - cả trong ứng dụng và trên máy chủ. Tuy nhiên, con đường vẫn cảm thấy rủi ro ở một số nơi, giống như đi dạo qua một khu rừng tối mà không có bản đồ. Tôi muốn làm thông suốt đầu óc và bước ra ngoài. Không khí sắc bén và trong lành. Khi đi dạo qua khu phố của mình, tôi thấy núi Phú Sĩ nổi lên từ xa, màu xanh trong suốt dưới bầu trời hoàn hảo. Mặc dù cách gần 100 km, nhưng trông nó đủ gần để chạm vào. Khoảnh khắc đó như một lời nhắc nhở: ngay cả khi tôi nghĩ mình đang đi trong một khu rừng, thực ra tôi đang đi dưới bầu trời mở.
Bạn có thể làm gì với Splync v1.9 — Chia tỷ lệ tùy chỉnh cho từng chi phí
Splync v1.9 ra đời từ khoảnh khắc sáng tỏ đó. Tôi trở về nhà, hoàn thành việc kết nối các điểm nút mới, chuẩn bị logic máy chủ mới, sắp xếp các giao diện liên quan, gửi v1.9 lên Apple và cuối cùng là đi ngủ. Việc xem xét kết thúc sớm hơn bình thường. Khi tôi thức dậy, Splync v1.9 đã được phê duyệt và tự động phát hành trên App Store. Từ phiên bản này trở đi, việc chia sẻ trở nên linh hoạt hơn nhiều. Nếu bạn đi du lịch cùng John và Kate, bạn có thể chia sẻ chi phí cơ bản đều nhau cho cả ba. Nhưng đối với thực phẩm, bạn có thể chuyển sang tỷ lệ “25% : 50% : 25%” vì John thường ăn gấp đôi. Và nếu John bỏ qua một bữa tối nào đó — chẳng hạn tại một nhà hàng hàu — bạn có thể thiết lập bữa ăn đó thành “50% : 0% : 50%” để anh ấy không phải trả cho những gì anh ấy không ăn. Với v1.9, Splync giờ đây hỗ trợ tỷ lệ chia sẻ theo dự án, danh mục và chi phí trong một logic thống nhất. Nền tảng ổn định và hợp lý về mặt toán học. Thử thách tiếp theo là giao diện: một số ứng dụng chia sẻ khác cung cấp cách điều chỉnh tỷ lệ mượt mà, phong cách hơn. Splync giờ có sức mạnh phía máy chủ để hỗ trợ những cải tiến đó. Chúng tôi sẽ làm việc trên chúng từng bước.