Go (often referred to as golang) is a programming language created at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added. The compiler and other language tools originally developed by Google are all free and open source. (Wiki)
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
-
First download GO windows installer
https://golang.org/dl/ -
For editor i suggest VS code. If you already dont have it please download overe here,
https://code.visualstudio.com/download -
Go lang VS code market place,
https://marketplace.visualstudio.com/items?itemName=lukehoban.Go -
How to Go programming in VS Code,
https://code.visualstudio.com/docs/languages/go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
A. Go to VS code terminal (View-->Integrated Terminal)
B. Tyep,cd "your test.go file loc"
Ex: cd E:\GOWP
C. Then type go run test.go
- Format your Go file using Shift+Alt+F
- Go To Definition F12 - Go to the source code of the type definition.
- Peek Definition Alt+F12 - Bring up a Peek window with the type definition.
- Find All References Shift+F12 - Find all references for the type.
A list of popular github projects related to Go web framework (ranked by stars automatically) Please update list.txt (via Pull Request)
Project Name | Stars | Forks | Open Issues | Description |
---|---|---|---|---|
gin | 15881 | 1853 | 208 | Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. |
beego | 14575 | 3196 | 454 | beego is an open-source, high-performance web framework for the Go programming language. |
martini | 10003 | 1049 | 1 | |
echo | 9799 | 834 | 102 | High performance, minimalist Go web framework |
iris | 9649 | 978 | 5 | The fastest web framework for Go on (THIS) Earth |
revel | 9621 | 1228 | 65 | A high productivity, full-stack web framework for the Go language. |
kit | 9461 | 955 | 45 | A standard library for microservices. |
httprouter | 6655 | 666 | 53 | A high performance HTTP request router that scales well |
fasthttp | 5926 | 519 | 152 | Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http |
mux | 5691 | 724 | 20 | A powerful URL router and dispatcher for golang. |
chi | 3296 | 231 | 14 | lightweight, idiomatic and composable router for building Go HTTP services |
go-json-rest | 3063 | 330 | 41 | A quick and easy way to setup a RESTful JSON API |
goa | 2679 | 268 | 34 | Design-based APIs and microservices in Go |
go-restful | 2602 | 400 | 7 | package for building REST-style Web Services using Google Go |
buffalo | 2517 | 190 | 47 | Rapid Web Development w/ Go |
macaron | 2277 | 215 | 12 | Package macaron is a high productive and modular web framework in Go. |
gizmo | 2135 | 130 | 8 | A Microservice Toolkit from The New York Times |
go-swagger | 2076 | 389 | 227 | Swagger 2.0 implementation for go |
armor | 1344 | 42 | 11 | Uncomplicated, modern HTTP server |
web | 1297 | 99 | 17 | Go Router + Middleware. Your Contexts. |
dotweb | 815 | 122 | 9 | Simple and easy go web micro framework |
tango | 700 | 104 | 9 | Micro & pluggable web framework for Go |
rest-layer | 642 | 47 | 35 | REST Layer, Go (golang) REST API framework |
goji | 616 | 44 | 3 | Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang) |
traffic | 515 | 26 | 0 | Sinatra inspired regexp/pattern mux and web framework for Go [NOT MAINTAINED] |
neo | 357 | 35 | 5 | Go Web Framework |
aegis | 140 | 5 | 5 | Serverless Golang APIs with AWS Lambda & API Gateway |
gorest | 27 | 1 | 2 | Tideland GoREST |
webgo | 22 | 2 | 2 | A very lightweight & simple web framework for Go |
- Go’s compilation speed is very fast as no VM is needed to execute Go program.
- Go can return more than one value whereas Java can’t. Every time you need to create object as there is no pointer support in Java.
- Garbage collection is pretty good in Golang.
- Golang have goroutine in order to achieve multitasking.
- A single thread in java takes more than 1 MB memory on heap whereas goroutine takes approx. 2 KB.
- You need to extend class from Thread class or implements Runnable interface and need to put your logic in run() in java , but in Golang you just need to write go keyword before function definition so it will make that function as goroutine.
- Also synchronization support is very good in golang.
- Go’s interface is more flexible as there is no support for inheritance. Inheritance makes things more complex in bigger projects.
https://github.com/Microsoft/vscode-go
https://github.com/derekparker/delve/tree/master/Documentation/installation
https://github.com/derekparker/delve/blob/master/Documentation/installation/windows/install.md
go get -u github.com/derekparker/delve/cmd/dlv
https://www.jetbrains.com/go/
VS Code
Web Strome
https://github.com/golang/go/wiki/SQLDrivers
https://github.com/denisenkom/go-mssqldb
cmd: go get github.com/denisenkom/go-mssqldb
https://github.com/go-sql-driver/mysql/
cmd: go get -u github.com/go-sql-driver/mysql