Go
この記事はQiitaで公開されていました 素直な実装 特に何もしない場合、net/httpはタイムアウトしません。以下のサーバにHTTPアクセスをすると、1分後にhello!というレスポンスを返します。 package main import ( "log" "net/http" "time" ) type handler s…
この記事はQiitaで公開されていました 問題 Goは、$GOPATH/src/ 以下にパッケージのソースコードを置くルール。自分で書いたコードも例外ではないので、以下の例では、自分で書くコードを $GOPATH/src/example.com/app に置いている。 $GOPATH/ └ ─ /src ├ ─…
この記事はQiitaで公開されていました ユーザ操作などで、同じAPIを同時にリクエストされたけれど、例えばGETメソッドの場合は結果もほとんど同じになるので、リクエストを1回にまとめてしまいたい場合は少なくないと思います。 または、期限付きの認証トー…
この記事はQiitaで公開されていました この記事は、Goアドベントカレンダー(その2)の19日目です。 何を言っているのか分からないかもしれませんので、動画を用意しました。 アドベントカレンダーはこれを作った話です。本当はPlan 9対応までやりたかった。 p…
この記事はQiitaで公開されていました macOS SierraでソースからGoをコンパイルできなくて調べた内容です。macOSなら公式からバイナリパッケージが提供されているので、自分でコンパイルしなくてもそれを使えばいいだけなのですが、他の環境でも使える内容だ…
この記事はQiitaで公開されていました 例えば、APIの結果を使った処理を行う場合、ユーザとしてはなるべく早く処理をしたいけど、早すぎるとサーバの処理が追いつかないケースはよくあると思います。 そういう時、APIを実行した後でtime.After等を使って少し…
この記事はQiitaで公開されていました Goのパッケージ名は、リポジトリのURLをそのまま使うことが多いと思いますが、リポジトリはそのままで、別のURLをパッケージ名にすることもできます。 例えば、あるパッケージのリポジトリをGitHubに置いていて、リポジ…
この記事はQiitaで公開されていました 以下のコードは通常分かりづらいバグを持っています。 package main import ( "fmt" "runtime" "sync" ) type Counter int32 func (c *Counter) Inc() { *c++ } func main() { var c Counter var wg sync.WaitGroup for…
この記事はQiitaで公開されていました ゴルーチンで並行実行中させた処理の中で、エラーが発生した場合にどう扱うかは割と面倒です。 package main import ( "io/ioutil" "log" "net/http" "os" ) func main() { c := make(chan []byte) go func() { res, er…
この記事はQiitaで公開されていました GoとLimboは、一部のファンから、似ていると言われますので、そんなに似ているのか、実際に比較してみました。ついでに、この2つの言語は共通してAlefが先祖になりますので、Alefも含めます。 いちおうこの記事は、Go A…
この記事はTumblrで公開されていました Go 1.3.1をビルド Plan 9(386)にGo 1.3.1をインストールしてみた。通常どおりsrc/all.rcを実行したのだけれど、cmd/8cと出力された後にinvalid opcodeエラーで落ちる。そのため、インストールできない。 Go 1.3.0をビ…
この記事はQiitaで公開されていました brew本体をインストールするのもGo公式パッケージを入れるのも管理者権限を要求されますが、権限が無くてもGoはソースからインストール可能ですしなるべく環境を汚さないようにしたい場合にも有用だと思います。 ただし…
この記事はTumblrで公開されていました(Go 1.2の頃に書いたものです) Go言語には、ワークスペースという構造があります。最初はとても取っ付きづらいのですが難しいものではないので、軽く書き流します。 ルール GOROOT環境変数 GOROOT環境変数は、Go言語本…
この記事はTumblrで公開されていました。とても古い記事なので参考にならないかも。 こないだ業務でGoを使ったプログラムを書きました。もともと個人的に使っていましたが、いいきっかけなのでまとめておきます。 インストール ここではソースからインストー…