Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Personal Transformation Meditation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Data Science
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Development Tools Go Programming Language

LEARNING PATH: Go: Real-World Go Solutions for Gophers

Develop modular and testable applications in Go!
Rating: 2.2 out of 52.2 (3 ratings)
28 students
Created by Packt Publishing
Published 1/2018
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Explore working with filesystems
  • Process common datatypes such as TOML, YAML, and JSON
  • Explore strategies to handle errors in Go
  • Implement Go HTTP client interfaces, REST clients, OAuth2 clients
  • Explore web handlers, validation of user input, and middleware
  • Handle errors and cleanly pass them along to calling functions Wrap dependencies in interfaces for ease of portability and testing
  • Explore reactive programming design patterns in Go

Course content

2 sections • 83 lectures • 4h 9m total length

  • Preview02:36
  • Using the Common I/O Interfaces
    04:42
  • Using the Bytes and Strings Packages
    04:10
  • Working with Directories and Files
    02:17
  • Working with the CSV format
    03:11
  • Working with Temporary Files
    02:08
  • Working with Text/Template and HTML/Templates
    02:58
  • Preview03:07
  • Using Command-Line Arguments
    02:04
  • Reading and Setting Environment Variables
    03:37
  • Configuration Using TOML, YAML, and JSON
    03:21
  • Working with Unix Pipes
    02:16
  • Catching and Handling Signals
    02:12
  • An ANSI Coloring Application
    02:34
  • Converting Data Types and Interface Casting
    03:21
  • Working with Numeric Data Types using math and math/big
    03:07
  • Currency Conversions and float64 considerations
    03:25
  • Using Pointers and SQL NullTypes for Encoding and Decoding
    02:42
  • Encoding and Decoding Go Data
    02:22
  • Struct Tags and Basic Reflection in Go
    03:02
  • Implementing Collections Via Closures
    02:46
  • Handling Errors and the Error Interface
    02:28
  • Using the pkg/errors Package and Wrapping Errors
    02:45
  • Using the log Package and Understanding When to Log Errors
    02:43
  • Structured Logging with the apex and logrus Packages
    02:53
  • Logging with the context Package
    02:31
  • Using Package-Level Global Variables
    02:15
  • Catching Panics for Long Running Processes
    01:43
  • The database/sql Package with MySQL
    04:33
  • Executing a Database Transaction Interface
    02:29
  • Connection Pooling, Rate Limiting, and Timeouts for SQL
    02:16
  • Working with Redis
    02:29
  • Using NoSQL with MongoDB and mgo
    01:55
  • Creating Storage Interfaces for Data Portability
    03:36
  • Initializing, Storing, and Passing http.Client structs
    03:39
  • Writing a Client for a REST API
    02:45
  • Executing Parallel and Async Client Requests
    01:59
  • Making Use of OAuth2 Clients
    04:08
  • Implementing an OAuth2 Token Storage Interface
    04:08
  • Wrapping a Client in Added Functionality and Function Composition
    02:38
  • Understanding GRPC Clients
    04:38
  • Working with Web Handlers, Requests, and ResponseWriters
    03:39
  • Using Structs and Closures for Stateful Handlers
    03:14
  • Validating Input for Go structs and User Inputs
    03:10
  • Rendering and Content Negotiation
    02:09
  • Implementing and Using Middleware
    02:30
  • Building a Reverse Proxy Application
    02:28
  • Exporting GRPC as a JSON API
    04:35

  • Preview02:35
  • Mocking Using the Standard Library
    03:38
  • Using the mockgen Package
    02:47
  • Using Table-Driven Tests to Improve Coverage
    02:42
  • Using Third-Party Testing Tools
    03:26
  • Practical Fuzzing
    03:21
  • Behavior Testing Using Go
    02:56
  • Preview02:45
  • Performing async Operations withsync.WaitGroup
    02:18
  • Using Atomic Operations and mutex
    03:13
  • Using the context Package
    02:56
  • Executing State Management for Channels
    02:23
  • Using the Worker Pool Design Pattern
    03:01
  • Using Workers to Create Pipelines
    02:57
  • Preview02:31
  • Implementing Basic Consensus Using Raft
    03:51
  • Using Containerization with Docker
    03:04
  • Orchestration and Deployment Strategies
    02:36
  • Monitoring Applications
    02:33
  • Collecting Metrics
    02:22
  • goflow for Dataflow Programming
    03:25
  • Reactive Programming with RxGo
    02:46
  • Using Kafka with Sarama
    02:44
  • Using async Producers with Kafka
    02:48
  • Connecting Kafka to goflow
    02:44
  • Defining a GraphQL Server in Go
    03:52
  • Go Programming on Lambda with Apex
    05:27
  • Apex Serverless Logging and Metrics
    02:52
  • Google App Engine with Go
    04:14
  • Working with Firebase Using zabawaba99/firego
    03:39
  • Using the pprof Tool
    03:17
  • Benchmarking and Finding Bottlenecks
    02:15
  • Memory Allocation and Heap Management
    02:22
  • Vendoring and Project Layout
    03:43
  • Using fasthttprouter and fasthttp
    03:30

Requirements

  • Prior Basic Knowledge of Go programming language is needed
  • Basic understanding of JSON and MySQL is needed

Description

Go is one of the most powerful, efficient, and highly-performant programming languages. It has seen an increased rate of adoption mainly because it is lightweight, easy to use and displays great robustness when performing in a variety of domains. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Go (often referred to as golang) is a programming language created at Google in 2009. It is derived from C with additional features such as garbage collection, type safety, dynamic-typing capabilities, additional built-in types, and a large standard library. If you're interested to build a foundation for your applications so as to improve its performance, then go for this Learning Path.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

The highlights of this Learning Path are:

  • Learn encoding strategies and some functional design patterns for Go
  • Deal with various storage libraries for accessing data storage systems such as MySQL
  • Test your application using advanced testing methodologies

Let’s take a quick look at your learning journey. This Learning Path starts off with basic tutorials on the language leave off. You can immediately put into practice some of the more advanced concepts and libraries offered by the language while avoiding some of the common mistakes for new Go developers. Initially you will work upon I/O file systems and command line tools. Error handling feature of Go will help you with structured logging, logging with context package, etc. You will also learn about databases and storage using MySQL and NoSQL with MongoDB. You will also come across microservices that improves your Go applications.

Further, this path explores applications that interact with users, such as websites, command-line tools, or via the file system. It demonstrates how to handle advanced topics such as parallelism, distributed systems, and performance tuning. Lastly, it finishes with reactive and serverless programming in Go. You will learn about serverless programming and also tips and tricks to improve performance of your application.

By the end of this Learning Path, you will be able to bridge the gap between basic understanding of Go and use of its advanced features to build foundation for your applications.

Meet Your Experts:

We have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:

Aaron Torres received his master’s of science degree in computer science from New Mexico Institute of Mining and Technology. He has worked on distributed systems in high performance computing and in large-scale web and microservices applications. He currently leads a team of Go developers that refines and focuses on Go best practices with an emphasis on continuous delivery and automated testing. Aaron has published a number of papers and has several patents in the area of storage and I/O. He is passionate about sharing his knowledge and ideas with others. He is also a huge fan of the Go language and open source for backend systems and development.


Who this course is for:

  • This Learning Path is for web developers, programmers, and enterprise developers, who want to build a foundation for their applications with the advanced features of Go.

Instructor

Packt Publishing
Tech Knowledge in Motion
Packt Publishing
  • 3.9 Instructor Rating
  • 58,003 Reviews
  • 349,355 Students
  • 1,420 Courses

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.



  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.