O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Modern Golang Programming

Video Description

Learn how to use the Go language open source third party ecosystem to build sophisticated production applications

About This Video

  • Get practical overview of the Go language

  • Explore popular SQL databases such as MySQL, PostgreSQL and SQLite

  • Learn about the GORM ORM layer

  • Build Go applications that can work with Mongodb

  • Learn the concepts of time series databases with InfluxDB

  • Learn protocol buffers version 2 and 3

  • Explore gRPC support in Go

  • Dive into the Gorilla web toolkit, REST APIs, Gorilla websockets, and Gorilla cookies

  • Understand the Hero templating engine

  • In Detail

    Go is the language of the Internet age, because it was built from the ground up to support modern distributed web software. Go is also cross-platform as it compiles to numerous operating systems and CPU architectures via simple commands. It compiles to native binaries, it doesn't use a VM, and is garbage-collected, which makes it a breeze to deploy in production environments.

    Throughout the course, we will use modern open source third party packages in Go to build a distributed application that will support several databases, establish efficient serial communications techniques, and construct an advanced web layer with templates, cookies, and websockets support.

    We will start with a refresher on Go's primary building blocks. From there, we will explore numerous open source packages that allow working with a variety of databases in a production environment as well as an ORM layer. We will then explore building reliable and robust microservices that communicate efficiently with each other via fast serialization and RPC techniques. Finally, we will develop knowledge on powerful third party templating engines and web toolkits, to construct a modern web layer with a RESTful API.

    Table of Contents

    1. Chapter 1 : Eloquent Go
      1. The Course Overview 00:06:49
      2. Go Building Blocks 00:29:35
      3. Advanced Data Structures - Arrays and Slices 00:18:22
      4. Maps and Structs 00:10:09
      5. References, Defers, Panics, and Recovers 00:11:22
      6. Concurrency: Goroutines and Channels 00:16:54
      7. Concurrency: Buffered Channels and Select 00:15:47
      8. Methods and Interfaces 00:30:16
      9. A Tour into Go's Packages 00:20:29
      10. A Further Tour into Go's Packages 00:17:14
      11. MicroServices Architecture 00:09:58
      12. Project Dino: Building Go Services 00:13:28
      13. Project Dino: Running the Microservice 00:23:38
    2. Chapter 2 : Go with Databases in the Wild
      1. MySQL 00:18:55
      2. Building Go Code in MySQL 00:22:39
      3. PostgreSQL 00:16:22
      4. Building Go Code in PostgreSQL 00:38:56
      5. SQLite 00:25:42
      6. ORM: GORM I 00:20:00
      7. ORM: GORM II 00:25:08
      8. Go with NoSQL: MongoDB I 00:20:58
      9. Go with NoSQL: MongoDB II 00:23:29
      10. Introduction to Influxdb 00:13:24
      11. Writing Go Applications for Influxdb 00:05:47
      12. Writing Data to Influxdb 00:42:41
      13. Reading Data from Influxdb 00:11:42
      14. Dino Database Layer 00:39:39
    3. Chapter 3 : Communicating in the Wild
      1. Introduction to Protocol Buffer v2 00:22:16
      2. Writing a Protocol Buffer 2 Application 00:28:38
      3. Introduction to Protocol Buffer v3 00:19:59
      4. Writing a Protocol Buffer 3 Application 00:16:24
      5. Introduction to gRPC 00:25:31
      6. Implementing a gRPC Server in Go 00:11:42
      7. Implementing a gRPC Client in Go 00:26:03
    4. Chapter 4 : Production Web Applications
      1. Web RESTful APIs 00:30:16
      2. Building Restful API for Your Project 00:32:20
      3. Building a Front End 00:32:50
      4. Dino Front End: Template Loops 00:15:08
      5. Dino Project: Backend 00:14:20
      6. Websockets: Client Side 00:13:18
      7. Websockets: Server Side 00:16:17
      8. Cookies 00:22:42