Go Lang

Overview :

Go or Golang is becoming one of the most popular high-level programming languages. The reasons for its popularity is because its simple, its fast and easy to learn. The language is not only easy to learn, but it also makes the processes of data manipulation and analysis an easy task with the help of its distinctive features. The language was made by Google in 2007 and it has taken over most of the world with companies like Cred, BookmyShow and other using it. PREREQUISITES There are no set requirements for going through this training. However, a prior experience in programming and an understanding of basic concepts like variables/scopes, flow-control, and functions would help the participant learn in a better manner.

Course Curriculum.

Basics of Go

Introduction

  • The Go Programming Language
  • Why Go?
  • Go vs Other Languages
Setting up the Environment
  • Downloading and Installing Go
  • Setting up VSCode
  • The Go CLI toolkit
Getting Started
  • “Hello World” program
  • go build
  • go run
  • go install

Literals, Variables, and Data Types

  • var key word
  • short declaration
  • literals
  • Data Types in Go
  • variable scope
  • constants
  • iota

Basic I/O

  • The fmt package
  • The bufio package
  • The log package

Functions

  • Writing a function
  • return values
  • parameters and arguments
  • What is meant by First Class Functions
  • defers

Errors

  • Error Handling in Go
  • defer, panic, and recover
  • Wrap and Unwrap errors
  • Pointers
  • Basics of Pointers
  • Referencing and De-referencing
  • Pass by Value
  • Pass by Reference

Data Structures

  • Structs
  • Arrays
  • Slices
  • Maps
  • Control Statements
  • If/Else
  • Switch
  • For

Methods

  • Methods and Structs
  • Receivers and Pointer Receivers
  • Value vs Pointers

Interfaces

  • What are interfaces?
  • The empty interface
  • Type inference and reflection
  • Type Assertions
  • Type Switches
  • Well Known Interfaces
  • Reflection in go

Concurrency

  • Concurrency vs Parallelism
  • Working with go routines
  • Race Conditions
  • Sync, Wait
  • Mutexes

Channels

  • Go routine and Communication
  • Channels and Data Types
  • Channel Direction
  • Closing Channels
  • Context Package
  • Leaky Goroutines
  • Cancel func
  • Timeout
  • Deadline
  • Closing a Context

Version Control using git

  • Modules and Repositories
  • Tags and Releases for App versioning
  • Backend Programming with Go

net/http package

  • Working with http package
  • Starting a simple server
  • handling routes
  • Using Templates for web pages
  • Text templates
  • HTML Templates
  • Serving Static Files
  • Configuring Server Configuration

Using the chi router

  • using Go-Chi for routing
  • URL Structure
  • Representations and Resources
  • Handling Requests
  • Producing Response
  • JSON Marshaling and Unmarshaling
  • Routing
  • Sub Routing
  • Common Middlewares

Hands-On: Writing a CRUDL HTTP-JSON API

Basics of Docker and Containerization

  • What is Docker?
  • What can you use it for?
  • Docker Architecture
  • Docker Objects
  • Hello World
  • Running Prebuilt images
  • Writing a Dockerfile
  • Build and run an image
  • Publishing Ports
  • CMD vs ENTRYPOINT
  • ADD vs COPY
  • CLI Options
  • Manage container networking
  • Write a Docker Compose file
  • environment variables
  • secrets
  • Work with volumes and bind mounts
  • Share images on Docker Hub
  • Manage Docker objects
  • Use multi-stage builds
  • Scale apps using Swarm

Containerizing the Go App

  • Writing a Docker File for our API
  • Figuring out the base image
  • Figuring out the deployment image
  • Using Multi Stage Builds
  • Deploying API using a container

Basics of Cassandra

  • Introduction to Apache Cassandra and NoSQL
  • Setting up Cassandra Container using Docker Compose
  • Configuring Cassandra
  • Architecture of Cassandra
  • Data Modelling in Cassandra
  • Keyspaces
  • Cassandra Query Language (CQL)
  • DDL Commands
  • Data Types
  • CRUD Operations
  • cli tools
  • Cassandra and Go
  • Go library for Cassandra: GoCQL
  • Connecting to the Database
  • Understanding initialization and closing connection
  • Writing Crud operations

Swapping inmem datastore of the example app with Cassandra

  • Introduction to JavaScript
  • Introduction to JavaScript
  • History of JavaScript
  • Uses of JavaScript
  • JavaScript/ECMAScript Versions and features
  • Setting up the Environment
  • Installing NodeJS
  • Getting Comfortable with the IDE
  • Hello World Program

Basics

  • Basic Output
  • Variables
  • Data Types
  • Type Conversions
  • String Methods
  • Arrays and Objects
  • Working with Date and Time
  • Expressions and Operations

Flow Control

  • If Statements
  • Switches
  • Loops
  • Functions
  • Scope
  • Error Handling

JavaScript Classes and Objects

  • Basics of Objects
  • Nested Objects
  • Properties and Methods
  • Cloning and Object
  • Value vs Reference
  • Creating a Class
  • Constructor Method
  • Working with JSON

Modern JavaScript and Asynchronous Programming

  • Arrow Functions
  • CallBack Functions
  • Promises
  • Async/Await

Basics of React

  • 1. Setting up React
  • 2. Hello World
  • 3. Introducing JSX
  • 4. Rendering Elements
  • 5. Components and Props
  • 6. State and Lifecycle
  • 7. Handling Events
  • 8. Conditional Rendering
  • 9. Lists and Keys
  • 10. Forms
  • 11. Lifting State Up
  • 12. Composition vs Inheritance
  • 13. Thinking In React
  • Using React to Create Front end for our API

Event Sourcing using Kafka

  • Introduction to Apache Kafka
  • Setting up Kafka using Docker Compose
  • Introduction to Message Queues and Pub/Sub
  • Setting up Apache Kafka
  • Fundamentals of Apache Kafka
  • Basic Operations
  • Working with Producers and Consumers
  • Implementing Message Queue
  • Implementing Pub/Sub
  • Kafka and Go
  • Connecting to a Kafka Broker
  • Subscribing to a Kafka Topic
  • Pushing Messages to a Kafka Topic

Basics of Redis

  • Introduction to Redis
  • Why Redis
  • Setting up Redis using Docker Compose
  • Redis as a key value store
  • DDL operations
  • Redis Data Types
  • CRUD operations

Go and Redis

  • Connecting to a Redis Database
  • Performing CRUD Operations
  • Utilizing Redis as a Cache

Basics of Elastic Search

  • Introduction to Elastic Stack
  • Setting up Elastic Stack
  • Configuring Elastic Search
  • Pushing Metrics to Elastic Search
  • Searching and Analysing using Kibana
  • Storing, Searching, and Analysing using Elastic Search API


Get effective solution
for your Career

Feel free to ask questions or share your comments with us.


GET A FREE ONLINE REGISTRATION

Please fill the form we will contact you soon