Go

Go

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Go is an open source project developed by a team at Google and many contributors from the open source community.

Conclusion

Part of tutorial

Conclusion
Next Up - Building a gRPC Server for Efficient Communication
gRPC in Go: Let's Go

Part of tutorial

gRPC in Go: Let's Go
Building a GRPC Application - Let's Get Started
Prerequisites

Part of tutorial

Prerequisites
Prepare Your Software for a Task Management App Build
Generating Stubs for Reverse Proxy

Part of tutorial

Generating Stubs for Reverse Proxy
Relaying gRPC Requests - Using a Reverse Proxy for Interoperability
gRPC Client

Part of tutorial

gRPC Client
Developing the gRPC Client and Implementing Endpoints
Hooking Everything Up

Part of tutorial

Hooking Everything Up
Integrating Client and Server Components
Conclusion

Part of tutorial

Conclusion
Wrapping Up with gRPC
Testing the REST API

Part of tutorial

Testing the REST API
Putting the Reverse Proxy to Work - Testing the REST-to-gRPC Translation
Connecting to a Database

Part of tutorial

Connecting to a Database
Setting Up PostgreSQL - A Local Database for Your Project
Comments Table

Part of tutorial

Comments Table
Finalizing the gRPC Server - Creating the Comments Table and Endpoints
Writing the gRPC Server

Part of tutorial

Writing the gRPC Server
Implementing the gRPC Server - Creating Tasks and Handling Errors
Build CLI Apps with Go and Cobra

tutorial

Build CLI Apps with Go and Cobra
Building Powerful and Efficient Command-Line Tools
How to Handle Errors in Go

tutorial

How to Handle Errors in Go
Errors No More - Keep Your Go Code Pure
How to Use Mock Testing in Go

tutorial

How to Use Mock Testing in Go
Mocking & Rocking - Power Up Your Go Testing
Creating a CLI in Go Using Cobra

Part of tutorial

Creating a CLI in Go Using Cobra
Dive into Go CLI Development - A Hands-on Guide with Cobra
Conclusion

Part of tutorial

Conclusion
Ready to Roll - Building Go CLIs with Confidence
Building a Binary Executable

Part of tutorial

Building a Binary Executable
Power Up Your Programs - Creating Standalone Go Binaries
Error Handling in Cobra

Part of tutorial

Error Handling in Cobra
Preventing Frustration - Mastering Error Handling in CLIs
What Are Command Line Interfaces?

Part of tutorial

What Are Command Line Interfaces?
Unveiling the Text-Based Power of Your Computer
Common Mistakes to Avoid When Handling Errors in Go

Part of tutorial

Common Mistakes to Avoid When Handling Errors in Go
Write Clean Code - Common Error Handling Mistakes to Avoid
Best Practices for Error Handling in Go

Part of tutorial

Best Practices for Error Handling in Go
Reduce Bugs and Maintain Control - Essential Practices
Conclusion

Part of tutorial

Conclusion
Putting Your Knowledge into Practice
Popular Error Handling Techniques in Go

Part of tutorial

Popular Error Handling Techniques in Go
Defer, Panic, and Recover - When to Use Each
Prerequisites

Part of tutorial

Prerequisites
Setting Up Your Development Environment
How to Handle Errors in Go

Part of tutorial

How to Handle Errors in Go
Errorless Go - Write Clean and Reliable Code
Conclusion

Part of tutorial

Conclusion
Where to Go from Here
Handling Specific Types of Errors

Part of tutorial

Handling Specific Types of Errors
Effective Error Handling - Strategies for Network and IO Issues
Prerequisites

Part of tutorial

Prerequisites
Software Requirements - What You Need to Know Before You Begin
More Mocking Techniques

Part of tutorial

More Mocking Techniques
Mocking Power - Interfaces, Testify, and HTTP for Go Testing
Setting Up the Demo Project in GoLand

Part of tutorial

Setting Up the Demo Project in GoLand
Unleash the Power of Mocks - Build a Project from Scratch
Unit testing in Go is easy!

Part of tutorial

Unit testing in Go is easy!
The Power of Unit Testing in Your Go Projects
Benefits & Drawbacks of Dependency Injection

