Tips for writing clear, performant, and idiomatic Go code
![Go 1.14 is released - The Go Programming Language](https://cdn-ak-scissors.b.st-hatena.com/image/square/61955b2029cca886435bd7bb93b949e8f18ae48d/height=288;version=1;width=512/https%3A%2F%2Fgo.dev%2Fdoc%2Fgopher%2Frunningsquare.jpg)
Damien Neil and Jonathan Amsterdam 17 October 2019 Introduction Go’s treatment of errors as values has served us well over the last decade. Although the standard library’s support for errors has been minimal—just the errors.New and fmt.Errorf functions, which produce errors that contain only a message—the built-in error interface allows Go programmers to add whatever information they desire. All i
Introduction to Go 1.12 The latest Go release, version 1.12, arrives six months after Go 1.11. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before. Changes to the language There are no changes to the language specification
Andrew Bonventre 24 August 2018 Who says releasing on Friday is a bad idea? Today the Go team is happy to announce the release of Go 1.11. You can get it from the download page. There are many changes and improvements to the toolchain, runtime, and libraries, but two features stand out as being especially exciting: modules and WebAssembly support. This release adds preliminary support for a new co
Andrew Gerrand 25 January 2011 Introduction JSON (JavaScript Object Notation) is a simple data interchange format. Syntactically it resembles the objects and lists of JavaScript. It is most commonly used for communication between web back-ends and JavaScript programs running in the browser, but it is used in many other places, too. Its home page, json.org, provides a wonderfully clear and concise
Introduction to Go 1.10 The latest Go release, version 1.10, arrives six months after Go 1.9. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before. This release improves caching of built packages, adds caching of successful
Francesc Campoy 24 August 2017 Today the Go team is happy to announce the release of Go 1.9. You can get it from the download page. There are many changes to the language, standard library, runtime, and tooling. This post covers the most significant visible ones. Most of the engineering effort put into this release went to improvements of the runtime and tooling, which makes for a less exciting an
Steve Francia, for the Go team 6 March 2017 Thank you This post summarizes the result of our December 2016 user survey along with our commentary and insights. We are grateful to everyone who provided their feedback through the survey to help shape the future of Go. Programming background Of the 3,595 survey respondents, 89% said they program in Go at work or outside of work, with 39% using Go both
Chris Broadfoot 16 February 2017 Today the Go team is happy to announce the release of Go 1.8. You can get it from the download page. There are significant performance improvements and changes across the standard library. The compiler back end introduced in Go 1.7 for 64-bit x86 is now used on all architectures, and those architectures should see significant performance improvements. For instance,
Marcel van Lohuizen 3 October 2016 Introduction In Go 1.7, the testing package introduces a Run method on the T and B types that allows for the creation of subtests and sub-benchmarks. The introduction of subtests and sub-benchmarks enables better handling of failures, fine-grained control of which tests to run from the command line, control of parallelism, and often results in simpler and more ma
Testing Techniques Google I/O 2014 Andrew Gerrand Video This talk was presented at golang-syd in July 2014. Watch the talk on YouTube 2 The basics 3 Testing Go code Go has a built-in testing framework. It is provided by the testing package and the go test command. Here is a complete test file that tests the strings.Index function: package strings_test import ( "strings" "testing" ) func TestIndex(
Russ Cox, July 2011; updated by Shenghou Ma, May 2013 24 June 2011 At Scala Days 2011, Robert Hundt presented a paper titled Loop Recognition in C++/Java/Go/Scala. The paper implemented a specific loop finding algorithm, such as you might use in a flow analysis pass of a compiler, in C++, Go, Java, Scala, and then used those programs to draw conclusions about typical performance concerns in these
David Crawshaw 18 August 2016 Introduction Go was designed for writing servers. That is how it is most widely used today, and as a result a lot of work on the runtime and compiler is focused on issues that matter to servers: latency, ease of deployment, precise garbage collection, fast startup time, performance. As Go gets used for a wider variety of programs, there are new issues that must be con
Chris Broadfoot 15 August 2016 Today we are happy to announce the release of Go 1.7. You can get it from the download page. There are several significant changes in this release: a port for Linux on IBM z Systems (s390x), compiler improvements, the addition of the context package, and support for hierarchical tests and benchmarks. A new compiler back end, based on static single-assignment form (SS
Advanced Go Concurrency Patterns Sameer Ajmani Google Video This talk was presented at Google I/O in May 2013. Watch the talk on YouTube 2 Get ready 3 Go supports concurrency In the language and runtime, not a library. This changes how you structure your programs. 4 Goroutines and Channels Goroutines are independently executing functions in the same address space. go f() go g(1, 2) Channels are ty
Andrew Gerrand 17 February 2016 Today we release Go version 1.6, the seventh major stable release of Go. You can grab it right now from the download page. Although the release of Go 1.5 six months ago contained dramatic implementation changes, this release is more incremental. The most significant change is support for HTTP/2 in the net/http package. HTTP/2 is a new protocol, a follow-on to HTTP t
Dmitry Vyukov and Andrew Gerrand 26 June 2013 Introduction Race conditions are among the most insidious and elusive programming errors. They typically cause erratic and mysterious failures, often long after the code has been deployed to production. While Go’s concurrency mechanisms make it easy to write clean concurrent code, they don’t prevent race conditions. Care, diligence, and testing are req
Andrew Gerrand 23 September 2010 Concurrent programming has its own idioms. A good example is timeouts. Although Go’s channels do not support them directly, they are easy to implement. Say we want to receive from the channel ch, but want to wait at most one second for the value to arrive. We would start by creating a signalling channel and launching a goroutine that sleeps before sending on the ch
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く