Định nghĩa của stack đi ngược số đông
- Triết lý phát triển cố ý chọn công nghệ thay thế thay vì công nghệ chủ lưu
- Khái niệm đối lập với stack tiêu chuẩn, do tác giả tự đặt tên
- Lựa chọn của tác giả:
- Ruby: Rails → Sinatra + DataMapper
- JavaScript: Prototype → MooTools
- Python: Django → Werkzeug + SQLAlchemy
- Hiện tại: React/Next.js → Solid/SolidStart
Sự trưởng thành đến từ khó khăn của stack đi ngược số đông
- Không có câu trả lời trên Stack Overflow nên phải tự phân tích mã nguồn → hiểu biết sâu sắc về công nghệ
- Ít người dùng nên thiếu hỗ trợ từ cộng đồng → trưởng thành thành người đóng góp mã nguồn mở, cảm giác thành tựu khi PR được merge
- Kinh nghiệm của tác giả:
- Mức độ trừu tượng thấp của Werkzeug → có được năng lực xây dựng framework in-house
- Quá trình bị gọi là "mò mẫm vất vả" → kiến thức nền tảng có thể áp dụng với bất kỳ stack nào
- Lợi ích: chiều sâu thấu hiểu kỹ thuật có được trong quá trình giải quyết vấn đề
Lợi thế của người đến sau
- Trải nghiệm các thiết kế được tạo ra để nhận ra và cải thiện vấn đề của stack tiêu chuẩn
- Ví dụ: fine-grained reactivity của Solid (tránh overhead virtual DOM của React)
- Lợi ích bất ngờ: hiểu được "vì sao" của công nghệ và rèn được cảm quan thiết kế kiến trúc tốt hơn
Giá trị ẩn của stack lắp ghép
- Stack tiêu chuẩn: bộ quà tổng hợp tiện lợi
- Rails(CoC), Django(Batteries Included), Next.js(full-stack)
- Stack đi ngược số đông: chọn từng linh kiện và tự lắp ráp thủ công
- Trường hợp của tác giả: Sinatra + DataMapper + Haml + Sass
- Sự gian nan trong việc cấu hình từng thành phần và nối middleware
- Lợi ích: hiểu trọn vẹn cơ chế vận hành bên trong của công nghệ và sự tương tác giữa các tầng
Bài học lịch sử
- Stack tiêu chuẩn của hôm nay cũng từng là stack đi ngược số đông của ngày trước (Rails → lựa chọn thay thế cho Java, React → lựa chọn thay thế cho Backbone.js)
- Lợi ích: vị thế người tiên phong khi trải nghiệm và thấu hiểu sớm công nghệ sẽ trở thành chủ lưu trong tương lai
Cơ hội nghịch lý trong thời đại LLM
- Ưu thế của stack tiêu chuẩn được củng cố hơn (ChatGPT thành thạo Next.js, nhưng chưa giỏi SolidStart)
- Lợi ích: chuyên môn ở những vùng mà LLM chưa làm tốt sẽ trở thành năng lực cạnh tranh khác biệt hơn nữa
- Con đường trưởng thành để trở thành kỹ sư thực thụ, không chỉ là người dùng framework
2 bình luận
Tôi chưa từng nghĩ SQLAlchemy là kiểu “ngược đời”, nên thấy khá lạ.
Có lẽ ý bạn là nói về Werkzeug hơn là SA. Vì thường người ta dùng Flask hoặc FastAPI mà. Ngay cả ORM mà cũng đi ngược số đông thì không dễ lắm.