Bắt đầu bằng ý niệm LazyCamHud "phải chạy được trên mọi nền tảng". Rồi vài tiếng sau thấy mẹ luôn, nhận ra rằng "mọi nền tảng" thực ra là nhiều hệ điều hành, hàng chục thiết bị các version với triết lý hoàn toàn khác nhau.
Quyết định dùng Tauri nghe hoàn toàn hợp lý. Một codebase cho Windows, Linux, macOS, code theo kiểu web, đóng gói gọn nhẹ. Nhưng quên mất một điều sản phẩm của mình lại không phải cái web app bình thường. LazyCamHudNó đụng vào những thứ rất sát với phần cứng như streaming, recording, encdoing, multimedia pipeline, quản lý thiết bị, hiệu năng CPU, render ở thời gian thực.
Tới lúc ấy, cái đa nền tảng bắt đầu lộ rõ cái giá đắt của nó.
Linux nào là Waylan, X11 còn WIndows thì multimedia API khác hẳn. MacOS lại có AVFoundation. Tặc lưỡi chọn FFmpeg để cứu tất cả bằng cách đưa binary này vào ứng dụng theo kiểu sidecar, gọi chúng vào pipeline xử lý video theo kiểu subprocess.
Tới tối lại muốn sản phẩm tiến hoá thêm có thể chạy trên iPhone, iPad để đi cất cứ đâu cũng có thể mở máy lên là quay vlog được. Ngay lập tức, giá trị cốt lõi đa nền tảng phải trả giá cực đắt, dẫn tới việc sụp đổ hoang tàn. iOS không cho chạy subprocess theo kiểu desktop nên FFmpeg trở thành gánh nặng thay vì một giải pháp cứu cánh.
Sự ngu dốt của việc chọn kiến trúc. Một kiến trúc tốt không phải là kiến trúc phục vụ nhiều khả năng nhất. Mà một kiến trúc tốt là kiến trúc phục vụ đúng mục tiêu nhất.
Nếu ngay từ đầu chỉ xác định mục tiêu:
-
Chỉ làm cho hệ sinh thái Apple.
-
Previewing, Streaming và Recording là tính năng cốt lõi.
-
Trải nghiệm trên iPhone, iPad quan trọng ngang desktop.
-
Cần hiệu năng multimedia cao.
Thì lúc ấy sẽ chọn luôn hệ sinh thái native của Apple cho rồi, để dễ dàng đồng bộ cho hệ sinh thái. Tauri, Electro hay FFmpeg không còn là các ứng cử viên sáng.
Cũng do một phần không có kinh nghiệm làm Desktop app, thấy người ta bảo Tauri hay lắm nên cũng đú bẩn theo. Mình vừa làm, mình vừa khoe và tâm sự với Phony
[10/7/26 17:46] Cookie Hân Hoan: vừa bổ xung tính năng livestream
[10/7/26 17:46] Cookie Hân Hoan: đúng kiểu mình k có knowledge về phần này
[10/7/26 17:46] Cookie Hân Hoan: làm như chó xem tát ao
[10/7/26 17:46] Cookie Hân Hoan: :D
[10/7/26 17:46] Cookie Hân Hoan: tất cả chỉ là quan sát hiện tượng và bảo nó fix theo hiện tượng chứ k nhìn ra dc root cause
[10/7/26 17:46] Cookie Hân Hoan: mình đần vl :D
[10/7/26 19:37] Vũ Phong in reply to Cookie Hân Hoan:
> đúng kiểu mình k có knowledge về phần này
Nó dắt cho ngu người nhỉ :)))
Hơi AQ bản thân một tí thì cũng rất khó để nhìn thấy cái đích đến khi mọi thứ mới chỉ trong đầu thay vì thực sự bắt tay vào làm. Và sự cậu thả và chủ quan khi nghĩ AI có thể làm tất cả mọi thứ mới cho ra cái sản phẩm như nồi cám heo này. Càng hời hợt bao nhiêu thì chất lượng sản phẩm càng tệ bấy nhiêu.
[12/7/26 10:50] Vũ Phong in reply to Cookie Hân Hoan:
> ngồi vibe cái này, nhận ra một điều,...
kể cả trong thời AI thì good by design vẫn quan trọng nhỉ
[12/7/26 10:50] Vũ Phong: kiểu scoping các thứ ý
[12/7/26 10:51] Vũ Phong: mà e nhận ra lúc e vibe mấy cái tech mà e hiểu rõ, e bảo nó sửa nhiều phần vl, xong giờ lúc mình vibe mấy cái tech mà mình không active learning từ trước
[12/7/26 10:51] Vũ Phong: mình bị sợ 😄
[12/7/26 10:56] Cookie Hân Hoan: k có kiến thức thì phải trả giá lớn quá