Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Danh sách các Frameworks, công cụ và IDE hàng đầu của Golang

Chào mừng các bạn đến với Golang, trong bài viết này, mình sẽ nói về các frameworks, tools và IDE của Golang.

Kể từ khi được giới thiệu, ngôn ngữ lập trình của Google (Golang) đã ngày càng phổ biến trong số những người dùng chính thống. Trong một cuộc khảo sát tháng 12 năm 2016, 89% trong số 3,595 được hỏi cho rằng họ sử dụng chương trình Go cả trong và ngoài công việc.

Ngoài ra, Go xếp hạng cao nhất trong số các ngôn ngữ lập trình cả về mặt chuyên môn và sở thích.Vì vậy việc sử dụng Go là dễ dàng và đáng tin cậy.

Như một ngôn ngữ lập trình mã nguồn mở đã biên dịch, Go dễ dàng cho lập trình viên xây dựng phần mềm đơn giản, tin cậy và hiệu quả. Nó cung cấp sản phẩm của sự đổi mới và phát triển của các ngôn ngữ bảo thủ hơn như C và C++.

Với Go, số lượng mã giảm và viết các API mạnh mẽ hơn mà không làm mất hiệu suất của nó. Được thiết kế cho khả năng mở rộng và đồng thời, Go giúp tối ưu hóa có thể. Trình biên dịch có thể thực hiện tất cả công việc kiểm tra mã trước khi chạy.

Dưới đây là danh các frameworks, IDEs, và công cụ hàng đầu cho Golang để bạn tham khảo nhanh.

FRAMEWORK cho Golang!

Khung frameworks giúp đỡ lập trình viên xây dựng ứng dụng dễ dàng và nhanh nhất có thể. Go là vẫn còn tương đối mới, vì vậy điều quan trọng là sử dụng frameworks với tài liệu đầy đủ.

Dưới đây là 9 frameworks bạn có thể sử dụng giúp bạn xây dựng các dự án sử dụng ngôn ngữ Go.

1. Revel

Là framework có năng suất cao cho Go, Revel bao gồm một công cụ Hot Code Reload cho phép bạn xây dựng lại dự án của mình trên mọi thay đổi của tệp. Nó cũng bao gồm một loạt tính năng toàn diện và hiệu suất cao, vì vậy bạn không cần tìm kiếm các thư viện bên ngoài để tích hợp cho nó.

2. Beego

Beego là một framework chính thức của MVC với thư viện riêng, ORM và khung frameworks. Bạn không cần tìm kiếm và cài đặt thư viện bên thứ ba. Nó có một công cụ tích hợp được gọi là Bee Tool để theo dõi các thay đổi mã và chạy các tác vụ khi phát hiện các thay đổi.

Beego sẽ giúp bạn tiết kiệm rất nhiều thời gian khi bắt đầu dự án khi bạn hình dung về khung đăng nhập và cấu trúc ứng dụng.

3. Martini

Lấy cảm hứng từ Sinatra, Martini là một framework cực kỳ nhẹ nhưng mạnh mẽ. Nó được phát triển để viết các ứng dụng web và dịch vụ mô-đun ở Golang.

Nó có thiết kế chống xâm nhập, nhanh chóng, dễ sử dụng và bao gồm một loạt các trình xử lý và phần mềm trung gian. Nó có khả năng thực hiện định tuyến cơ bản, xử lý ngoại lệ và phục vụ tài liệu mặc định cho các ứng dụng AngularJS ở chế độ HTML5.

Tính năng tốt nhất của Martini là việc sử dụng sự phản chiếu của nó, cho phép các nhà phát triển chèn dữ liệu động vào các hàm xử lý và thêm các dịch vụ mới. Martini cũng hoàn toàn tương thích với giao diện http.HandlerFunc. Tuy nhiên, nhược điểm là Martini framework không còn được duy trì nữa.

package main

import "github.com/go-martini/martini"

func main() {
  m := martini.Classic()
  m.Get("/", func() string {
    return "Hello world!"
  })
  m.Run()
}

4. Gin Gonic

