Hẳn chúng ta ai cũng quen làm việc với các REST API. Tuy nhiên, trong môi trường microservice, việc sử dụng REST API để giao tiếp giữa các service sẽ gây ra độ trễ đáng kể. gRPC ra đời để giải quyết vấn đề này. Trong blog này mình sẽ trình bày nội dung cơ bản liên quan đến gRPC và làm một todo list app demo để chúng ta biết cách sử dụng gRPC trong thực tế nhé. 1. gRPC là gì gRPC là một RPC platform được phát triển bởi Google nhằm tối ưu hoá và tăng tốc ... »
Như chúng ta đa biết tác giả của ngôn ngữ golang chính là google, gần đây có nhiều dự án, công ty lớn chuyển sang sử dụng ngôn ngữ golang với lý do là hiệu suất tăng lên đáng kể ví dụ như Docker cũng đang sử dụng ngôn ngữ golang. Nhưng nói về hiệu suất như chúng ta đã biết Node.js cũng là một ngông ngữ lập trình được nhiều công ty, dự án lớn lựa chọn. Trong bài viết này chúng ta thử tìm hiểu sự khác nhau giữ Node.js và Golang ra sao I. Node. ... »
1. ORM là gì? Trước hết để hiểu được thư viện Gorm chúng ta cần tìm hiểu về ORM, một công cụ quan trọng và thường xuyên được áp dụng trong quản trị cơ sở dữ liệu. ORM là tên viết tắt của cụm từ “Object Relational Mapping” đây là tên gọi chỉ việc ánh xạ các record dữ liệu trong hệ quản trị cơ sở dữ liệu sang dạng đối tượng mà mã nguồn đang định nghĩa trong class. Là một khái niệm phổ biến, được cài đặt trong tất cả các loại ngôn ngữ hiện đại ngày nay ... »
I. Mô tả bài toánGiả sử ta đã có 1 REST API và API này có các endpoint là GetGetEntries, GetEntryByID, CreateEntry, UpdateEntry và DeleteEntry. Tương ứng với chúng là các đường dẫn như bên dưới: GetEntries -> "/entries" -> Method GET GetEntryByID -> "/entry?id=1234" -> Method GET CreateEntry -> "/entry" -> Method POST UpdateEntry -> "/entry" -> Method PUT DeleteEntry -> "/entry" -> Method DELETE Những endpoint này sẽ giúp ta tương tác với 1 struct có tên là entry type entry struct { ID int `json:" ... »
Trong bài blog trước, mình đã giới thiệu về tính hướng đối tượng trong ngôn ngữ Go của Google. Lần này mình sẽ điểm qua những điểm thuận lợi và cả những điểm bất lợi khi sử dụng ngôn ngữ Go. I. Thuận lợi1. Tính đơn giản Mặc dù Go có thể không phổ biến như JavaScript hoặc Python, nhưng nó có một điểm chung quan trọng với JavaScript và Python là nó rất dễ hiểu. Cú pháp rõ ràng dễ tiếp cận với người mới và không có nhiều hàm phức tạp mà bạn phải học so với các ... »
I. Xuất thânGo hay Golang là ngôn ngữ lập trình được tạo bởi Google (bao gồm các lập trình viên của Google và các lập trình viên khác). Ngôn ngữ lập trình này là miễn phí và là mã nguồn mở và hiện đang được Google duy trì. Một trong những thành viên sáng lập của Go là Ken Thompson, người nổi tiếng với công việc phát triển hệ điều hành Unix. Trình biên dịch Go ban đầu được viết bằng C nhưng bây giờ, nó được viết bằng chính Go. II. Vì sao Go được sinh ra?Bốn điều ... »
IntroLập trình concurrency (đa luồng) là một chủ đề khó nhằn đối với mọi ngôn ngữ lập trình (đã có kha khá đầu sách viết về chủ đề này đối với mỗi ngôn ngữ). Với một ngôn ngữ sinh ra để xử lý các vấn đề về backend cho Google như Go, concurrency là một trong những vấn đề được chú trọng hàng đầu và được gói gọn trong câu slogan sau: Do not communicate by sharing memory; instead, share memory by communicating.Go khuyến khích cách tiếp cận mỗi thread chỉ access đến giá trị chia sẻ tại đúng ... »
Series lập trình blockchain với Go Block và blockchain sơ khai Proof of Work Lời mở đầu Qua hai bài viết trước của series, chúng ta đã lập trình được một blockchain đơn giản với khả năng mining để tạo block mới sử dụng thuật toán Proof of Work. Tuy nhiên, thông tin tất cả các block vẫn chưa được lưu trữ cố định và sẽ biến mất hoàn toàn khi chương trình kết thúc. Chương trình blockchain cũng chưa có một giao diện câu lệnh (CLI) để người dùng có thể tương tác một cách dễ dàng hơn. Trong ... »