1. Denpendency Injection Khi phân tầng, Handler gọi xuống tầng Usecase qua một hàm, tạm gọi GetUser, tại tầng này GetUser gọi xuống Repo/Storage thông qua Contructor của một struct đã inject Interface X. Dĩ nhiên X chứa phương thức xử lý dữ liệu cho tầng Repo. Tầng business có thể gọi Repo thông qua biz.store.GetUser(). Lúc này Go sẽ tìm có method nào đã implement đúng phương thức của interface X trùng tên, trùng chữ ký và thực hiện nó. 2. Hàm trả về hàm Là closure. Ứng dụng trong viết Handler, Middleware ... Khi có Request gửi đến, GIN/ECHO... gọi hàm xử lý, ví dụ func (ctx *gin.Context) . Hàm này không thể truyền DB vào được, nên viết handler dưới dạng Closure để truyền DB. Việc giữ được trạng thái riêng của Closure giúp cho router có thể tạo riêng handler có nhiều DB khác nhau mà không ảnh hưởng. Tương tự với việc xử lý channel trong Routine và tùy biến Middleware. 3. Hàm nhận và trả về Interface. a. Hàm nhận vào 1 Interface: Hàm nhận vào interface thì nó nhận vào...
1. Chỗ làm có một dự án làm trang trại ngay ngoại thành Hà Nội. Tôi trót ngồi nghe buổi thuyết trình thành ra "được" mời đi thực địa kiêm cửu vạn. Tôi không đi xe máy nên hẹn năm rưỡi sáng sẽ có một em nhân viên qua đón. Tôi thức từ hai giờ sáng, đến chỗ hẹn trước mười phút, đợi thêm 30 phút mà chả thấy em đâu. Lúc đó tôi nghĩ bụng, thôi đợi anh mày đi làm chính thức, anh sẽ chỉnh cả lũ chúng mày về mặt thời gian sau. Thật tình tôi cũng còn chưa nhớ hết tên hết mọi người, một số còn chưa gặp vì các bạn ấy đi dự án suốt, thi thoảng mới tạt qua văn phòng. Buổi hôm nay tôi muốn đi cũng để dần làm quen với mọi người. Thằng em rốt cuộc cũng tới, nó bảo do quên đồ nên phải chạy lại về nhà lấy nên đến trễ. Hai anh em tới văn phòng gặp thì gặp bé Oanh đang đợi, lát sau bạn phó giám đốc tên Vân cũng vừa tới. Bạn mời mình ăn xôi, còn dặn, ăn đi không lát nữa đói chịu không thấu. Hồi ngồi trong văn phòng, mấy đứa em đều có cảm tình với Vân, bảo tôi là chị ấy dễ chịu nhất công ty. Hôm na...
Comments
Post a Comment