Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Complete Guide to Application Development with Go
Rating: 3.9 out of 5(24 ratings)
213 students

Complete Guide to Application Development with Go

Unlock the mysteries of Go to build powerful applications with amazing tips and techniques to dodge common roadblocks
Last updated 3/2019
English

What you'll learn

  • Manipulate string values and escape special characters.
  • Write concurrent functions and handle synchronization.
  • Perform CRUD operations on a relational database.
  • Utilize concurrent features and understand the caveats of synchronization.
  • Tackle the most common “plumbing” issues when building Go Microservices.
  • Build and package your application efficiently for a multitude of different platforms.
  • Prevent crashes in production by remembering just a few simple techniques.

Course content

4 sections176 lectures9h 17m total length
  • The Course Overview0:44

    This video will give you an overview about the course.

  • Installing Go Binaries3:25

    In this video, we will learn Installing the Go binaries to the local computer.

       •  Download the Go binaries from the internet

       •  Use the installer, installing the Go binaries

       •  Setup the GOPATH environment variable and workspace folders

  • Quick Look at Go Language3:07

    In this video, we will take a quick look at how Go looks like and where to learn more about the basic syntax.

       •  Check out the Go tour website

       •  Check the basic syntactical differences of Go compared to other programming languages

  • Trimming Spaces from Beginning and End of Strings3:16

    In this video, we will look at how to trim spaces from beginning to end.

       •  Use the built-in functions, we are removing the spaces

  • Extracting Substrings from String Values2:11

    In this video, we will look at how to extract substrings from string values.

       •  Define the string from which we are going to extract a piece

       •  Use the slices syntax, we are extracting a piece from the given string value

  • Replacing Parts of a String3:05

    In this video, we will learn to replace parts of a string.

       •  Use strings.Replace() built-in function, to replace a given string with something else

  • Escaping Characters in Strings3:15

    In this video, we will look at escaping characters in strings.

       •  Use back slash character to escape special characters in string values

  • Capitalizing String Values2:27

    In this video, we will learn how to capitalize string values.

       •  Use strings.Title(), to capitalize the first letters of words

       •  Use strings.ToUpper(),to capitalize all the letters of a given word in a string value

  • Converting Boolean to String3:59

    In this video, we will convert bool to string.

       •  Use strconv.FormatBool() built-in function,to convert Boolean to string value

  • Converting Integer and Float Values to String5:55

    In this video, we will convert integer and float values to string.

       •  Use strconv.FormatInt(), to convert the integer values to string

       •  Use strconv.FormatFloat(),to convert float to string

  • Parsing String Values to Boolean2:37

    In this video, We will parse string values to bool.

       •  Use strconv.ParseBool()

  • Parsing String Values to Integer and Float3:05

    In this video, we will parse string values to integer and float.

       •  Use strconv.ParseInt()

       •  Use strconv.ParseFloat()

  • Converting a Byte Array to String2:11

    In this video, we will convert a byte array to string.

       •  Use string() built-in conversion

  • Finding Today's Date and Time2:06

    In this video, we will be finding today’s date and time.

       •  Quick demonstration to time package

       •  Use time.Now() function as defined under time package

  • Adding or Subtracting from Date3:12

    In this video, we will be adding or subtracting from date.

       •  Get the current date and time with time.Now()

       •  Use the .AddDate() function over the values of type time

       •  Pass negative parameters to AddDate() function to subtract

  • Finding the Difference Between Two Dates1:15

    In this video, we will find the difference between two date and time values.

       •  Define two time types using time.Date() function

       •  Use .Sub() function of the first to subtract the second

  • Parsing Dates and Times from Strings2:10

    In this video, we will be parsing the date values in type of string to actual date and time types in Go.

       •  Define a simple date in string format and defining the layout to use to instruct Go for how to parse the given string

       •  Use time.Parse() function to parse

  • Extracting Unique Elements from a List2:46

    In this video, we will be extracting unique elements from a given list.

       •  Define a new function called unique()

       •  Create a new list to store the unique elements

       •  Check if the iterated item already exists in the list, not adding it to the unique items list

  • Finding an Element from an Array3:00

    In this video, we will be finding an element from an array.

       •  Define a new list with elements

       •  Use for loop and range operator, iterating each item and checking if it is what we want

  • Reverting an Array1:30

    Revert the order of an array.

       •  Define an new list with elements

       •  Use sort package and the methods defined under it such as .Sort(), and .Reverse()

  • Iterating over an Array1:50

    In this video, we will be iterating an array.

       •  Use for loop

       •  Range operator constructs

  • Converting a Map into an Array of Keys and Values2:01

    In this video, we will be adding all of the items of map into an array as key-value pairs.

       •  Create a new struct type which will keep the key/value pairs as fields

       •  Iterate the map to get each key and its corresponding value

       •  Add each key-value pair to the list

  • Merging Arrays1:38

    In this video, we will be merging two arrays into one.

       •  Create two simple maps with elements

       •  Use append() built-in functions and passing both of the arrays

  • Merging Maps2:03

    In this video, we will be merging two maps into one.

       •  Create two simple maps populated with elements

       •  Iterate one of the maps and inserting its keys and values to the other map

  • Testing for the Presence of a Key in a Map2:50

    In this video, we will be checking if a key exists in a map.

       •  Use the special syntax to check the existence of a key in a given map

  • Creating Custom Error Types2:52

    In this video, we will be creating custom error types for collecting more information about a custom error handling situation.

       •  Create a new struct

       •  Implement the Error() method to satisfy the Error interface

  • Try/Catch Equivalent in Go3:16

    In this video, we will be handling errors in Go.

       •  Show how to handle errors returned from function calls

  • Doing a Simple Logging in Your App2:18

    In this video, we will be logging various state of the application including errors and information.

       •  Use the built-in mechanism

       •  Save the log information to a file

  • Gracefully Dealing with Panics3:41

    In this video, we will be recovering from a panic.

       •  Panic in the application

       •  Use the delay and recover keywords, gracefully recovering from the panic state

  • Checking the Existence of a File2:10

    In this video, we will be checking whether a file exists in a given location or not.

       •  Create a temporary file

       •  Use os.Stat() function, checking if the file exists

  • Reading the Entire Content of a Text File1:14

    In this video, we will be reading the entire content of a given file into memory.

       •  Create the file to read

       •  Use ioutil.ReadFile() function, reading its content into memory

  • Writing to a File1:52

    In this video, we will be writing an in memory string value into a new file.

       •  Use ioutil.WriteFile() function, writing the content into a file

  • Creating Temporary Files2:04

    In this video, we will be creating a file that is located in a temporary location.

       •  Use ioutil.TempFile(), creating a new temporary file

       •  Write some text content into the created temporary file

  • Counting Lines in a File1:25

    In this video, we will be counting how many lines in a given file and displaying it on the console.

       •  Use os.Open() function, loading the file into the memory

       •  Use bufio.NewScanner(), counting how many lines in the file

  • Reading a Particular Line in a File1:44

    In this video, we will be reading just a desired line from a given file.

       •  Use os.Open() function, loading the file into the memory

       •  Use bufio.NewScanner() and .Scan() function, we read the line into a new variable

  • Comparing the Contents of Two Files1:35

    In this video, we will be loading two text files into memory and comparing their content with each other.

       •  Load both of the files into memory

       •  Use bytes.Equal() function to compare the two files contents

  • Deleting a File1:11

    In this video, we will be deleting a given file from its physical location.

       •  Use os.Remove() function and provide it with the location of the file, deleting the file

  • Copying or Moving a File2:17

    In this video, we will be copying and later moving file from one location to another.

       •  Create a file to copy and move

       •  Copy the file by creating a new copy of it in the desired location

       •  Copy the file by creating a new copy of it in the desired location and removing the original file from its physical location

  • Renaming Files0:39

    In this video, we will be renaming a given file.

       •  Use os.Rename() function and provide it with the physical file location and the new file name to rename it to

  • Deleting a Directory and Its Contents1:14

    In this video, we will be deleting a physical folder and its content along with it.

       •  Use os.Remove() function to remove a folder without sub folder and files in it

       •  Use os.RemoveAll() to remove both the folder and all of its files and sub folders

  • List All the Files under a Directory1:07

    In this video, we will be reading all of the file names from a given directory into the memory.

       •  Use the ioutil.ReadDir() function, reading all the files names into memory variable

  • Running Multiple Functions Concurrently8:15

    In this video, we will be running multiple Go functions in a concurrent manner.

       •  Use Go keyword to run functions as Go routines, which are what runs as a concurrent function in Go programming language

  • Passing Data Between Concurrently Running Functions3:35

    In this video, we will be passing data between multiple concurrent functions while they are being executed.

       •  Use the channel construct to synchronize

       •  Pass data between concurrent functions

  • Waiting for All Concurrent Functions to Finish1:58

    In this video, we will be waiting all of the running concurrent functions to finish in the main Go routine.

       •  Use sync.WaitGroup(), waiting for all the Go routines to finish

  • Selecting the Results of Concurrent Functions3:04

    In this video, we will be getting the results of multiple concurrent functions as they are running.

       •  Use the select keyword to get the returned values through channels

  • Catching Signals3:47

    In this video, we will catch the OS-level signals coming from other processes.

       •  Use signal.Notify() function to get the signals passed to your Go application

       •  Output them to the console

  • Running Child Processes3:09

    In this video, we will be running another process from Go applications.

       •  Use exec.Command() function, running ls command that is available on Unix and Linux based operating systems

  • Processing Command-line Arguments3:43

    In this video, we will be reading the arguments passed to the Go application and process a different action based on the passed arguments.

       •  Use the os.Args slice to read the passed arguments from command line

       •  Run writeHelloWorld() function for an argument called “a”

  • Downloading a Web Page from Internet1:51

    In this video, we will be downloading a given URL content from internet.

       •  Use http.Get() to get the content of the URL

       •  Access the Body property of the returned object, writing the content to the console

  • Downloading Files from Internet1:30

    In this video, we will be downloading an image file from a given URL.

       •  Use the http.Get() function, getting the file

       •  Create a new file in the file system

       •  Write the content of the downloaded image into the new file created in the file system

  • Creating a Simple Web Server4:00

    In this video, we will be creating a simple web server that handles HTTP request and returns response.

       •  Use http.HandleFunc() and http.ListenAndServe() functions

       •  Create a simple web server that handles requests on port 5050

  • Creating a Simple File Server2:18

    In this video, we will be creating a simple file server that serves static files such as images, JavaScript files, CSS files, and so on.

    • Use http.FileServer() function in http.Handle() function to serve static files

    • Use http.ListenAndServe() to listen to the requests coming through 5050 port on the localhost

    • Serve the static content accordingly

  • Reading Data from SQL Databases6:21

    In this video, we will be reading data records from SQLite database.

    • Use go get command, downloading third-party SQLite database package first

    • Use the database/SQL built-in package to interact with database

    • Read data from the database using db.Query() function

  • Inserting Data to Database1:41

    In this video, we will be inserting data rows into SQLite database.

    • Use the database/ SQL built-in package to interact with database

    • Use db.Prepare() and .Exec() function to insert the desired data

  • Updating Data in Database1:55

    In this video, we will be updating an existing record in the database.

    • Use the db.Prepare() and .Exec() function to update an existing record with desired values

  • Deleting Data from Database2:18

    In this video, we will be deleting an existing record in the given database table.

    • Use the db.Prepare() and .Exec() function to delete an existing record

  • Test your knowledge

