Featured

GoLand 2020.2 EAP #7 Is Here with New Options for Wrapping Code Elements, Updates for Go Modules, and More

You can get this EAP build through the Toolbox App, by downloading it from the website, or by using a snap package (for Ubuntu). Or get it right inside GoLand by selecting Automatically check updates for Early Access Program in Preferences / Settings | Appearance...

Visual Studio Code June 2020

Downloads: Windows: User System | Mac | Linux: snap deb rpm tarball Welcome to the June 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these...

GoLand 2020.1.4 Is Released

GoLand 2020.1.4 is out with a bunch of fixes and several improvements. You can update to 2020.1.4 by: Downloading it from the website. Updating via the Toolbox App. Applying a patch to 2020.1.2 (go to Help | Check for Updates). Using a snap package (for Ubuntu)....

Keeping Your Modules Compatible

Jean de Klerk and Jonathan Amsterdam7 July 2020 Introduction This post is part 5 in a series. Your modules will evolve over time as you add new features, change behaviors, and reconsider parts of the module's public surface. As discussed in Go Modules: v2 and Beyond,...

GoLand 2020.2 EAP Build 6 Out with Support for GOMODCACHE, Faster Resolve for Vendor, and New Code Inspections

Hello, You can get this EAP build through the Toolbox App, by downloading it from the website, or by using a snap package (for Ubuntu). Or get it right inside GoLand by selecting “Automatically check updates for Early Access Program” in Preferences /...

Using Remote Containers in WSL 2

July 1, 2020 by Brigit Murtaugh, @BrigitMurtaugh Leveraging the power of Docker containers and the Windows Subsystem for Linux 2 (WSL 2), you can preserve your Windows environment by developing your applications in the sandboxed familiarity of a container in a deeply...

GoLand 2020.2 EAP #5 is Here with Problems View and Improved Git Actions Dialogs

You can get this EAP build through the Toolbox App, by downloading it from the website, by using a snap package (for Ubuntu), or from right inside GoLand by selecting “Automatically check updates for Early Access Program” in Preferences / Settings |...

GoLand 2020.2 EAP #5 is Here with Problems View and Improved Git Actions Dialogs

You can get this EAP build through the Toolbox App, by downloading it from the website, by using a snap package (for Ubuntu), or from right inside GoLand by selecting “Automatically check updates for Early Access Program” in Preferences / Settings |...

GoLand 2019.3 EAP 4 is Out with MongoDB Support and Importing & Handling Known Package Aliases

Get this EAP build via the Toolbox App, download from the website, or use a snap package (for Ubuntu). Or, right in GoLand, select Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates....

Pkg.go.dev is open source!

Julie Qiu15 June 2020 We’re excited to announce that the codebase for pkg.go.dev is now open source. The repository lives at go.googlesource.com/pkgsite and is mirrored to github.com/golang/pkgsite. We will continue using the Go issue tracker to track feedback...

Improvements and bug fixes of GoLand 2020.1.2

Today, I’m happy to announce that GoLand 2020.1.2 is out and ready to be downloaded. You can update to 2020.1.2 by: Download GoLand 2020.1.2 So, what makes the 2020.1.2 release worth taking the time to upgrade to? .remove Postfix Completion Let’s start...

GoLand 2019.1 Goes Beta

The upcoming GoLand 2019.1 is now in Beta! For three months now, our team has worked hard to turn our roadmap into reality, to meet your expectations, and hopefully to feel that pleasant fatigue that you get after you’ve done even more than planned. After this...

Visual Studio Code June 2020

Downloads: Windows: User System | Mac | Linux: snap deb rpm tarball Welcome to the June 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these...

GoLand 2019.1 EAP 8: Built-in Heap, Mutex and Block Profilers

GoLand 2019.1 EAP 8 is here! Get this new EAP build via our Toolbox App, from the website, as a snap package (for Linux), or directly from GoLand – just select Automatically check updates for Early Access Program in Preferences / Settings | Appearance &...

Using Go Modules

Introduction Go 1.11 and 1.12 include preliminary support for modules, Go’s new dependency management system that makes dependency version information explicit and easier to manage. This blog post is an introduction to the basic operations needed to get started...

Visual Studio Code April 2020

Downloads: Windows: User System | Mac | Linux: snap deb rpm tarball Welcome to the April 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these...

Profiling Go Applications and Tests

In today’s blog post, we’ll take a look at the new Profiler features of GoLand. We will split this article into two sections: · General profiler usage in which we’ll cover the common features of the profiler across the various profiler...

How to dump the GOSSAFUNC graph for a method

The Go compiler’s SSA backend contains a facility to produce HTML debugging output of the compilation phases. This post covers how to print the SSA output for function and methods. Let’s start with a sample program which contains a function, a value...

You don’t need virtualenv in Go

Programmers that come to Go from Python often wonder "do I need something like virtualenv here?" The short answer is NO; this post will provide some additional details. While virtualenv in Python is useful in many situations, I think it'd be fair to divide them into...

Diamond interface composition in Go 1.14

Per the overlapping interfaces proposal, Go 1.14 now permits embedding of interfaces with overlapping method sets. This is a brief post explain what this change means: Let’s start with the definition of the three key interfaces from the io package;...

Optional JSON fields in Go

May 23, 2020 at 06:28 Tags Go One common kind of data stored in a configuration file is options. In this post, I'll talk about some nuances we have to be aware of when storing options in JSON and unmarshaling them to Go. Specifically, the most important difference...

Representing JSON structures in Go

May 16, 2020 at 05:50 Tags Go Following some period of time reading and answering Stack Overflow questions about Go, last year I wrote the Go JSON Cookbook post to summarize some of the common issues with Go and JSON. Since then, I noticed a particular kind of...

Fatih’s question

A few days ago Fatih posted this question on twitter. I’m going to attempt to give my answer, however to do that I need to apply some simplifications as my previous attempts to answer it involved a lot of phrases like a pointer to a pointer, and other unhelpful...

Ensmallening Go binaries by prohibiting comparisons

Conventional wisdom dictates that the larger the number of types declared in a Go program, the larger the resulting binary. Intuitively this makes sense, after all, what’s the point in defining a bunch of types if you’re not going to write code that...

Faking stdin and stdout in Go

May 02, 2020 at 05:36 Tags Go In this post I want to discuss faking (or redirecting) standard input and output (os.Stdin and os.Stdout ) in Go programs. This is often done in tests, but may also be useful in other scenarios. The basic idea is demonstrated in the...

Mid-stack inlining in Go

In the previous post I discussed how leaf inlining allows the Go compiler to reduce the overhead of function calls and extend optimisation opportunities across function boundaries. In this post I’ll discuss the limits of inlining and leaf vs mid-stack inlining....

Bool vs enum

Hey there, I would like to get your opinion on something which happend to me last week: A coworker wrote a function which initially gave back a bool based on some checking. Then he realised that he needs three states (start, stop and nothing). He then changed the func...

How to reduce unit test function size ?

Hey, I'm building a web app and trying to learn unit test at the same time. I end up having alot of boiler plate in each test because of having to mock and inject dependencies alot. How could I write better test ? Small example below : func TestHandlerGetUser(t...

scanner hanging

I'm hoping someone can help me out with this one - I have a scanner that keeps hanging. In my script, I loop over the content of a directory which is full of text files. Most are 1-2kb, but there's a few that are around 16mb. There's about 300 total files. The...

Categories

Follow Us on Twitter