Part of tutorial

Benefits & Drawbacks of Dependency Injection
Unveiling the Benefits (and Challenges) of Dependency Injection
Conclusion

Part of tutorial

Conclusion
Key Takeaways and Next Steps
Dependency Injection with Dig

Part of tutorial

Dependency Injection with Dig
Digging into Dependency Injection - Unleashing the Power of Dig in Go
Implementing Dependency Injection in Go

Part of tutorial

Implementing Dependency Injection in Go
Leveraging Popular Frameworks for Dependency Injection Implementation
Injection During Initialization

Part of tutorial

Injection During Initialization
DI - The Key to Efficient Object Creation
Conclusion

Part of tutorial

Conclusion
The Road Ahead
Testing

Part of tutorial

Testing
Strategies for Effective Code Testing and Maintenance
Getting Started

Part of tutorial

Getting Started
Setting Up Components for Dependency Injection
Go with FX

Part of tutorial

Go with FX
Building Go Applications with Fx
Go with Wire

Part of tutorial

Go with Wire
Leveraging Wire for Dependency Injection
Prerequisites

Part of tutorial

Prerequisites
What you need to know before you begin
What Is Dependency Injection?

Part of tutorial

What Is Dependency Injection?
Dependency Injection Made Easy - Building Cleaner Software
Getting Started with Redis in Go

tutorial

Getting Started with Redis in Go
Using Redis in a Go Project
REST API Development with Gin

tutorial

REST API Development with Gin
Developing a Bookstore App with the Gin Framework
Data Models

Part of tutorial

Data Models
Defining models and establishing database connection
HTTP Handlers

Part of tutorial

HTTP Handlers
Managing Web Requests - The HTTP Handler Approach
Interfaces & CRUD Operations

Part of tutorial

Interfaces & CRUD Operations
Centering on business logic via CRUD operations
Introduction

Part of tutorial

Introduction
Introducing Gin, the high-performance web framework, written in Go
Project Layout

Part of tutorial

Project Layout
Organizing and Navigating Through Your Codebase
Database Setup

Part of tutorial

Database Setup
Configuring Your PostgreSQL Database
Project Configuration

Part of tutorial

Project Configuration
Install the dependencies used for the sample application
Web App with Go and React - Part 1

tutorial

Web App with Go and React - Part 1
Fullstack Application Development with Go and React
Web App with Go and React - Part 3

tutorial

Web App with Go and React - Part 3
Fullstack Application Development with Go and React
Web App with Go and React - Part 2

tutorial

Web App with Go and React - Part 2
Fullstack Application Development with Go and React
Conclusion

Part of tutorial

Conclusion
Considerations and Next Steps
Best Practices

Part of tutorial

Best Practices
Essential Techniques to Ensure Efficiency and Success with Redis
Transactions

Part of tutorial

Transactions
Using Redis Transactions for Data Integrity
Pub-Sub Messaging

Part of tutorial

Pub-Sub Messaging
Simplifying Communication Between Applications
Pipelines: Running Redis Commands in Batches

Part of tutorial

Pipelines: Running Redis Commands in Batches
Efficiency in Bulk - Maximizing Performance with Redis Pipelines
Redis & GoLand

Part of tutorial

Redis & GoLand
Streamlining GoLand and Redis Setup for Smooth Development
Getting and Setting a Value

Part of tutorial

Getting and Setting a Value
Efficient Data Handling - Redis Retrieval and Storage Capabilities
Learn Redis by Coding

Part of tutorial

Learn Redis by Coding
Unlocking Key Concepts Through Six Interactive Demos
What Is Redis?

Part of tutorial

What Is Redis?
Unlocking the Power of Redis - A Practical Guide for Go Developers
Expiring Keys

Part of tutorial

Expiring Keys
Redis Key Expiry - Maximizing Data Efficiency with Time-Based Management
New Project

Part of tutorial

New Project
From Concept to Code - Crafting Your Project's Foundation
Prerequisites

Part of tutorial

Prerequisites
Install and Resolve Dependencies to Work With Redis
Crafting the Application