Gin Gonic là một web framework với một API giống như Martini, nhưng với hiệu suất tốt hơn nhiều. Nếu bạn đã sử dụng Martini trước đây, thì bạn sẽ quen thuộc với Gin Gonic. Nếu không, bạn sẽ chỉ mất 10 phút để học nó.

Gin Gonic là một framework tối giản chỉ bao gồm các thư viện và tính năng cần thiết nhất. Điều này làm cho nó hoàn hảo cho việc phát triển các API REST hiệu suất cao. Hơn nữa, nó nhanh gấp 40 lần Martini.

Bạn có thể thêm phần mềm trung gian, nhóm lồng nhau, xác thực JSON và hiển thị, nhưng nó vẫn duy trì hiệu suất tối ưu của nó. Gin Gonic sử dụng httprouter, bộ định tuyến HTTP nhanh nhất cho Go.

5. Buffalo

Xây dựng các ứng dụng web mới với Go nhanh chóng và đơn giản với Buffalo. Khi bạn bắt đầu một dự án mới, Buffalo đã thiết lập mọi thứ cho bạn - phát triển từ front-end đến back-end.

Nó có tính năng Hot Reloading, có nghĩa là lệnh dev sẽ tự động xem các tệp .go và .html của bạn. Sau đó nó sẽ xây dựng lại và khởi động lại mã nhị phân cho bạn. Chỉ cần chạy lệnh dev và bạn sẽ thấy các thay đổi xuất hiện ngay trước mắt!

Buffalo không chỉ là một khuôn khổ - đó là một hệ thống sinh thái phát triển web toàn diện cho phép bạn bắt đầu xây dựng ứng dụng của mình.

6. Goji

Goji là một web framework nhẹ và nhanh có khả năng kết hợp và đơn giản là ưu điểm chính. Giống như net/http.ServeMux, Goji là một bộ ghép kênh yêu cầu HTTP tối giản. Nó bao gồm hỗ trợ Einhorn, giúp bạn có hỗ trợ websocket trong Goji.

Các tính năng bổ sung bao gồm các mẫu URL, cấu hình lại các ngăn xếp trung gian, tắt máy và tải lại không thời gian chết khi kết hợp với Einhorn và hơn thế. Goji có thể được sử dụng trong sản xuất và đã phục vụ hàng tỷ yêu cầu trên một số tổ chức.

7. Tiger Tonic

Lấy cảm hứng từ Dropwizard, Tiger Tonic là một Go framework để phát triển các dịch vụ web JSON và xây dựng các API REST hiệu suất cao. Để đúng với các nguyên tắc của Golang, Tiger Tonic cố gắng giữ cho các tính năng trực quan.

Nhược điểm của Tiger Tonic là không đủ khi nói đến việc xây dựng các ứng dụng lớn, back-end.

8. Gocraft

Một framework mạnh mẽ nhưng tối giản, Gocraft cung cấp hiệu suất định tuyến nhanh và có thể mở rộng. Nó thêm định tuyến vào gói net / http từ thư viện chuẩn.

Gocraft là gói Go mux và middleware có tính năng truyền và phản chiếu để bạn có thể nhập mã của mình một cách tĩnh. Bạn cũng có thể thêm một chức năng tùy chọn với phần mềm trung gian tích hợp hoặc của riêng bạn viết.

Vì hiệu suất luôn là một trong những mối quan tâm hàng đầu cho các nhà phát triển, Gocraft là một lựa chọn tuyệt vời. Rất dễ dàng để viết các ứng dụng web phụ trợ bằng cách sử dụng Gocraft framework.

9. Mango

Mặc dù Mango không được duy trì tích cực bởi người tạo ra nó, Paul Bellamy, tuy nhiên rất nhiều người dùng Go vẫn sử dụng nó. Điều tuyệt vời về Mango là tính mô đun. Bạn có thể chọn từ nhiều thư viện khác nhau để đưa vào dự án của mình.

Mango cho phép bạn xây dựng các mô-đun có thể sử dụng lại chức năng HTTP nhanh chóng và dễ dàng nhất có thể. Nó biên dịch một danh sách phần mềm trung gian và ứng dụng vào một đối tượng máy chủ http duy nhất để giữ cho mã của bạn được bảo mật.

