タグ

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

タグの絞り込みを解除

Goに関するkimitoboku035のブックマーク (5)

  • Goのデバッグに便利なpretty printライブラリ「pp」を作った - Qiita

    概要 k0kubun/ppという、pretty printライブラリを作った。 任意の型のオブジェクトをpp.Print()に渡すと色つきでpretty printしてくれるという非常にシンプルなもの。 作った背景 fmt.Printf("%#v", ...)等ではわかりづらい複雑なmapやstructをdebug printするときは、pretty printを使うと便利。既存のpretty printライブラリには、GitHubで人気なものだとdavecgh/go-spewやkr/prettyなどがある。 いままではGoでデバッグのために複雑な構造をダンプするときこれらを使っていたのだが、必要以上に型の情報が書かれていたり、大きなものだと白黒なのでパッと見てわかりづらいなどの問題があった。 そこで、型やフィールドごとに別の色をつけることで視認性を高め、ビルトインの型情報は色にまかせて省

    Goのデバッグに便利なpretty printライブラリ「pp」を作った - Qiita
    kimitoboku035
    kimitoboku035 2014/12/02
    便利っぽい
  • チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋

    簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3

    チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋
  • Go のスライスの内部実装 - Block Rockin’ Codes

    History 14/05/09: Merge2 を修正しました。http://twitter.com/jbking/status/464659353945911297 Intro Go のスライスは、いわゆる LL 系の言語が持つ可変長配列の実装と似ています。 よって LL のような手軽な扱いをすることもできますが、その内部実装を知ることでより効率の良いメモリハンドリングができ、パフォーマンスを改善や、メモリーリークの防止などに繋がる可能性があります。 この辺は SWrap というライブラリを作りながら勉強したので、今回は、この Go のスライスの内部実装を解説します。 Go の配列 スライスを知るためには、まず配列について知っておく必要があります。 Go の配列は固定長のため、以下のように長さを指定して宣言します。 var arr [4]int func main() { arr =

  • Big Sky :: golang で複数のエラーをハンドリングする方法

    golangいまどき例外ないの頭おかしいって思ってたけどようするにgoroutineと例外がうまくいかないからgoroutineのほう取って例外捨てたってことかねえ。 — Urabe, Shyouhei (@shyouhei) April 15, 2014 FAQ に書いてあります。 Why does Go not have exceptions? - Frequently Asked Questions (FAQ) - The Go Programming Language We believe that coupling exceptions to a control structure, as in the try-catch-finally idiom, results in convoluted code. It also tends to encourage programme

    Big Sky :: golang で複数のエラーをハンドリングする方法
  • Web IDEを統合したPaaS「Nirous.io」がオープンβ開始。Ruby、Python、Node.js、Go対応で、友達を紹介すると無料枠の性能が向上

    Web IDEを統合したPaaS「Nirous.io」がオープンβ開始。RubyPython、Node.js、Go対応で、友達を紹介すると無料枠の性能が向上 また新しいPaaS型クラウドサービスが登場しました。オープンβを開始したばかりの「Nitrous.io」(動画を見る限り「ナイトラス・アイオー」と発音するらしい)はRubyPython、Node.jsとGoに対応したPaaS型クラウドサービスで、Webブラウザから利用できる統合開発環境を統合。サーバのプロビジョニングからアプリケーション開発、デプロイまですべてがWebブラウザで完結します。 Nitrous.ioではアプリケーションは「Box」上で実行し、Boxの性能は「N2O」と呼ばれる単位で管理されます。新規のBoxにはユーザー当たりデフォルトで、合計で150N2Oに相当する384MBメモリ、750MBストレージが無料で提供され

    Web IDEを統合したPaaS「Nirous.io」がオープンβ開始。Ruby、Python、Node.js、Go対応で、友達を紹介すると無料枠の性能が向上
    kimitoboku035
    kimitoboku035 2013/07/02
    Go言語さん最近流行ってきてるなー、
  • 1