- vừa được xem lúc

Tìm hiểu về ngôn ngữ lập trình Golang

0 0 13

Người đăng: Nguyễn Xuân Quang

Theo Viblo Asia

Golang là gì?

Go(Golang) là ngôn ngữ lập trình mã nguồn mở, được phát triển tại Google bởi Robert Griesemer, Rob Pike and Ken Thompson vào năm 2007.

Tại sao lại là Golang?

Vài năm gần đây có một sự phát triển mạnh mẽ trong giới ngôn ngữ lập trình mang tên Golang. Các tin tuyển dụng và Golang ngày càng nhiều hơn và chưa có dấu hiệu thuyên giảm, đặc biệt khi cơn sốt Blockchain đang nóng hơn khi nào hết. Rất dễ để bạn có thể tìm thấy 1 JD về Backend hoặc Blockchain có yêu cầu ngôn ngữ Golang hiện nay.

Tính tiện dụng của Go image.png

Go là một ngôn ngữ có tính tinh gọn trong cú pháp, hạn chế các cú pháp dài dòng như các ngôn ngữ khác.

Bởi vì Google là 1 big firm và có hàng ngàn developer làm việc trên cùng 1 mã nguồn nên Go được sinh ra đơn giản, dễ đọc dễ hiểu và hạn chế các side effect( thay đổi bên ngoài hàm) để các developer làm việc chung với nhau một cách nhanh và hiệu quả nhất.

Tốc độ nhị phân của Golang đương nhiễn sẽ có thể chậm hơn C++. Tuy nhiên hiệu suất làm việc giữa chúng lại không có sự chênh lệch nhiều. Và Golang cũng nhanh hơn các ngôn ngữ phổ biến khác như Java, Python, Ruby... Vì thế đây có thể xem là một điểm cộng cho Golang.

Go không có hàm khởi tạo (constructors).

Go không có chú thích (annotations) như Java.

Go không có try catch nhưng có Error handling, là một cơ chế xử lý lỗi đơn giản khác với try catch trên các ngôn ngữ khác dựa vào giá trị lỗi trả về của hàm.

Nhược điểm của Go

Có điểm mạnh tất nhiên cũng sẽ có điểm yếu. Đó là việc Go không có OOP(lập trình hướng đối tượng). Điều này sẽ khiến cho những bạn developer từ các ngôn ngữ lập trình hướng đối tượng như Java, C++ sẽ gặp chi ít khó khăn.

Không hỗ trợ thao tác trên con trỏ (vì lý do bảo mật).

Không hỗ trợ Generic. Điều này làm giảm khả năng reusable code và giảm hiểu quả trong quá trình phát triển. Vì là static-type nên khi hỗ trợ Generic có thể làm giảm tốc độ thực thi, làm mất đi tính chất đáng có của Go. Nhưng sau version 1.18 thì Go đã thông báo sẽ chính thức hỗ trợ Generic.

Phía sau lưng Go

Vâng, nếu ta lùi bước về sau thì sẽ thấy sau lưng chú chuột chũi này là Google. Một ông lớn có cơ sở hạ tầng về cloud server lớn nhất thế giới và nó đòi hỏi khả năng mở rộng cũng như tính hiểu quả cao. Do đó Golang được thiết kế để giải quyết các vấn đề đó.

Song đó các công ty lớn về nhiều lĩnh vực cũng đã và đang sử dụng Go để phát triển như BBC, IBM, Intel, Twitch, Dropbox, SoundCloud. https://d3hi6wehcrq5by.cloudfront.net/itnavi-blog/2020/11/Golang-là-gì-2.jpg Tóm lại

Go có sự khác biệt với các ngôn ngữ lập trình hướng đối tượng. Nhưng nó mang đến hiệu suất(performance) tốt như C/C++ và có trải nghiệm tốt khi viết code nhờ cú pháp tinh gọn như Python.

Để cải thiện hiệu suất của ứng dụng đừng ép phần cứng (hardware) phải làm việc cực lực mà hãy chia sẻ một phần gánh nặng đó cho các đoạn code, khi đó người dùng sẽ có trải nghiệm tốt hơn nhưng chi phí bỏ ra lại rẻ hơn.

Cuối cùng các bạn có thể tham khảo nhiều hơn về Go, cũng như cú pháp về Go có thể tìm kiếm dễ dàng trên google. Ngoài ra Google cũng có 1 tour du lịch mà các bạn newbie có thể trải nghiệm tại đây: https://go.dev/tour/welcome/1

Bài viết tham khảo:

Giới thiệu và cú pháp của Golang: https://viblo.asia/p/gioi-thieu-ngon-ngu-lap-trinh-golang-1VgZv9VrKAw

Tại sao nên học Golang: https://topdev.vn/blog/golang-la-gi-va-tai-sao-ban-nen-hoc-go/

Tìm hiểu về Golang: https://medium.com/@tinhuynh1/tìm-hiểu-về-golang-và-cách-cài-đặt-a31f6ab7f4de

Bình luận

Bài viết tương tự

- vừa được xem lúc

gRPC - Nó là gì và có nên sử dụng hay không?

Nhân một ngày rảnh rỗi, mình ngồi đọc lại RPC cũng như gRPC viết lại để nhớ lâu hơn. Vấn đề là gì và tại sao cần nó .

0 0 131

- vừa được xem lúc

Embedded Template in Go

Getting Start. Part of developing a web application usually revolves around working with HTML as user interface.

0 0 56

- vừa được xem lúc

Tạo Resful API đơn giản với Echo framework và MySQL

1. Giới thiệu.

0 0 60

- vừa được xem lúc

Sử dụng goquery trong golang để crawler thông tin các website Việt Nam bị deface trên mirror-h.org

. Trong bài viết này, mình sẽ cùng mọi người khám phá một package thu thập dữ liệu có tên là goquery của golang. Mục tiêu chính của chương trình crawler này sẽ là lấy thông tin các website Việt Nam bị deface (là tấn công, phá hoại website, làm thay đổi giao diện hiển thị của một trang web, khi người

0 0 237

- vừa được xem lúc

Tạo ứng dụng craw dữ liệu bing với Golang, Mysql driver

Chào mọi người . Lâu lâu ta lại gặp nhau 1 lần, để tiếp tục series chia sẻ kiến thức về tech, hôm nay mình sẽ tìm hiểu và chia sẻ về 1 ngôn ngữ đang khá hot trong cộng đồng IT đó là Golang.

0 0 75

- vừa được xem lúc

Golang: Rest api and routing using MUX

Routing with MUX. Let's create a simple CRUD api for a blog site. # All . GET articles/ .

0 0 54