Requirements

  • To take up this Learning Path, you will be required to have some prior knowledge with Go programming. Any developers willing to master Go programming to develop robust and resilient apps will feel perfectly comfortable in understanding the topics presented.

Description

A Learning Path is a specially tailored course that brings together two or more different topics that lead you to achieve an end goal. Much thought goes into the selection of the assets for a Learning Path, and this is done through a complete understanding of the requirements to achieve a goal.

Go is a multi-paradigm programming language that has built-in facilities to simplify the development of modern applications. You can create concurrent applications and it is particularly useful in developing cloud-native applications as it’s convenient, occupies a low footprint, and deploys fast.

This Learning Path is architected to teach you interesting tools, frameworks, and techniques that you can use to leverage the benefits of working with Go to develop your applications. You will begin to get familiar with the tools to build web applications, microservices, command-line applications, and much more. Once you are comfortable with developing your apps, you will then learn some amazing tips, tricks & techniques to improve the code quality of your projects. Moving further, you will learn to troubleshoot your Go application to prevent crashes in production by remembering just a few simple techniques and effortlessly surmount the hurdles and become more productive quickly, writing fast, and stable code.

By the end, you will have gained a solid foundation of Go as well as the skills to make your applications more robust and resilient.

Author Bios

  • Tarik Guney has been working as a software engineer for more than 10 years in the industry, in various domains including finance, education, and public safety. He is currently working as a principal software engineer for Motorola Solutions. His passion for programming and his years of experience in the industry always lead him to explore new technologies, using them in real-world scenarios, and helping others. Besides his videos about Go Programming, he has recorded hours of videos about various other IT topics.

  • Theofanis Despoudis is a Senior Level Software Engineer at Teckro. He is an accomplished and accountable Software Developer with a consistent record of achievements in the successful end-to-end delivery of leading-edge projects and products. He has an interest in Linux as an Operating System and also got practical working experience with it. (He has worked with Debian, Ubuntu, Fedora, and a little bit of Red Hat).

  • Martin Helmich studied computer science at the University of Applied Sciences in Osnabrück and lives in Rahden, Germany. He works as a software architect, specializing in building distributed applications using web technologies and Microservice Architectures. Besides programming in Go, PHP, Python, and Node.js, he also builds infrastructures using configuration management tools such as SaltStack and container technologies such as Docker and Kubernetes.

  • Shawn Milochik has been programming for over 20 years and has used Go since 2014. In addition to coding, and mentoring coders, he enjoys teaching, studying music theory, and podcasting. He's currently working as a Cloud Engineering Manager at Teltech Systems, Inc.

Who this course is for:

  • This course targets application developers, beginner-level developers in the Go programming language, front-end developers, software developers,, and web developers. They are very keen on building applications with Go and want to learn some useful, interesting ways to further improve their Go programming skills in a much more unique and easy way. Even if you are experiencing with Go, you’ll surely learn a thing or two from this course.