Part of tutorial

Crafting the Application
Constructing the Go Backend for the Chat App
Introduction

Part of tutorial

Introduction
Setting Up Gin, SQLite, and Essential REST APIs
Conclusion

Part of tutorial

Conclusion
backend completion and learning outcomes
Prerequisites

Part of tutorial

Prerequisites
Install necessary dependencies for running the application
Conclusion

Part of tutorial

Conclusion
Crafting a seamless full-stack chat experience
Stitching Together

Part of tutorial

Stitching Together
bringing together frontend and backend components
Testing the Backend

Part of tutorial

Testing the Backend
Connecting the dots - from development to deployment
Getting Started

Part of tutorial

Getting Started
Dive into frontend development with Node.js and React
UI Design

Part of tutorial

UI Design
Jazz up your UI with Tailwind
Conclusion

Part of tutorial

Conclusion
Streamlining Frontend - React and Tailwind in Action
Preparing for Production

Part of tutorial

Preparing for Production
Fine-tuning your project for deployment
Highlights of GoLand 2023.3

playlist

Highlights of GoLand 2023.3
Explore key features and enhancements in GoLand 2023.3.
Code coverage for applications

tip

Code coverage for applications
Track code execution and identify dead code effectively
Improve Code Readability and Navigation

tip

Improve Code Readability and Navigation
Discover how to manage code visibility with code folding in Go
Create a function in another package

tip

Create a function in another package
Type a non-existing function name and generate its implementation in a package of your choice
Empower your `Printf`-like functions with coding assistance

tip

Empower your `Printf`-like functions with coding assistance
Provide hints and highlights for message formats in custom `Printf`-like functions
Introduce parameters from unresolved references in your code

tip

Introduce parameters from unresolved references in your code
Change a function or method signature by introducing parameters directly from unresolved references
Authentication for Go Applications: The Secure Way

tutorial

Authentication for Go Applications: The Secure Way
This article compares the pros and cons of five different authentication methods: Basic HTTP, bearer token, JWT, OIDC, and SAML.
Authentication for Go Applications: The Secure Way

Part of tutorial

Authentication for Go Applications: The Secure Way
This article compares the pros and cons of five different authentication methods: Basic HTTP, bearer token, JWT, OIDC, and SAML.
Go REST Guide. Gin Framework

Part of tutorial

Go REST Guide. Gin Framework
The third part of this series looks at how to build a REST API using a web framework called Gin.
Go REST Guide. gorilla/mux Router

Part of tutorial

Go REST Guide. gorilla/mux Router
The second part of this series demonstrates how to use a router for improved handling of requests when building REST APIs.
Go REST Guide

tutorial

Go REST Guide
This is a three-part series dedicated to three different methods of building a Go REST API.
Go REST Guide. The Standard Library

Part of tutorial

Go REST Guide. The Standard Library
The first part of this series focuses on using the standard library, a simple and native way to create HTTP servers.
New Features in GoLand 2023.1

playlist

New Features in GoLand 2023.1
A selection of useful features from GoLand 2022.3.
Vulnerability checker

tip

Vulnerability checker
Analyze your codebase and highlight known vulnerabilities in go.mod
Convert between different types of strings

tip

Convert between different types of strings
Convert strings that are surrounded by backticks to double-quoted ones and vice-versa
Intention action to convert integers to strings

tip

Intention action to convert integers to strings
Convert an integer to a string by using the `strconv.Itoa()` call
Create inspections with regular expressions

tip

Create inspections with regular expressions
Use regular expressions to create your own search and replace inspections
Implement an interface

tip

Implement an interface
Implement unexported interfaces by pressing Ctrl + I
Rename generic receivers along with a generic struct

tip

Rename generic receivers along with a generic struct
Rename generic receivers along with a generic struct
New Features in GoLand 2022.3

playlist

New Features in GoLand 2022.3
A selection of useful features from GoLand 2022.3.
Code vision

tip

Code vision
Focus on your code while getting additional information about it.
Generate 'go.work' for a project

tip

Generate 'go.work' for a project
Generate 'go.work' by using the context menu or a quick-fix with 'replace' directives
Integrated Go Playground