IDEs cho Golang!

Các IDE cho Golang đang trở nên phổ biến, cùng với ngôn ngữ Go. Mặc dù nhiều nhà phát triển vẫn thích sử dụng trình chỉnh sửa văn bản, nhiều người cũng thích sử dụng IDE.

Nếu bạn đang làm việc trên một dự án quy mô lớn với một codebase mở rộng, một IDE có thể giúp bạn tổ chức mã và điều hướng nó một cách dễ dàng. Hơn nữa, IDE có thể giúp bạn kiểm tra mã và chỉnh sửa chúng cho phù hợp.

Dưới đây là các IDE hàng đầu cho Golang!

1. Gogland

GoLand là một IDE thương mại mới của JetBrains nhằm cung cấp một môi trường làm việc cho sự phát triển của Go. IDE mới mở rộng nền tảng IntelliJ với tính năng hỗ trợ mã hóa, trình gỡ rối và thiết bị đầu cuối tích hợp.

2. Visual Studio Code

Được tạo bởi Microsoft, Visual Studio Code là một trình soạn thảo mã nguồn mở và mã nguồn mở đầy đủ tính năng, hỗ trợ rất nhiều ngôn ngữ lập trình. Nó có tính năng hoàn thành thông minh với IntelliSense; gỡ lỗi bằng cách sử dụng các điểm ngắt, ngăn xếp cuộc gọi và bảng điều khiển tương tác; tích hợp Git tích hợp; và thư mục phân cấp và tệp thám hiểm.

Là một IDE phổ biến khác, Visual Studio Code có một cộng đồng hỗ trợ các nhà phát triển Go thường xuyên đóng góp. Với Visual Studio Code, bạn có thể mở rộng các chức năng với hàng loạt các plugin có sẵn.

3. LitelDE

LiteIDE là một trong những IDE mã nguồn mở đầu tiên của Golang được tạo ra cách đây hơn 5 năm. Là một ứng dụng C ++ Qt với giao diện độc đáo, LiteIDE cung cấp quản lý mã, các lệnh xây dựng cấu hình, trình gỡ rối gdb và Delve, tự động hoàn thành và làm việc với WordApi, hệ thống dựa trên kiểu MIME và hơn thế nữa. Nó cũng cung cấp hỗ trợ JSON và Golang.

4. Wide

Wide là một IDE dựa trên web cho các lập trình viên Golang. Nó được thiết kế để phát triển cộng tác và hoạt động tốt nhất cho các nhóm và các cơ quan phát triển web. Các tính năng rộng bao gồm đánh dấu mã, gỡ lỗi, tích hợp Git và hơn thế.

Bởi vì Wide được tạo ra và duy trì bởi một nhà phát triển Trung Quốc nên hầu hết tài liệu và hỗ trợ của nó đều bằng tiếng Trung Quốc.

5. Atom with go-plus plugin

Nếu bạn đã sử dụng Atom, trải nghiệm chỉnh sửa mã của bạn trong Golang có thể được cải thiện với gói nguồn mở được gọi là go-plus. Với go-plus, bạn nhận được phản hồi tức thời, theo thời gian thực về cú pháp của mình và tạo lỗi.

Gói go-plus cung cấp gần như tất cả các hỗ trợ Golang trong Atom.

Go-plus cũng bao gồm các đoạn mã và các tính năng khác nhau như tự động hoàn thành với mã gocode, định dạng mã với gofmt, goreturns hoặc goimports và hơn thế nữa.

6. Eclipse with GoClipse

Bởi vì Eclipse là một IDE phổ biến rộng rãi, nhiều plugin đã được tạo ra cho nó. GoClipse là một plugin Eclipse cho Golang cung cấp tính năng chỉnh sửa mã nguồn Go với nổi bật là cú pháp có thể cấu hình, thụt lề tự động và hoàn thành cú đúp.

GoClipse cũng đóng vai trò như một trình thủ thuật dự án và trình xây dựng báo cáo cú pháp và xây dựng các lỗi nhanh chóng. Các tính năng bổ sung của GoClipse bao gồm chức năng gỡ lỗi và hỗ trợ mã.

