Cài đặt và import dữ liệu trên Manticore, bỏ Melisearch vì tiếng Việt
Manticore nhìn thì có vẻ dễ dùng nếu bạn có một nguồn dữ liệu thuần như mysql và cài đặt Manticore trực tiếp trên máy thay vì chạy Docker, nhưng đây là một công cụ nhiều tùy chọn và mình muốn dùng Docker để chạy, import nhiều nguồn dữ liệu … Read more
Dependency Injection Trong Go: Từ DI Truyền Thống Đến Việc Áp Dụng Interface
Trong phát triển phần mềm, Dependency Injection (DI) là một kỹ thuật được sử dụng để giảm sự phụ thuộc giữa các module. Trong Go, phương pháp tiêm phụ thuộc qua constructor là một cách tiếp cận đơn giản, rõ ràng và idiomatic. Tuy nhiên, khi ứng dụng phát triển … Read more
Đếm chiều dài của chuỗi/xâu tiếng Việt Golang bằng utf8.RuneCountInString(string) thay vì len(string)
Trong Go, hàm len(s) trả về số byte trong chuỗi s. Tuy nhiên, các ký tự tiếng Việt như á, ê, đ, ư không chỉ là một byte. Chúng có thể chiếm 2–3 byte trong mã hóa UTF-8. Do đó ta nên dùng 1 hàm đặc biệt có tên RuneCountInString … Read more
Show HTML đơn giản với Golang Web app
Ảnh này show một Controller đơn giản trên golang, mình dùng go-chi. Ta có một template với tên “exam” và content thì chỉ có vài html đơn giản với 2 biến Title và Done. Ta tạo một annonymous struct (struct không tên, dùng 1 lần), rồi pass 2 value vào, … Read more
HTMX edge cases: hx-get khi không có hx-target và Golang
Thường hx-get =”” được dùng thay thế cho action và method trong form. Điểm đáng lưu ý là nếu không gán hx-target thì nó sẽ không hoạt động giống như action và method=”get” trong form. Cụ thể: nó sẽ không điều hướng sang route đã thiết lập trong hx-get=”/newroute”. Nguyên … Read more
So sánh Golang struct và Javascript object
Khi so sánh Golang và Javascript, struct và phương thức (method) (trong Golang) hoạt động tương tự như object trong JavaScript, nhưng cũng có những điểm khác biệt quan trọng. Điểm giống nhau: Điểm khác nhau: Tính năng Golang (struct + method) JavaScript (object) Hệ thống kiểu dữ liệu Kiểu … Read more
Mối quan hệ giữa CPU thread và Go rountines
Ảnh: https://golangbyexample.com/goroutines-golang/ Trong Golang, OS Thread và Goroutine có mối quan hệ chặt chẽ nhưng không phải 1:1. Dưới đây là sự khác biệt và cách chúng hoạt động cùng nhau: 1. OS Thread 2. Goroutine 3. Mối Quan Hệ giữa OS Thread và Goroutine 4. Các Thành Phần Chính … Read more
netcup AMD review
8GB RAM và 500 GB disk Đây là test của tocdo.io Đây là một VPS khác cùng netcup, location Mỹ dùng chip ARM Kiểm tra với tocdo.net (tocdo.io không support chip ARM)
Cài Caddy trên docker làm reverse-proxy cho Golang chạy trên host
Nghe tiêu đề hơi hoang mang, nhưng về cơ bản, mình sẽ trình bày một vài cài đặt với Caddy để dùng làm reverse-proxy cho ứng dụng Golang chạy trực tiếp trên host. Nếu dùng curl -I tới trang web đang chạy thì bạn sẽ thấy ngay được server đang … Read more