Andrew Gerrand 6 February 2013 Introduction One of the most useful data structures in computer science is the hash table. Many hash table implementations exist with varying properties, but in general they offer fast lookups, adds, and deletes. Go provides a built-in map type that implements a hash table. Declaration and initialization A Go map type looks like this: map[KeyType]ValueType where KeyT
Proverbs from @rob_pike's inspiring talk at Gopherfest SV 2015 (video). The Gopher character is based on the Go mascot designed by Renée French and copyrighted under the Creative Commons Attribution 3.0 license. These proverbs are the basis of a talk by Rob Pike and the list may be updated when he next gives the talk. Please read the contribution guidelines before opening an issue to nominate a ne
Go’s arrays are values. An array variable denotes the entire array; it is not a pointer to the first array element (as would be the case in C). This means that when you assign or pass around an array value you will make a copy of its contents. (To avoid the copy you could pass a pointer to the array, but then that’s a pointer to an array, not an array.) One way to think about arrays is as a sort o
Rob Pike 12 January 2015 A common point of discussion among Go programmers, especially those new to the language, is how to handle errors. The conversation often turns into a lament at the number of times the sequence if err != nil { return err } shows up. We recently scanned all the open source projects we could find and discovered that this snippet occurs only once per page or two, less often th
Andrew Gerrand 12 July 2011 Introduction If you have written any Go code you have probably encountered the built-in error type. Go code uses error values to indicate an abnormal state. For example, the os.Open function returns a non-nil error value when it fails to open a file. func Open(name string) (file *File, err error) The following code uses os.Open to open a file. If an error occurs it call
November 2018 Summary: After reading The AWK Programming Language I was inspired to write an interpreter for AWK in Go. This article gives an overview of AWK, describes how GoAWK works, how I approached testing, and how I measured and improved its performance. Go to: Overview of AWK | Code walkthrough | Testing | Performance Chinese (zh) translation: 一个用Go编写的AWK解释器 Update: GoAWK now uses a bytecod
You can now develop your AWS Lambda function code using Go. Lambda lets you run code without provisioning and managing servers. You simply upload your Go executable artifact as a ZIP file through the AWS CLI or Lambda console and select the go1.x runtime. With Lambda, you can use Go's native tools to build and package your code. Read our documentation for more details. You can also use the AWS Ser
One day at work, we were discussing the Go programming language in our work chatroom. At one point, I commented on a co-worker's slide, saying something along the lines of: "I think that's like stage three in the seven stages of becoming a Go programmer." Naturally, my co-workers wanted to know the rest of the stages, so I briefly outlined them. Here, expanded with more context, are the seven stag
Introduction This is the reference manual for the Go programming language. The pre-Go1.18 version, without generics, can be found here. For more information and other documents, see go.dev. Go is a general-purpose language designed with systems programming in mind. It is strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages
Like most of the web services in the current software development trends, the service that our team is currently building is also based on the idea of microservice architecture using the Go programming language. Right now we have around 10, in theory, independently deployable services and these services are often communicating with each other using RESTful APIs with over 100 of HTTP endpoints. Als
テストしやすいGoコードのデザイン golang.tokyo #2 12 December 2016 Taichi Nakashima 言いたいこと 明示的であれ! 2 whoami @deeeet / @tcnksm (GitHub) http://deeeet.com A PaaS Dev&Ops (Using go for CLI tool, API, Batch jobs) 3 OSS Tools gcli - The easy way to build Golang command-line application ghr - Create Github Release and upload artifacts in parallel Packages go-httpstat - Go package for tracing golang HTTP request latency
AtmanOS compiles ordinary Go programs into images which can be run on a hypervisor without a conventional operating system. It provides a microkernel and implementation of Go's runtime and standard library implemented natively in Go (with a little bit of Assembly). It currently targets the Xen hypervisor, allowing the images to be run on Amazon EC2, Rackspace Cloud, IBM SoftLayer, and other cloud
3/18に第20回 Monthly Technical Session (MTS) が開催されました。MTSは月一回執り行われる、主に社内向けに現在どのような事を技術者が行っているのかという情報やその中で得られた知見を共有するための取り組みです。 司会のシー・ハンさんが開催をアナウンスしてくれました 今回のお題は二つです。最初はイスカンダルさんによる、現在旧アーキテクチャから新アーキテクチャにデータ移行中のサービスの概要についてです。データの整合性の取り方や考えられる問題点等についての説明をしていただきました。 次は牧によるJSON Schemaとその関連技術を使ってコードを自動生成するための道のりの話です。サーバーのスケルトン、バリデーション、クライアントコードなどが全てひとつのスキーマから生成されるまでの仮定やなぜ他のツールではなくJSON Schemaを使うのか等の話をしました。 ト
(English version available here) HDE Advent Calendar二日目です。子育ての話の続きでも書こうかと思ったのですがうちの子供がどれだけ可愛いかを話してもう会社と関係ないところに行ってしまいそうでしたので止めました。 blog.hde.co.jp では何を書こうか… 今年はあちこちのカンファレンスに顔を出したり、YAPC::Asia Tokyo 2015の主催をしたりもしたのですが、それももうあちこちに書いてしまっていました。 というわけで裏方の技術なので地味ですが、ここしばらくやっていた自分の本来の商売である技術ネタを紹介します。 OAuth2/OpenIDとJOSE (JWA/JWT/JWK/JWS/JWE) Dilbert Comic Strip on 2004-01-11 | Dilbert by Scott Adams ここしばらくGo
プログラミング言語、「Go」の存在感が増している。Goは、2009年に米グーグルが発表し、オープンソースとして公開した言語(画面1)。動的型付け言語の高い生産性と、C/C++のような静的型付けを持つコンパイラ型言語の安全性/性能の両立を目的に開発された(関連記事:GoogleがUNIX作者らが開発した新言語「Go」をオープンソースとして公開)。 文法自体はCに似ているが、オブジェクト指向の考え方を採り入れ、ガベージコレクションの仕組みも備える。メモリーの確保や解放をプログラマーが明示的に行う必要がない。並列処理を標準でサポートしているのも特徴だ。 Go言語はグーグル自身がソフトウエア開発の一部で用いているほか、他社による採用事例も増えている。例えば米ドロップボックスは2014年7月、Go言語の採用を表明した。国内でも、はてなやメルカリ、Gunosyなどが、サービス開発の一部にGo言語を採用
こんにちは。HDEクラウドプロダクト開発部 小本です。 昨年はGo言語が大盛り上がりでした。HDEでも新規サービスをGo言語で書いています。 しかし、先日リリースされたaws-sdk-goなどについては諸先輩方が書いてくださると思うので、 私は重箱の隅つつきのようなことを書こうと思います。 今日書くのは、私のチームではGo言語標準のlogを(多少のラッパー関数経由で)使っていたのですが、 実はLogrus(https://github.com/Sirupsen/logrus)が、かなり便利だったという話です。 標準のlogは貧弱 エラーレベル(Debug, Info, Warn, Error等)が無いのも問題ですが、 ログをPrintfなどで自分で整形しなければいけないのも問題です。 つまり・・・ // 悪い例1 log.Printf(`some error occured level=%
久しぶりの更新 GitHubの <URL:http://github.com/matz/streem> を公開したら驚くべき反響の大きさなので、本人もびっくりしている。 ので、ここでちょっとまとめておく。 もともとは日経Linuxの自作言語入門の連載のネタ 時系列的には2015年1月号で言語仕様を決めた(原稿提出は11月中旬) 2015年2月号で実装について解説(原稿提出は12月初旬) 2月号原稿には「github.com/matz/streemを参照のこと」と書いた 提出したその日に1月号発売 原稿提出後、原稿で解説した部分を実装し(300行程度)、githubにアップロード だれかが見つける hackernews, redditなどでバズる github issues, pull requestなどいっぱいくる 私が実装する前に Go で実装しちゃう人が出る (mattn/streee
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く