You can incorporate these code snippets into your larger programming modules. This repository is viewable on sourcegraph.com.
| Name | Description | 
|---|---|
| 00_persisting_go | Installing Go, persisting on systemd, Upstart | 
| 01_data_type | type, error, recursion, reference, sort, switch, type assertion | 
| 02_mongodb_aggregate_cli | aggregate data from mongodb displayed in CLI | 
| 03_mongodb_find_sort_cli | MongoDB Find All, Sort commands, results in CLI | 
| 04_get_url_variable | Get "FormValue" variable from URL | 
| 05_mongodb_crud_cli | Insert, Update, Drop, Find, Index commands, results in CLI | 
| 06_ajax_send_receive | Two Ajax examples: read and write | 
| 07_one_page_template | GO code and HTML template in one file | 
| 08_gowiki | Simple wiki example | 
| 09_todo_list_html | Todo list with struct and HTML template. | 
| 10_mongodb | Mongodb query results on HTML page in one go file. | 
| 11_socket_send_receive | Send/receive text between client/server via socket. | 
| 12_mgo_pipeline | Mongodb pipeline query saved in one go file | 
| 13_qr_barcode | QR code generator displays PNG image in browser. | 
| 14_read_txt_file | Compare ways to process TXT file | 
| 15_png_or_svg_barchart | generate bar chart, PNG or SVG | 
| 16_drop_down_menu_form | Form /w drop down menu, template with sub-templates | 
| 17_mysql_user_login | MySQL for user registration, login, and user list. | 
| 18_cookie_authentication | Authentication with cookies. | 
| 19_os_global_variables | Displaying all global system variables. | 
| 20_mongodb_crud | Mongodb CRUD with REST using httprouter & HTML templates | 
| 21_httprouter_template | html template with httprouter and ServeFiles | 
| 22_mongodb_crud_rest_html | Mongodb CRUD with REST using httprouter & HTML templates | 
| 23_file_uploader | Upload file and save on server | 
| 24_calculate_time | Time related features | 
| 25_https_static_files | Serve HTTP and HTTPS w/ NotFound for static files | 
| 26_url_not_found_handler | Custom Not Found handler. | 
| 27_mongodb_bulk_upsert | Mongodb bulk insert from TXT file | 
| 28_markdown | Generate Markdown using blackfriday | 
| 29_go_crud_json_api | REST API using JSON with httprouter. JavaScript is used to view, create, edit, and delete records. | 
| 30_mongodb_crud_json_api | REST API using JSON, httprouter, and toml, i/o to MongoDB | 
| 31_send_email | Send email with attachment | 
| 32_colorful_cli | Create colorful CLI | 
| 33_testing | Testing package example | 
| 34_channels | Buffered/unbuffered channels, forking channel, ranging over closed channel. | 
| 35_mongodb_pipeline_page | One page MGO aggregation with pipeline | 
| 36_concurrency_channel | Channel, waiting, concurrency, sleep, close, count, queue | 
| 37_html_template | Simple html template with Go | 
| 38_url_request_JSON | Convert data to/from JSON, get and parse file from URL | 
| 39_read_directory_content | List files adn sub folders in a given folder | 
| 40_cron_scheduler | Schedule processes | 
| 41_cli_arguments | Run cli utility with options using os.Args | 
| 42_upload_many_files | Upload multiple files from browser form to folder on a server. | 
| 43_resize_jpg_png_image | Resize images | 
| 44_csv_file | Read and write to CSV file. Parse CSV file to slice of objects. | 
| 45_image_exif_data | Get image attributes for each image in a folder. | 
| 46_video_capture | Capture video from web camera and display live. | 
| 47_download_slice_as_csv | Download link generates CSV or Tab Delimited file that can be saved localy on your computer. | 
| 48_keyboard_driver | Testing IOT devices | 
| 49_constructor | Example creating new package with allocation/constructor that accepts multiple types using interface. Experimenting with Readers and Writers. | 
| 50_golf_framework | A fast, simple and lightweight micro-web framework for Go | 
| 51_blur_image | Blur, Rotate, and Generate Thumbnails. | 
| 52_jpg_image_watermark | Add watermark to image | 
| 53_regular_expression | Validation, Find and replace, security | 
| 54_rotate_image | Image rotation in degrees from 1 to 360. | 
| 55_html_template_std_lib | HTML template using standard library packages | 
| 56_html_formatter | Work in similar fashion as go fmt, but on HTML files. | 
| 57_valid_interface | Interface as parameter. | 
| 58_GO_HTML_template | Go HTML template examples. | 
| 59_zip_and_unzip | Example for archive/zip package. | 
| 60_http_response_as_file | HTTP handler responds with a copied file. | 
| 61_logging_middleware | Save logs and error logs to file or database. | 
| 62_download_progress | Progress shown on CLI. | 
| 63_graphql_todo_example | One file GraphQL example. | 
| 64_ | |
| 65_books_example | MongoDB CRUD example. | 
| 66_server_sent_events | Live logs (events) from server to browser using the EventSource HTML interface. | 
| 67_stringutil | Reverse a string, test included | 
| 68_iota | Iota identifier is used in const declarations to simplify definitions of incrementing numbers. | 
| 69_JSON | JSON input/output examples | 
package main
import "fmt"
func main() {
	a := []string{"a", "b", "c", "d"}
	e := make([]string, len(a))
	copy(e, a)
	fmt.Println(e)
}// Figure out what type it is: maps, slices, or arrays!
package main
import (
	"fmt"
	"reflect"
)
func main() {
	// Declaring local variables
	map1 := map[string]string{"name": "John", "desc": "Golang"}
	map2 := map[string]int{"apple": 23, "tomato": 13}
	slice1 := []int{1, 2, 3}
	array1 := [3]int{1, 2, 3}
	// var m map[string]int
	// m = make(map[string]int)
	// More info Here: https://blog.golang.org/go-maps-in-action
	// Type, such as map[string]string, []int, [3]int
	fmt.Println("map1:", reflect.TypeOf(map1))
	fmt.Println("map2:", reflect.TypeOf(map2))
	fmt.Println("slice1:", reflect.TypeOf(slice1))
	fmt.Println("array1:", reflect.TypeOf(array1))
	// Value, such as map, slice, array.
	fmt.Println("map1:", reflect.ValueOf(map1).Kind())
	fmt.Println("map2:", reflect.ValueOf(map2).Kind())
	fmt.Println("slice1:", reflect.ValueOf(slice1).Kind())
	fmt.Println("array1:", reflect.ValueOf(array1).Kind())
	// True/False statement inside Printf
	fmt.Printf("%v is a map? %v\n", map1, reflect.ValueOf(map1).Kind() == reflect.Map)
	fmt.Printf("%v is a map? %v\n", map2, reflect.ValueOf(map2).Kind() == reflect.Map)
	fmt.Printf("%v is a map? %v\n", slice1, reflect.ValueOf(slice1).Kind() == reflect.Map)
}In Go, the code does exactly what it says on the page.
It’s the simplicity that makes Go awesome.
Go: Statically typed yet expressive language with a focus on concurrency.
Go strives to keep things small and beautiful.
What I would have done in Python, Java, Ruby, PHP, C, C# or C++, I’m now doing in Go.
The code must be like a piece of music.
Code less, compile quicker, execute faster.
Any of your code that you haven’t looked at for 6 or more months may as well have been written by someone else.
General guideline: accept interfaces, return structs
Go is simple but not easy.
- MongoDB connection
- MySQL connection
- Resize Images
- Set/Get Image tags
- SQLite connection
- Postgres connection
- React frontend