tip

Integrated Go Playground
You can format and share your code, change the Go version, and run your code using the Go playground server.
Generate tests for generic functions

tip

Generate tests for generic functions
Use a shortcut to generate test files for your generic functions.
New Features in GoLand 2022.2

playlist

New Features in GoLand 2022.2
A selection of useful features from GoLand 2022.2.
Changing the font size in the editor

tip

Changing the font size in the editor
Use a keyboard shortcut to change the font size in the editor.
Rename constants that use reserved names

tip

Rename constants that use reserved names
Rename a constant if it uses a name of a built-in constant.
Run Anything

tip

Run Anything
Launch run/debug configurations, applications, scripts, commands, tasks, and open recent projects.
Group multiple `use` directives in `go.work`

tip

Group multiple `use` directives in `go.work`
Merge multiple `use` directives in `go.work` into one directive.
Convert empty interfaces to `any`

tip

Convert empty interfaces to `any`
Check and replace empty interfaces that are used as types or type constraints.
Delete a type parameter with an empty parameter list

tip

Delete a type parameter with an empty parameter list
Type parameters with empty parameter lists are reported as errors, but you have a quick-fix to put it right.
Fuzz testing

tip

Fuzz testing
Automate your tests by continuously submitting various input.
Fill Paragraph for Go Comments

tip

Fill Paragraph for Go Comments
Ensure that comments have the width you like.
Declare a targeted Go version in go.mod

tip

Declare a targeted Go version in go.mod
The IDE is aware of targeted Go versions
Improved display of attached projects

tip

Improved display of attached projects
Work with multiple projects at once from the same IDE window
Go 1.17: Convert slice to array pointer

tip

Go 1.17: Convert slice to array pointer
With Go 1.17, it is possible to covert a slice to an array pointer
Load go.mod changes manually

tip

Load go.mod changes manually
Take control of when go.mod files are refreshed
Create a Scratch file from selection

tip

Create a Scratch file from selection
Create scratches faster and get the contents you want to test pre-populated
Remove empty scratches automatically

tip

Remove empty scratches automatically
Let the IDE handle the cleanup after testing your ideas
Run gofmt after the builtin formatter

tip

Run gofmt after the builtin formatter
Ensure that your code is always formatted with gofmt.
Select the builtin Terminal cursor shape

tip

Select the builtin Terminal cursor shape
Make the terminal your own, with the cursor shape you want
Detect unused dependencies in go.mod files

tip

Detect unused dependencies in go.mod files
Cleanup go.mod files and keep them lean
New Features in GoLand 2021.2

playlist

New Features in GoLand 2021.2
A selection of useful features from GoLand 2021.2
Add new fields to struct types from JSON

tip

Add new fields to struct types from JSON
Add new fields in your API objects with a copy-paste
Add keys to struct field tags

tip

Add keys to struct field tags
Quickly add JSON, XML, or custom keys to all struct fields
Change struct tag style

tip

Change struct tag style
Quickly change from different styles the struct tags
Create missing struct types with all fields

tip

Create missing struct types with all fields
Prototype your code then worry about creating the types
Create getters and setters for struct fields

tip

Create getters and setters for struct fields
Generate the support code to access fields indirectly, via getters and setters
Extract Type Refactoring

tip

Extract Type Refactoring
Extract a type into its own definition and improve the reusability in your code
Handle Go errors by using a Postfix Completion

tip

Handle Go errors by using a Postfix Completion
Keep writing code as you would and use the Postfix Completion to generate the boilerplate
Support for go:embed directive

tip

Support for go:embed directive
Embed files and folders into your binaries with no external tool
Convert JSON to Go types via copy-paste

tip

Convert JSON to Go types via copy-paste
Converting a JSON response to a Go type has never been faster than this
Quickly handle errors in Go

tip

Quickly handle errors in Go
Handling errors is essential in any application
Rename Go module refactoring

tip

Rename Go module refactoring
Upgrade Go modules to newer versions with ease
Run Target support via WSL

tip

Run Target support via WSL
Run your application or tests in Windows Subsystem for Linux (WSL) with ease
Detect incorrect usages of t/b.Fatal* calls in goroutines

