1. Nghe nhạc cổ điển, cố nghĩ xem đoạn nào là chủ đề, đoạn nào là đoạn phát triển, đoạn nào là nhắc lại. Hoặc nghe bè trung, bè trầm (đừng để ý đến bè cao, thường là bè giai điệu). Để đầu óc hoạt động một tí sẽ đỡ thấy nhàm, còn nói như anh gì người Pháp là Tôi tư duy là tôi tồn tại chứ không phải ăn hại, kiểu thế. 2. Chơi nhạc (nếu bạn biết) và nghĩ về một thứ đang băn khoăn. Thường sẽ ra những kết quả bất ngờ. Có thể thay chơi nhạc bằng những thứ khác sửa xe, tưới cây, sắp lại đồ đạc, vân và mây mây. 3. Đọc sách/ xem phim: Ai cũng làm được. 4. Dọn nhà: Việc này hơi khó khăn lúc khởi đầu, nhưng xong rồi thì nó rất đáng. Nhìn cái nhà gọn gàng sạch đẹp, giá sách hết bụi, cốc chén nằm yên trong chạn thì thấy đời vui vẻ hơn nhiều. 5. Giải toán cấp 1,2: Hay phết đấy. 6. Khi các cách trên mà không hiệu quả hoặc bạn không muốn làm thì có thể làm theo mình, đó là nhắn cho sếp là hôm nay em nộp báo cáo.
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...
Comments
Post a Comment