7. Sublime Text with GoSublime

Sublime Text là một trình soạn thảo văn bản với cộng đồng là người đóng góp và nhà phát triển. Như vậy, một loạt các plugin đã được tạo ra cho IDE này.

GoSublime là một plugin Golang cho Sublime Text 3 cung cấp hoàn thành mã từ Gocode, kiểm tra lint/syntax trong khi bạn đang sử dụng mã dây, tự động thêm và xóa gói nhập và hơn thế.

8. Vim with vim-go plugin

Vim là một IDE nguồn mở miễn phí có thể được tùy chỉnh và cấu hình với các plugin khác nhau. Nếu bạn là một lập trình viên Golang, bạn có thể sử dụng Vim với plugin vim-go được tạo bởi Fatih Arslan. Vim-go tự động cài đặt tất cả các nhị phân cần thiết để cung cấp tích hợp Vim trơn tru cho Golang.

Vim-go là một bộ plugin mạnh mẽ để viết và phát triển Go. Các tính năng của nó bao gồm phân tích mã nguồn nâng cao, thêm và loại bỏ đường dẫn nhập, hỗ trợ nhiều lớp lót 3, định dạng goto, thực thi tệp nhanh và nhiều hơn nữa.

Vim-go có khả năng tùy chỉnh cao, với các tính năng riêng lẻ có thể được bật hoặc tắt theo nhu cầu.

9. Komodo

Komodo là một IDE ngôn ngữ Go đầy đủ tính năng hỗ trợ các ngôn ngữ lập trình khác như Node.js, Python, Ruby, Perl và nhiều thứ khác. Với IDE Go này, bạn có thể viết mã sạch dễ dàng. Các tính năng của nó bao gồm một trình soạn thảo mã nâng cao, hoàn thành mã thông minh, kiểm tra cú pháp, kiểm soát phiên bản và kiểm tra đơn vị, và Go Code Intelligence cho phép duyệt mã và gợi ý mã.

Điều tuyệt vời về Komodo là nó hoạt động tốt cho sự hợp tác nhóm vì nhiều nhà phát triển có thể chỉnh sửa tài liệu cùng một lúc. Komodo có thể được cài đặt trên Mac, Windows hoặc Linux chỉ với một giấy phép.

10. IntelliJ IDEA với ngôn ngữ Go (golang.org), hỗ trợ Plugin

IntelliJ IDEA (cùng một công ty như JetBrains) là một IDE có thể được sử dụng với Golang thông qua plugin hỗ trợ ngôn ngữ Go. Nếu bạn muốn sử dụng IntelliJ IDEA với Golang, bạn cần phải cài đặt plugin này, mặc dù với các tính năng hạn chế như trái ngược với Gogland.

Công cụ cho Golang!

Công cụ Golang có thể được sử dụng cho nhiều dự án và ứng dụng web khác nhau. Các nhà phát triển có thể viết mã và xây dựng các ứng dụng nhanh chóng và dễ dàng nhất có thể với các công cụ hữu ích này.

Dưới đây là 10 công cụ được sử dụng phổ biến ~

1. Apicompat

Apicompat là một công cụ ngôn ngữ Go mới giúp các nhà phát triển phát hiện ngược, các thay đổi không tương thích và các khai báo xuất ra.

Với Apicompat, bạn có thể tránh được những kết quả sai. Tuy nhiên, không phải mọi sự thay đổi không tương thích ngược có thể được phát hiện bởi Apicompat. Trao đổi các tham số đối số và các thay đổi khác vẫn cần phải được xem xét bởi tác giả thư viện.

2. Checkstyle

Lấy cảm hứng từ Java Checkstyle, Checkstyle cho Golang in ra các đề xuất kiểu mã hóa. Nó cũng cho phép các nhà phát triển kiểm tra dòng / chức năng của tập tin và số dòng / số, sau đó có thể được cấu hình bởi người dùng.

3. Depth

