画像周りの動作が意味不明かつ使い辛いので移転しました。 go言語のテスティングフレームワークについて — さにあらず
画像周りの動作が意味不明かつ使い辛いので移転しました。 go言語のテスティングフレームワークについて — さにあらず
GoCon 2013 autumnの後、yuroyoroなどとと飲んでいて 「Goのエラーを戻り値で引き回すのがどうも冗長」 「Haskellのエラーモナドみたいな何かがあればいいのに」 「型パラメータがサポートされればそういうのが書きやすくなるのに」 という話をしていて、クロージャーで関数呼び出しを囲えば今の言語仕様でもいいんじゃないかなと思ってその場で書いてみたものの話。 monad というのがインターフェイスになっていて、次のメソッドを定義している。 Do(what func () (interface {}, error)) monad 戻り値であるmonadに対して次にDoもしくはEndが呼ばれたときに呼ぶべき関数を受け取り、その関数への参照を保持するmonadを生成して返す DoIt() (interface{], error) monadの保持している参照先の関数を呼ぶ。内部
そういやまだ新しい経験だから覚えてるし、 golang を勉強していった過程を書いておく。 正しさとかは気にせず、動くものが出来るまでがむしゃらに。 Hello, world まで 特にひねりはない。 homebrew は便利だ。 $ brew install go $ cd ~ $ mkdir -p go/src/hello_world $ export GOPATH=${HOME}/go $ cd go/src/hello_world $ cat main.go package main import "fmt" func main() { fmt.Println("hello, world") } $ go run main.go hello, world 手軽。 入門、そして組み込みパッケージを使う http://golang.org/pkg/ に組み込みパッケージの一覧があるので
はじめに こんにちは、Go界の大杉漣です。いま、辻堂で合宿をしています。 xmlpathパッケージ GoでHTMLをパースしてごにょごにょしたいというときはgoqueryを使うことが多いですが、個人的にはあのコールバック書きまくるスタイルが好きではなく「そこまでjQueryの真似しなくてもいいだろ」と思っていました。 goquery - GoDoc またPythonで割とlxmlを使っていたこともあって、XPathを使うのが好きだったのでGoにも同様のXPathを扱えるパッケージがないかと探してみたらCanonical製のxmlpathというパッケージがありました。 xmlpath - GoDoc 使い方 めちゃくちゃ楽。ドキュメントにあるサンプルだとちょっと実用性がないので、もう少し実用性のある例。 resp, _ := http.Get("http://sample.com/conte
元ネタ あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずGo言語について知っていることを書いた。 パッケージマネージャ 標準でついてるgoツールを使おう。必要なライブラリはリポジトリから、go getで取ってこよう。 http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージのnet/httpパッケージを使えばhttpサーバを動かすことができる。apacheやnginxで動かしたかったら、標準パッケージのnet/http/cgiパッケージやnet/http/fcgiパッケージを使えばいい。 http://golang.or
Docker はひとつの Linux システムの上で、複数の Linux システムを動かすためのソフトウェアだ。システムの分離には Linux Containers (LXC) を、ファイルシステムまわりには Advanced multi layered unification filesystem (Aufs) をつかっている。 Docker は Go で書かれている。ソースコードは全体でだいたい15,000行で、そのうちおよそ 2/3 が本体、1/3 がテストとなっている。 % cat **/*.go | wc -l 14976 % cat $(ls **/*.go | grep -vi test.go) | wc -l 9797 % cat $(ls **/*.go | grep -i test.go) | wc -l 5179 % Docker Init, Docker Daemo
Go is an open source programming language designed for building scalable, secure and reliable software. Please read the official documentation to learn more. Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below. Unless stated otherwise, examples here assume the latest major release Go. Hello World Values Variable
ちょうど今日から夏休みの @ymmt2005 こと山本泰宇です。こんにちは。 夏休みなのにブログを書いている点は突っ込まないでください。 今回は Go を初めて業務に使ったときに躓いた点をまとめた資料を紹介します。これから使いだそうと考えている方は、これを読めば1日分位の調査は省けるかと思います。 ご存知の方も多いと思いますが、Go は Google で C++ が従来担当していたシステム開発用の言語として開発され、2009 年に公開されたプログラミング言語です。ここ最近広く使われだしたようで、一昨日の Hacker News では Go の記事が乱立していました。 cybozu.com でも Go を開発言語のひとつに採用しようとして、まず Python で書かれていたある TCP のクライアント・サーバープログラムを Go で書き直してみました。型どおりに公式のチュートリアルをこなし、
はじめに こんにちは、Go界のジェフ・ベゾスです。シアトルのお父さんがGoでおもしろプログラムを書いているようですが、ちょっと気になったので勝手に添削しました。 今日も明日もググったー: golang certificate ssl handshake 元のコード まず最初のコード。 package main import ( "crypto/tls" "crypto/x509" "fmt" "log" "os" ) func main() { if len(os.Args) < 1 { log.Fatal("You must input a hostname") } peerCertificates, err := GetCert(os.Args[1]) if err == nil { for i, Cert := range peerCertificates { fmt.Printf(
Mozillaは4月30日、サーバーのログデータ収集や分析の簡素化を図るフレームワーク「Heka」のベータ版「Heka v0.2b1」をリリースした。サーバーの稼働状況に関するさまざまなデータの収集・分析などを簡素化・容易化するツールで、初めてのベータ版公開となる。 HekaはMozillaのサービスチームが開発したツール。メッセージのルーティング、収集、分析などの機能をもつ「hekad」とクライアントライブラリから構成されている。logstasch、statsd、syslogなどさまざまなツールが持つ役割を統合するもので、ログファイルやサーバー診断などのデータを収集し、標準形式に変換した後にルーティングルールセットに基づき評価してルーティングするという流れ。hekadはデータパイプラインの構築に適しているとの理由から米GoogleのGo言語で作成されており、軽量でほとんどのホストで動くと
Go Conference 2013 Springに参加してきました。 ハンズオンの時間は、放置していたcode.google.com/p/go.net/websocketをいじってました。 プレゼンは「「なぜGoなのか」というところを話してほしい」ということだったので、言語機能の説明よりもどのあたりがいいかを説明してみることにしました。 「最初はキモッって思うかもしれないけど、そのうちかわいく見えてきますよ」というかんじが伝えられたでしょうか。 なんでGoをつかうとうれしいかは、大規模なチームの中で大規模なコードをいじらないとなかなかピンとこないかもしれません。 印象としてはこんなかんじかなー C 知っている技術者は多い。OOをやるにはめんどい(glibみたいになっていく?)。大規模になってくるとclassとかnamespaceとかないとつらいかんじ C++ 知っている技術者はそこそこ多
最近 SPDY と WebSocket がアツいですね。 再来週の SPDY & WS 勉強会 も、定員100名に対して 参加者が 247 名とかなりアツいことになっています。 その予習というわけでもないですが、最近 WebSocket を実サービスへの 導入方法を考えながら遊んでいたので、 WebSocket の負荷分散方法について 考えていることを書いておこうと思います。 ステートフルな WebSocket アプリケーション HTTP サービスは基本的にステートレスな実装になっており、リクエストが来るたびに DBサーバーや memcached などのバックエンドから情報を取得して返していました。 この構成では Web アプリ自体は完全にステートレス化することができているので、 負荷分散機はラウンドロビン等のアプリケーションを無視した負荷分散をすることができました。 しかし、 WebSo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く