tip

Detect incorrect usages of t/b.Fatal* calls in goroutines
Find if tests or benchmarks are using t/b.Fatal* calls inside goroutines incorrectly
New Features in GoLand 2021.1

playlist

New Features in GoLand 2021.1
A selection of useful features from GoLand 2021.1
Assert completion in testify

tip

Assert completion in testify
Write testify asserts faster thanks to the IDE smartness
Better time format in completion

tip

Better time format in completion
Use the commonly known date/time formatting strings while writing time formatting in Go
Dump goroutines from a running application

tip

Dump goroutines from a running application
Inspect the goroutines and memory of your application as it runs
Go 1.16: retract directive

tip

Go 1.16: retract directive
Retract specific versions of your modules
Check context.CancelFunc usage

tip

Check context.CancelFunc usage
Ensure that the cancel function is always called
Detect incorrect usage of Println/Printf like functions

tip

Detect incorrect usage of Println/Printf like functions
Formatting functions from packages such as pkg/errors, logrus or zap
Inline watches in debugger

tip

Inline watches in debugger
Keep your eyes on the code at all times
Live Template to create a for loop in benchmark functions

tip

Live Template to create a for loop in benchmark functions
Benchmark loops are repetitive, so let the IDE handle this for you
Live Template to write benchmark function

tip

Live Template to write benchmark function
Write benchmarks quicker thanks to the builtin bench live template.
Live Template to create test function

tip

Live Template to create test function
Write tests faster thanks to the builtin func Test live template.
Navigate to subtests in table tests

tip

Navigate to subtests in table tests
Jump to the specific test case from the results window
Rerun testify subtests

tip

Rerun testify subtests
Rerun just the subtest you need from a testify suite.
Run individual testify test suites

tip

Run individual testify test suites
Run only the testify test suites or subtests that matter to you
Run a single test from a table test

tip

Run a single test from a table test
Focus your testing on new test cases or tests that fail
Stop a Remote process after debugging it

tip

Stop a Remote process after debugging it
Clean-up processes after interacting with them in remote debugging scenarios
Completion for testify test names

tip

Completion for testify test names
Let your IDE add constructor arguments to your instance.
Detect variable shadowing while writing Go code

tip

Detect variable shadowing while writing Go code
Easily spot where you shadow variables that you did not intend to
New Features in GoLand 2020.3

playlist

New Features in GoLand 2020.3
A selection of useful features from GoLand 2020.3
Add Line After/Before

tip

Add Line After/Before
Smart-add a line, from the middle of a line, after or before the current line.
Adding Fields To a Struct

tip

Adding Fields To a Struct
Let your IDE add constructor arguments to your instance.
Navigate Cursor Position Back and Forth

tip

Navigate Cursor Position Back and Forth
Navigate back to where you were, or where you went.
Disable Tabs

tip

Disable Tabs
Save space and stay keyboard-centric by turning off the tabs.
Evaluate Expression During Debugging

tip

Evaluate Expression During Debugging
Select your code and execute it, in the right context.
Generate Imports While Typing

tip

Generate Imports While Typing
Avoid interruption by letting GoLand generate your imports as you type.
Install and import

tip

Install and import
While typing a symbol, let GoLand install it and generate the import.
Create New File With Navigation Bar

tip

Create New File With Navigation Bar
Activate the Navigation Bar and create a new file somewhere in the project tree.
Find In Path With Navigation Bar

tip

Find In Path With Navigation Bar
Use keyboard and Navigation Bar to find files under a path.
Activate Navigation Bar

tip

Activate Navigation Bar
Bring up the Navigation Bar as needed, let it disappear when finished.
Navigate to Symbol

tip

Navigate to Symbol
Navigate your project by code, not files.
Optimize Imports

tip

Optimize Imports
Automate the organizing and cleaning up of your Go imports with Optimize Imports.
Reduce Clutter by Disabling Tools

tip

Reduce Clutter by Disabling Tools
Save space by turning off various toolbars and Project Tool.
Rename a File and Its References

tip

