タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

tipsとcodeとgolangに関するko-ya-maのブックマーク (6)

  • Big Sky :: Re: Goでコマンドライン引数と環境変数の両方からflagを設定したい

    Goでコマンドライン引数と環境変数の両方からflagを設定したい - Qiita Goで実装したプログラムでオプションをコマンドライン引数から取るには標準の `flag` パッケージを使いますが、値を環境変数からも読みたいことがあります。(特に Docker で動かす場合) htt... http://qiita.com/sfujiwara/items/f177d85e9c10f4c34fb6 実は結構簡単に出来ます。github.com/namsral/flag に依存したくない場合や github.com/namsral/flag が実は flag 互換で無かった、なんて問題が見付かった場合に使えるハックです。 オリジナルのコード package main import ( "flag" "fmt" ) func main() { var age int flag.IntVar(&ag

    Big Sky :: Re: Goでコマンドライン引数と環境変数の両方からflagを設定したい
  • 『Go言語でTestableなWebアプリケーションを目指して』

    はじめまして@shohhei1126です! 2016年1月にリリースされたAmebaFRESH!のサーバサイドを担当しております。 ここ1、2年社内でもGo言語を使うプロジェクトが増えてきているのですが(Go Lang in Cyberagent こちらもどうぞ)AmebaFRESH!でもGo言語をメインに使っています。 今回はGo言語のテストへのアプローチについて考えたいと思います。 テストの書きやすさGoでは言語レベルでテストをサポートしている(https://golang.org/pkg/testing/#pkg-overview)のでテストを書くという敷居は他の言語より低く感じます。実際これまでのプロジェクトの中で一番テストを書いていますし、やっぱりテストがあると安心感ありますね(・∀・) Mock化の難しさテストの取っ掛かりとしての敷居は低いですがデータアクセスまわりのテストを書

    『Go言語でTestableなWebアプリケーションを目指して』
  • Goでお手軽に行列の積を爆速並列計算 - Qiita

    TL;DR Go言語で行列の積を並列計算する実装例を示した(たぶんよりよい書き方あるので誰か教えて) ローカルのマシンとAWSのc4.8xlargeで実験すると、それなりに爆速になった まえがき 競技プログラミングにおいて、行列累乗の計算が要求されることがよくあります。典型的な例は、複数の項の漸化式を行列の形に直すものでしょう。 行列の累乗の計算量は n を行列のサイズ、P を乗数とすると、繰り返し二乗法を用いることにより O(n^3logP) です。これは、行列同士の掛け算の部分が O(n^3) でボトルネックになっています。今回はこれを Goを用いて並列処理します。 Goの並列処理の仕組み 一言でまとめると、Goroutine(ゴルーチンと読む)という存在が複数のスレッド上で走っていて、そいつらは channelというものを介して相互に値をやり取りできます。 Goroutineを生成す

    Goでお手軽に行列の積を爆速並列計算 - Qiita
  • Golangで作ったhttpdの接続数を制限してみよう

    こんにちは。斎藤です。 ここ1〜2年、私は仕事Golangを書くことが増えています。きっかけは、ITインフラをお預かりする中で、お客様のサーバにツールを置く場合でも1つのバイナリさえ置けば良いという手軽さからだったのですが、最近はScalaと並び手軽に並列処理が書けるプログラミング言語として重宝しています。 さて、今回はGolangで作ったhttpdの接続数をLimitListenerを利用して接続数の制限をしてみようというお話です。以下に紹介するお話は、Githubのリポジトリ "github.com/koemu/go-http-max-connections-demo" にデモプログラムを保存しています。Golangのビルド環境がある方は、実際にビルドしながらお試しいただければと思います。 ※Golang 1.5.1でビルドする前提で説明しています モティベーション 仕事でとあるAP

    Golangで作ったhttpdの接続数を制限してみよう
    ko-ya-ma
    ko-ya-ma 2015/10/20
    頑張りすぎてサーバを落とさないための心遣い
  • 結局 golang の HTTP Response Body はどう閉じるのが正しいのか? - 押してダメならふて寝しろ

    さっそくカウンター記事を頂きました.ありがとうございます! qiita.com たしかに必ず閉じてるように見えます.エラーがあっても Body が non-nil なら閉じるようにコード仕込んでおくというのは杞憂だったのでしょうか.そんな気もします.たぶん誰もそんな風にコード書いてないし,godoc のサンプルにもそういうのはない.(僕も元記事読んだときは衝撃的だった エラーがないときは Response Body が non-nil であることが godoc に書かれています. http://golang.org/pkg/net/http/#Client.Do なので,エラーがないときは Response Body を閉じるようにコードを仕込んでおく必要があります. それは gopher の共通認識な感じがしてるんですが,問題なのはエラーがあるときです. エラーがあるときは,たいていの場

    結局 golang の HTTP Response Body はどう閉じるのが正しいのか? - 押してダメならふて寝しろ
  • たぶんみんな間違えてる golang の HTTP Respose Body の閉じ方 - 押してダメならふて寝しろ

    元ネタはこちらのブログ. 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs あまりにも衝撃的でした.HTTP Response の Body を閉じるとき,たぶん,みんなこう書いてると思うんだけど, 誤)エラーがないかチェックしてから閉じるようにしておく resp, err := http.Get("http://golang.org") if err != nil { return err } defer resp.Body.Close() エラーがあっても,Response が nil じゃないときがあるらしい.なので,正しい閉じ方はこう. 正)Response が nil じゃなかったら閉じるようにしてからエラーをチェックする resp, err := http.Get("https://

    たぶんみんな間違えてる golang の HTTP Respose Body の閉じ方 - 押してダメならふて寝しろ
  • 1