Chuyển đến nội dung chính

Go (Golang) Là Gì

Ngôn ngữ Go hay còn gọi là Golang là một ngôn ngữ lập trình được phát triển tại Google vào năm 2007 bởi Robert Griesemer, Rob Pike và Ken Thompson.
Golang thuộc kiểu ngôn ngữ lập trình biên soạn compiled language, điều này có nghĩa tập tin chứa mã nguồn (source code) viết bằng Golang không thể chạy được trực tiếp bởi máy tính. Thay vào đó chúng ta cần biên soạn (compile) tập tin này sử dụng phần mềm biên soạn mã nguồn (hay compiler) để tạo ra một tập tin khác chứa mã máy. Sau đó máy tính mới có thể chạy tập tin đã được biên soạn này.
Golang compilder là phần mềm hoàn toàn miễn phí.

Đặc Điểm của Golang

Các đặc điểm nổi bật của ngôn ngữ Golang có thể liệt kê ra gồm có:
  • Go là ngôn ngữ lập trình biên soạn (compiled language). Phần mềm viết bởi Go cần được biên soạn sử dụng Go compile trước khi có thể chạy được.
  • Go có cú pháp tương tự như C.
  • Go là một ngôn ngữ lập trình kiểu tĩnh (hay static type), các biến hoặc dữ liệu trong Golang sẽ không thay đổi trong suốt chương trình.
  • Golang hỗ trợ xử lý đa luồng multi-threading.
  • Golang hỗ trợ tính năng quản lý bộ nhớ mạnh mẽ mà C không có.
  • Golang sở hữu một bộ thư viện phong phú mà lập trình viên có thể tận dụng.
Ngôn ngữ lập trình Go đã được ra mắt cộng đồng vào tháng 11 năm 2009 và được sử dụng trong một số hệ thống phần mềm của gã khổng lồ công nghệ Google. Ngoài ra Golang cũng là ngôn ngữ được sử dụng để viết phần mềm nổi tiếng Docker.

Tại Sao Dùng Golang

Đặc điểm nổi bật của Golang đó là tốc độ xử lý nhanh và hỗ trợ xử lý đa luồng. Golang thường được sử dụng để viết các ứng dụng chạy trên server như webserver.
Golang cũng cung cấp bộ thư viện hỗ trợ việc kết nối với các hệ quản trị cơ sở dữ liệu phổ biến như MySQL, PostgreSQL... giúp chúng ta lập trình các ứng dụng web mạnh mẽ.

Nhận xét

Bài đăng phổ biến từ blog này

Tổng quan Multi tenancy

Multi tenant là gì ? Multi-Tenant - Multi-tenancy có nghĩa là một phiên bản duy nhất của phần mềm và cơ sở hạ tầng hỗ trợ của nó phục vụ nhiều khách hàng. Mỗi khách hàng chia sẻ ứng dụng phần mềm và cũng chia sẻ một cơ sở dữ liệu. Dữ liệu của mỗi người khách hàng bị cô lập và vẫn vô hình đối với những khách hàng khác. Lợi ích của Multi tenant Chi phí thấp hơn thông qua tính kinh tế theo quy mô: Với nhiều khách hàng, nhân rộng có ý nghĩa cơ sở hạ tầng ít hơn nhiều so với giải pháp lưu trữ vì khách hàng mới có quyền truy cập vào cùng một phần mềm cơ bản. Hơn nữa, người dùng không cần bận tâm về việc cập nhật các tính năng và cập nhật mới, họ cũng không cần phải trả phí bảo trì hoặc chi phí khổng lồ. Các bản cập nhật là một phần của đăng ký hoặc, nếu phải trả bất kỳ khoản phí bảo trì nào, nó được chia sẻ bởi nhiều người thuê, do đó làm cho nó trở thành danh nghĩa (nhân tiện, bao gồm các bản cập nhật). Kiến trúc Multi tenant phục vụ hiệu quả tất cả mọi người từ các khách hàng...

Multi tenant là gì ?

Bài toán hướng multi-tenancy trong thực tế gặp rất nhiều, nhưng có rất nhiều developer chưa nắm được khái niệm và cách thức hoạt động của các hệ thống thiết kế theo hướng này. Qua một thời gian nghiên cứu và phát triển các hệ thống, mình đúc rút một số kinh nghiệm muốn chia sẻ cho mọi người. Thực tế ta bắt gặp rất nhiều hệ thống sử dụng multi-tenacy vd: - Hệ thống quản lý cửa hàng cho phép nhiều đại lý có thể truy cập với những tài khoản độc lập, dữ liệu độc lập, nhưng cùng chung 1 hệ thống site. - Hệ thống quản lý công văn sử dụng trong tổng công ty và nhiều công ty con, cùng site nhưng dữ liệu độc lập. - Hệ thống quản lý dự án Jira - Hệ thống CRM của zoho, saleforce... Nhiều hệ thống sử dụng SQL server, Oracle ... thiết kế hệ thống multi-tenancy theo một trong các kiến trúc sau. Phương án I . Cùng chung một cơ sở dữ liệu (database), chia sẻ bảng (table) Tất cả các bảng liên quan đều có 1 khóa ngoại là ShopId. Dữ liệu sản phẩm của từng shop đều được lưu chung trong bả...

THIẾT KẾ DATABASE THEO HƯỚNG MULTI-TENANCY

Phương án I. Cùng chung một cơ sở dữ liệu (database), chia sẻ bảng (table) Ví dụ: Một hệ thống quản lý cửa hàng, có bảng shop, bảng sản phẩm (product), bảng acccount Bảng shop Shop ( Id, Name, Notes) Bảng user User( Id, Name, UserName, Password, ShopId ) Bảng product Product ( Id int, Code varchar(50), Name varchar(255), ShopId) Tất cả các bảng liên quan đều có 1 khóa ngoại là ShopId. Dữ liệu sản phẩm của từng shop đều được lưu chung trong bảng Product, nhưng được phân biệt nhau bởi trường ShopId. Điểm mạnh: - Thiết kế lưu trữ đơn giản. - Dễ cho việc phát triển. - Không gặp phải vấn đề đồng bộ cấu trúc bảng trong quá trình phát triền. Nhược điểm: - Không độc lập database nên việc một shop có thể xem dữ liệu của shop khác nếu có quyền truy cập SQL, phân quyền trên SQL thực sự là vấn đề lớn. - Vấn đề backup, restore dữ liệu cho từng shop là gần như không thể, chỉ có thể backup cho tất cả. - Vấn đề phát sinh thực sự phức tạp khi dữ liệu phình ...