Rename a File and Its References
Change your mind on a file name, and the IDE makes all the changes for you.
Run Single Test

tip

Run Single Test
Speed up testing by focusing on one test.
Split Screen Without Tabs

tip

Split Screen Without Tabs
Get your code and tests side-by-side without using tabs.
General Tips & Tricks

playlist

General Tips & Tricks
Become an IDE power-user with these bite-sized tips and tricks.
Complete Current Statement

tip

Complete Current Statement
Add trailing commas or braces and move the cursor with a single keystroke
Call Hierarchy

tip

Call Hierarchy
Analyze call trees for functions or methods
Compare with clipboard

tip

Compare with clipboard
Compare text, files or directories and even use the clipboard contents
Custom Structure tags

tip

Custom Structure tags
Add custom tags to any fields from structures
Expanding/shrinking selection

tip

Expanding/shrinking selection
Select portions of code that you need to, faster
Generate a test for an element

tip

Generate a test for an element
Automate test generation
Hide all tool windows

tip

Hide all tool windows
Hide all the tool windows in the IDE
Implement an interface

tip

Implement an interface
Implementing an interface is a common task that Go programmers need to do
Jump to the Navigation Bar

tip

Jump to the Navigation Bar
Get an overview of your current location, and the project itself
Go to/from a test

tip

Go to/from a test
Navigate to and from a test subject like a method or function
Multiple selections

tip

Multiple selections
Select multiple items faster
Navigate between opened files using the Switcher

tip

Navigate between opened files using the Switcher
Don't use the mouse to quickly move between multiple files
Navigate to File

tip

Navigate to File
Jump to a file without using the Project Tool Window, and your mouse
Paste from history

tip

Paste from history
Paste from the clipboard even if it's not the last item you copied into it
Recent Locations

tip

Recent Locations
Jump back and forth between files using code snippets you've recently seen
Select in

tip

Select in
Select the current file in the Project or Changes view and more
Show usages

tip

Show usages
Quickly discover the usages of the element your cursor is at
Select all occurrences in a file

tip

Select all occurrences in a file
Quickly select all occurrences of a piece of text in the current file
Speed typing

tip

Speed typing
Quickly navigate to or filter any list of items in the IDE
Switch to the editor

tip

Switch to the editor
Get the focus back to the editor regardless what is currently focused
Structure popup

tip

Structure popup
View the file or whole package structure and navigate to any element
Structure tags

tip

Structure tags
Quickly add tags to any fields from structures
Type Hierarchy

tip

Type Hierarchy
Discover what types implement an interface or what interfaces are implemented by a type
Editing Tips & Tricks

playlist

Editing Tips & Tricks
Learn some of the most useful Editing features of GoLand.
Basic Code Completion

tip

Basic Code Completion
Code completion that helps you get the job done
Code Completion in Language Injections

tip

Code Completion in Language Injections
See how to use code completion inside strings and other places
Code completion in Run Configurations

tip

Code completion in Run Configurations
Run configurations also have code completion capabilities.
Completion for non-imported Go Modules

tip

Completion for non-imported Go Modules
Import a module even if it was imported or used in your project
Completion with the Tab key

tip

Completion with the Tab key
A small, but handy feature that makes it a little easier to complete symbol names.
Cyclic Expand Word a.k.a. Hippie Completion

tip

Cyclic Expand Word a.k.a. Hippie Completion
Complete any word any from the current open files.
Exclude items from auto-imports and completion

tip

Exclude items from auto-imports and completion
Exclude certain paths from auto-import and completion
Live Templates

tip

Live Templates
Add your own completion items via code snippets
Method-like completion for functions

tip

Method-like completion for functions
Completion for searching for functions that accept parameters of a certain type.
Partial Match Completion

tip

Partial Match Completion
Complete anything by typing just parts of the identifier
View Parameter Info

tip

View Parameter Info
Quickly see function arguments and argument types.
Postfix Completion

tip

Postfix Completion
Transform an expression into another one.
Smart Code Completion

tip

Smart Code Completion
The king of code completion in GoLand.
Completion Tips & Tricks

playlist

Completion Tips & Tricks
Know everything there is to know about Code Completion.