Tại sao tôi chọn Kiến trúc HOWL (Hugo + Go)?
Thế giới Web đang bị đầu độc bởi những gã khổng lồ sinh ra từ hệ sinh thái JavaScript. Hàng chục Megabytes thư viện rác rưởi bị nhồi nhét vào trình duyệt của người dùng chỉ để hiển thị một trang văn bản tĩnh. Đó là một tội ác đối với tài nguyên điện toán.
Với top1server - Nơi chia sẻ tài sản trí tuệ nhân loại, tôi từ chối thỏa hiệp với sự cồng kềnh. Tôi đã đập bỏ hoàn toàn kiến trúc Node.js/Astro cũ và xây dựng lại từ đầu bằng HOWL Stack.
1. H (Hugo) - Máy phát điện HTML
Thay vì dùng JavaScript để render (hiển thị) giao diện tại trình duyệt (SPA) hay render tại máy chủ (SSR) làm nghẽn CPU, tôi dùng Hugo (được viết bằng Go). Hugo dịch toàn bộ hàng trăm ngàn bài viết Markdown thành HTML tĩnh trong vài chục mili-giây. Khi độc giả tải trang, họ chỉ nhận đúng nội dung văn bản thuần túy, nhanh như tốc độ ánh sáng.
2. O (Go - Golang) - Bộ não vĩ đại
Phần xử lý tương tác Động (Bình luận, Đăng nhập) được giao cho một máy chủ API siêu nhỏ gọn viết bằng Go. Go là ngôn ngữ biên dịch trực tiếp ra mã máy (machine code), không cần máy ảo (VM) như Java, không rườm rà như Node.js. Nó có thể phục vụ hàng vạn kết nối đồng thời chỉ với vài chục Megabytes RAM.
3. L (SQLite & Local/Bare-metal)
Tôi lưu trữ dữ liệu tại SQLite - CSDL dạng file cục bộ siêu tốc độ, không cần bảo trì, không sợ chết connection. Mọi thứ được chạy trực tiếp trên máy chủ thật (Bare-metal) thông qua sức mạnh định tuyến của Nginx, nói KHÔNG với sự phình to của Docker hay Kubernetes.
4. W (Web-Native với HTMX)
Làm sao để một trang HTML tĩnh có thể gửi bình luận mà không bị tải lại trang (reload)? Tôi dùng HTMX.
Không cần viết một dòng JavaScript nào, không cần API JSON. Chúng ta chỉ cần đính kèm thuộc tính hx-post vào thẻ HTML, và để máy chủ Go trả thẳng mảnh HTML mới vào giao diện.
Đây không chỉ là một trang web. Đây là bản Tuyên ngôn chống lại sự lố bịch của thế giới Lập trình Web hiện đại. Chào mừng bạn đến với top1server.
Bình luận