Depth là một công cụ Golang hữu ích khác giúp các nhà phát triển web truy xuất và hình dung các cây phụ thuộc mã nguồn Go. Nó có thể được sử dụng như một ứng dụng dòng lệnh độc lập hoặc như một gói cụ thể trong dự án của riêng bạn. Bạn có thể thêm các tùy chỉnh bằng cách chỉ cần thiết lập các cờ thích hợp trên cây trước khi giải quyết.

4. Go-Swagger

Bộ công cụ này bao gồm nhiều tính năng và chức năng khác nhau. Go-Swagger là một triển khai của Swagger 2.0, có thể tuần tự hóa và không tuần tự các thông số kỹ thuật của swagger. Đó là một đại diện tối giản nhưng mạnh mẽ cho API RESTful của bạn.

Với Go-Swagger, các tính năng bao gồm xác thực với jsonschema, tạo mã, tạo API dựa trên thông số vênh, tạo tài liệu đặc biệt dựa trên mã, định dạng chuỗi mở rộng và hơn thế nữa.

5. Go Meta Linter

Nếu bạn cần chạy các công cụ Go lint và đồng thời chuẩn hóa đầu ra của chúng, đó chính là điều mà Go Meta Linter có thể làm cho bạn. Go Meta Linter được dự định sẽ được sử dụng với trình soạn thảo văn bản hoặc tích hợp IDE như plugin Sublime Linter, gói go-plus Atom, trình kiểm tra Emacs Flycheck, Vim / Neovim và Go cho Visual Studio Code. Nó cũng hỗ trợ một loạt các tập tin cấu hình và linters như JSON.

6. Go-callvis

Go-callvis là công cụ phát triển web cho phép bạn trực quan hóa biểu đồ cuộc gọi của chương trình Go bằng định dạng dấu chấm của Graphviz. Công cụ này đặc biệt hữu ích khi xây dựng các dự án lớn với các codebase phức tạp. Điều này cũng hữu ích khi bạn muốn hiểu cấu trúc mã của nhà phát triển khác hoặc xây dựng lại dự án của người khác.

Với go-callvis, các nhà phát triển có thể tập trung vào gói cụ thể trong một chương trình, nhóm chức năng theo gói và phương pháp theo loại, giới hạn các gói cho các tiền tố đường dẫn tùy chỉnh và bỏ qua các gói chứa các tiền tố đó.

7. Gonative

Gonative là một công cụ Golang đơn giản cho phép bạn xây dựng các toolchains Go với các thư viện tự nhiên, có thể được biên dịch chéo trong khi vẫn sử dụng các phiên bản Cgo-enabled của các gói stdlib.

Tải xuống các bản phân phối nhị phân cho mỗi nền tảng và sao chép các thư viện của chúng vào vị trí thích hợp của nó. Đồng thời, Gonative đặt thời gian mod chính xác để tránh việc xây dựng lại không cần thiết.

Thật không may, Gonative vẫn chưa được kiểm tra trên Windows. Ngoài ra, không có hỗ trợ Linux/arm nào được cung cấp.

8. Grapes

Grapes là một công cụ Golang nhẹ được thiết kế để phân phối lệnh trên ssh dễ dàng. Nó được viết và tích cực duy trì bởi Yaron Sumel.

Grapes sẽ sớm hỗ trợ xác thực khóa máy chủ đầy đủ, đó là điều mà các nhà phát triển nên xem.

9. Gosimple

Điều tuyệt vời về Golang này là nó tập trung vào việc đơn giản hóa mã nguồn Go. Gosimple luôn nhắm mục tiêu phiên bản Go mới nhất, vì vậy nó yêu cầu Go phiên bản 1.6 trở lên.

Nếu có bản phát hành Go mới, gosimple sẽ đề xuất các phương pháp dễ nhất và đơn giản nhất để tránh các cấu trúc phức tạp.

10. Go Vendor

Go Vendor là công cụ Golang hoạt động với thư mục Vendor tiêu chuẩn. Nó cho phép các nhà phát triển sao chép các phụ thuộc hiện có từ $ GOPATH với govendor add / update. Bạn cũng có thể trực tiếp kéo các phụ thuộc mới hoặc cập nhật các phụ thuộc hiện có bằng cách tìm nạp govendor và di chuyển các hệ thống cũ bằng di chuyển govendor.

Via Techmaster