Today's Question:  What does your personal desk look like?        GIVE A SHOUT

 GO


  Guide to Implement an SSH Client Using Golang

SSH, short for Secure Shell, is a network protocol used for securely remote logging into other computers on a network. I believe most backend developers are familiar with SSH. Common shell tools used for logging into servers, such as Xshell, SecureCRT, and iTerm2, are all based on the SSH protocol. In Golang, the crypto/ssh package provides functionality for implementing an SSH client. In this article, we will explain in detail how to implement an SSH client using Golang.Creating SSH Client ConfigurationFirst, we need to configure the parameters for the SSH client to connect to the server. The...

3,470 0       SSH GUIDE GOLANG SSH CLIENT


  Use Delve to debug GoLang program

If you don't know how to debug program, you are not a real programmer.gdb can be used to debug go program, but according to golang website, delve is a better option. Note that Delve is a better alternative to GDB when debugging Go programs built with the standard toolchain. It understands the Go runtime, data structures, and expressions better than GDB.Below is a simple go program.package maintype Person struct { Name string Age int}func main() { var me Person me.Name = "Melvin" me.Age = 41 var wife Person wife.Name = "Raye" wife.Age = 36 var daughter Person daughter.Name = "Kat...

3,392 0       DEBUG GOLANG DELVE


  Error handling in GoLang

Error handling is one of the must talked topics for any programming language. The program would be more reliable and stable if errors are handled properly and timely. Each programming language has its own way to handle error, this applies to GoLang as well. This post will discuss more about GoLang's error handling mechanism.Error handlingBefore talking more about GoLang's error handling, we can see how different programming languages are handling errors.C's error checkThe most direct way of checking error is using error code, and this is also how error is being checked traditionally. In proced...

3,379 0       GOLANG ERROR HANDLING FLUENT INTERFACE


  SkipList in Go

Algorithmic thinking is the must-have in the coding world, so I have been keeping the routine of algorithm practice every week, consolidating my knowledge of data structures on one hand, and improving my coding skills as well.A difficult one happened to be stuck in my mind- Implement SkipList with Go, which took me quite a weekend. Below is the front-line report of how I finally got the hang of it.First, from its concept. Wiki has explained it well.a skip list is a probabilistic data structure that allows O(log n) search complexity as well as O(log n) insertion co...

3,198 2       GOLANG SKIPLIST


  Different ways of handling concurrent job in GoLang

GoLang provides very good support of concurrency and the way to make some code to run concurrent is pretty simple and straightforward. Adding a simple go before a normal function call will make the function call asynchronous.In real cases normally people would concurrently run some jobs to improve the speed and efficiency. One important part of running jobs concurrently is about aggregating results so that the consequent function call would be able to proceed. There are multiple ways handling this scenarios.One of them is using WaitGroup from sync package. The pattern is like:var wg sync.WaitG...

2,563 0       COMPARISON WORKER POOL WAITGROUP CONCURRENT


  Understanding PGO in GoLang 1.20

BackgroundThe Go 1.20 version was officially released in February 2023, it introduced the PGO(Profile Guided Optimization) mechanism.The basic principle of PGO can be divided into the following two steps:First, profiling is performed on the program to collect data about the program's runtime and generate a profiling file.When compiling the program, enable the PGO option, and the compiler will optimize the program's performance based on the content in the .pgo file.When compiling a program, the compiler will perform many optimizations, including well-known optimizations such as inline optimizat...

2,479 0       GOLANG PGO GO 1.20


  When and Where to Use Pointers in Go

When declaring variables in Go, we usually have two syntax options: In some scenarios, pointers; in others, reference; sometimes, either. It’s great to have choices, but it is also confusing sometimes as to which one in which scenario.To be more reasonable in choice-making, I started from pointers, walked through their natures, and summarized some rules in using them in Go.from unsplash, Jordan LadikosPointersGo has pointers. A pointer holds the memory address of a value.— from A Tour of GoThe data is stored in the memory when the program runs and each has a num...

2,364 0       POINTER GOLANG


  Go Error Best Practice

Being indulged in Go for quite a while and having implemented web-related programs, grpc interfaces and Operators, I seem to be an advanced beginner now.However, I am still a raw hand in production-environmental debugging, which is cumbersome if done by querying logs or error messages. Imagine the scenario that a full-text search is called when the specific location of the error log is missing. Then what happens when those error logs are not only in one place? Yes, my error logs can no longer help me locate the errors quickly and accurately.Apparently, the lack of the try {…} catch...

2,277 0       GO ERROR ERROR HANDLING