Go

gorilla/csrf で安全なWebフォームを作る

こんにちは。GoでWeb開発していますか?私はしていません。Goに限らず、既成のWebアプリケーションフレームワークを使わずに自前でWebフォームを作る場合、なにも考えずに書くと CSRF (Cross Site Request Forgery) 脆弱性を作りこみ、不正なユーザー操作を…

GoとgRPCでKVS的なものを作ってみた

Go

正月で時間があったので、以前から触ってみたかったgRPCをGo言語から使い、キー・バリュー・ストアのようなものを作ってみた。 KVSといっても、GoのmapへのGet/Put/Delete/ScanをgRPC経由で叩けるようにしただけのもの。それだけだとあまり面白く無いので、g…

Goのflagでダブルダッシュ(--hoge)なフラグを許可する

Go

goのflag、”-hoge”だけじゃなくて”--hoge”を許してくれるだけで悩みの95%くらい解決するのになー…— Daisuke Maki (@lestrrat) 2014, 10月 21 これのためだけに別ライブラリをgo getするの若干抵抗ある— Daisuke Maki (@lestrrat) 2014, 10月 21 それヘルパー…

Golangで関数をグローバル変数に代入してテスト時にスタブする

Go

こんにちは、小野マトペです。タイトル全部です。 昨日、現在時刻によって条件分岐するロジックを含むGoプログラムを書いていて、どうテストするか困ったのですが、うまい(と思う)やり方を思いついたのでここに書いておきます。 書いていたのはまあだいた…

Go Concurrency Patterns: Context[翻訳]

7月29日付けのgolang.orgブログエントリーで context というパッケージが紹介されました。 Go Concurrency Patterns: Context - The Go Blog 参考: Go言語のcontextパッケージについてのやりとり - ワザノバ | wazanova 今現在、業務でGo言語を使ったWebサー…

Golangでの文字列・数値変換

Go

覚えられなくて使うたびにググってしまうので、以後楽をするためにスニペットを記す。 パッケージ strconvパッケージを使う。 文字列 → 数値変換(パース) func Atoi(s string) (i int, err error) 文字列を10進数のint型にパースする。ParseInt(s, 10, 0)…