Từ 2018, Golang nổi lên là một ngôn ngữ lập trình rất phù hợp để lập trình web, microservice cạnh tranh mạnh với (Node.js + JavaScript), (ASP.net Core + C#), (Spring Boot + Java), (Laravel + PHP). Đặc điểm của Golang là ngôn ngữ lập trình đơn giản dễ học, không có những pattern OOP phức tạp như C++, Java, C#, nhưng lại bổ sung tính năng xử lý đa nhiệm co-routine nhẹ và hiệu suất cao hơn tính năng multi-thread, khả năng trao đổi dữ liệu giữa 2 co-routing chạy song song. Golang được thiết kế để tối ưu hiệu suất thực thi đồng thời cho những nhiệm vụ kiểu như web application, microservice, multi-tasking processing.

Lập trình networking, TCP server bằng Golang cũng đơn giản như Node.js với event loop, non-blocking I/O, chính vì vậy mà có rất nhiều web framework được viết bằng Golang. Các start up sử dụng Golang sớm nhất và nhiệt tình nhất bởi vì học Golang dễ hơn Java, C# rất nhiều, code ngắn hơn, bộ nhớ tiêu thụ cũng ít hơn. Trung Quốc có Alibaba, Tencent, Baidu; ở Nga có cả một ngân hàng sử dụng Golang xây dựng hệ thống core banking; Uber, Grab sử dụng Golang làm back end service; ở Nhật có Line; ở VN có VinID, Lazada, FPT, Viettel, ..sử dụng Golang cho microservice.

So sánh Gin Iris 

là 2 web framework nổi tiếng viết bằng Golang được nhiều công ty ưa dùng.

Đánh giá qua Github

  Iris Gin
Ra đời 9/2016 6/2014
Watch (theo dõi) 701 1300
Star (thích) 19k 41.5k
Số commit 2045 1400
Tần suất cập nhật Khoảng 4 ngày Khoảng 1 tháng
Tài liệu kỹ thuật Cực tốt Vừa phải
Ví dụ mẫu Nhiều, chi tiết

Iris Examples

Ít và đơn giản

Gin Examples

Khác biệt lớn nhất giữa Iris và Gin là gì?

Tác giả iris mong muốn chọn lựa những tính năng tốt nhất, tối ưu nhất tích hợp luôn vào Iris. Do đó framework Iris gọi là full battery, full option (món đồ chơi có đầy đủ pin và phụ kiện). Iris được thiết kế và lập trình theo chủ ý của tác giả khá nhiều (biased). Ngược lại Gin thiết kế tối giản, không tích hợp nhiều chức năng có sẵn, lập trình viên tự chọn lựa bổ sung thêm.

Iris framework hỗ trợ đến 8 loại view template rendering engine (xem tại đây https://www.iris-go.com/docs#/?id=template-rendering). Gin hỗ trợ 1 view emplate engine (https://gin-gonic.com/docs/examples/html-rendering/), muốn dùng các template engine khác phải dùng lệnh router.SetHTMLTemplate. Không có gì đảm bảo gin hỗ trợ các view template engine khác nhau tốt.

Tác giả Iris luôn nỗ lực bổ sung tính năng mới nhất vào Iris. Còn tác giả của Gin ưu tiên ổn định hoá tính năng căn bản.

Những chức năng có trong Iris mà chưa có trong Gin:

  • Socket Sharding: mở rộng hàng ngang các iris app chạy trên các server nhiều CPU
  • Đóng gói các file template vào trong một file chạy chỉ có Iris.
  • Model binding trong Iris cũng đa năng hơn Gin.

So sánh tốc độ

Qua các bài kiểm thử đơn giản cho kết quả có thể kết luận, tốc độ xử lý request của Gin ngang với Iris.

Ưu điểm của Iris so với Gin

  1. Iris là framework đầy đủ tính năng hơn
  2. Dễ học hơn
  3. Tài liệu viết chi tiết hơn, được dịch ra nhiều thứ tiếng: Nga, Việt, Trung….
  4. Ví dụ đầy đủ, đa dạng hơn.
  5. Phù hợp để tạo REST API và cả ứng dụng Web Application

Ưu điểm của Gin so với Iris

  1. Ra đời trước 2 năm. Cộng đồng lập trình viên biết đến nhiều hơn
  2. Code base gọn hơn. Nếu chỉ dùng để tạo REST API thì ok

Kết luận

  1. Tốc độ Iris và Gin tương đương nhau
  2. Chức năng Iris đa dạng hơn còn Gin thì tối giản
  3. Tốc độ nâng cấp phiên bản Iris cũng cao, có thể rủi ro hơn xét về khía cạnh bảo mật
  4. Iris phù hợp phát triển ứng dụng web và REST. Còn Gin chỉ phù hợp phát triển ứng dụng REST, nếu lập trình Web App tương đối vất vả.

(https://techmaster.vn/posts/36007/so-sanh-2-framework-gogin-va-iris-framework)

About the Author

Ha Trung Vi

View all author's posts

Bài viết khác

Web Security

Khái niệm Web Security Web Security là tập hợp các nguyên tắc, biện pháp và công nghệ nhằm bảo vệ website, ứng dụng web và dữ liệu khỏi các hành vi truy cập trái phép, tấn công độc hại hoặc khai thác lỗ hổng. Nó không chỉ bao gồm việc ngăn chặn hacker, mà còn […]

Markdown

Markdown là một ngôn ngữ đánh dấu nhẹ (lightweight markup language) dùng để định dạng văn bản thuần túy (plain text), thường được sử dụng trong các tài liệu như README, bài viết blog, tài liệu hướng dẫn, và cả trong GitHub, Stack Overflow, hoặc các trình soạn thảo như VS Code, Obsidian… Markdown được […]

CSS

CSS (Cascading Style Sheets – tạm dịch: Tập tin định kiểu tầng) là ngôn ngữ dùng để mô tả cách trình bày (giao diện) của một tài liệu HTML. Nói đơn giản, CSS giúp làm đẹp trang web: chỉnh màu sắc, font chữ, bố cục, khoảng cách, hiệu ứng chuyển động, v.v. CSS được phát […]

HTML

HTML (HyperText Markup Language) là ngôn ngữ đánh dấu siêu văn bản, được dùng để xây dựng cấu trúc của một trang web. Nói cách khác, HTML cho trình duyệt biết nội dung nào sẽ hiển thị và hiển thị như thế nào (như tiêu đề, đoạn văn, hình ảnh, liên kết…). Một tài liệu […]

Browser

Browser (Web Browser, Trình duyệt web) là phần mềm trên máy tính, điện thoại hoặc thiết bị thông minh, cho phép người dùng truy cập, hiển thị và tương tác với các trang web, tài nguyên Internet. Về bản chất, trình duyệt gửi các yêu cầu (HTTP/HTTPS request) đến máy chủ web, nhận về mã […]

Tìm hiểu DNS

DNS là gì? DNS (Domain Name System) là một dịch vụ phân giải tên miền, giúp chuyển đổi các tên miền (ví dụ: www.ducphat.com) thành địa chỉ IP (ví dụ: 93.184.216.34) và ngược lại. Thay vì phải nhớ dãy số IP, chúng ta chỉ cần nhập tên miền, DNS sẽ tìm kiếm địa chỉ IP […]