Book Image

Hands-On Full Stack Development with Go

By : Mina Andrawos
Book Image

Hands-On Full Stack Development with Go

By: Mina Andrawos

Overview of this book

The Go programming language has been rapidly adopted by developers for building web applications. With its impressive performance and ease of development, Go enjoys the support of a wide variety of open source frameworks, for building scalable and high-performant web services and apps. Hands-On Full Stack Development with Go is a comprehensive guide that covers all aspects of full stack development with Go. This clearly written, example-rich book begins with a practical exposure to Go development and moves on to build a frontend with the popular React framework. From there, you will build RESTful web APIs utilizing the Gin framework. After that, we will dive deeper into important software backend concepts, such as connecting to the database via an ORM, designing routes for your services, securing your services, and even charging credit cards via the popular Stripe API. We will also cover how to test, and benchmark your applications efficiently in a production environment. In the concluding chapters, we will cover isomorphic developments in pure Go by learning about GopherJS. As you progress through the book, you'll gradually build a musical instrument online store application from scratch. By the end of the book, you will be confident in taking on full stack web applications in Go.
Table of Contents (15 chapters)
Free Chapter
1
Section 1: The Go Language
5
Section 2: The Frontend
8
Section 3: Web APIs and Middleware in Go

Panics, recovers, and defers

In Go, there is a special built-in function called panic. When you invoke panic in your code, your program is interrupted, and a panic message is returned. If a panic gets triggered and you don't capture it in time, your program will stop execution and will exit, so be very careful when you use a panic. Here is a code example:

func panicTest(p bool) {
if p {
panic("panic requested")
}
}

In the preceding example, we wrote a function that checks a flag, p. If p is true, then we throw a panic. The argument to the panic function is the message that wants the panic to return. Here is a more complete program that you can run in Go's playground (http://play.golang.org):

package main

import "fmt"

func main() {
panicTest(true)
fmt.Println("hello world")
}

func panicTest(p bool) {
if p {
panic("panic requested...