タグ

ブックマーク / qiita.com/shunsukeaihara (2)

  • 楽ができるGolangのライブラリ達 - Qiita

    ライブラリ探すなら基awesome go見とけばいいけど、いろいろ楽するためという観点で、思い出した順に適当に追記していく。気が向いたらサンプルも書く gojson https://github.com/ChimeraCoder/gojson jsonのデータを渡すとそれに対応するstructを生成してくれる。JSON APIを利用するときに楽ができる。既存APIのリプレイスをGoでやるときとかも良い。 goquery https://github.com/PuerkitoBio/goquery JQueryっぽくhtmlをパースしたり検索したりして楽ができる。自前でhtmlのパースなんか書いてられない。 goreq https://github.com/franela/goreq net/httpパッケージで、httpリクエストを飛ばすのは結構面倒だったりいろんな書き方があったりしてヘ

    楽ができるGolangのライブラリ達 - Qiita
  • 複数のgroutineが連携する通信オブジェクトの設計方針 - Qiita

    忘備録的に。推敲が足りないので読みづらいので心の広い人以外は読まないように。 goでは、Socket扱ったりいろんな通信をする複数のgoroutineが生えてるアクター的なStructを作ることが多いので、綺麗に全てのgoroutineを終了して何らかの終了処理を実施するための基構成をまとめる。 まず停止処理に関係なくdeadlockを避けるために気をつけること socketでも待つしchannelでも待つしsync.Condとかでも待つというような複数のwaitが行われるようなgoroutineはdeadlockする可能性が高いのでそもそも作るべきじゃない。 threadsafeじゃないオブジェクトを触るのは基的に一つのgoroutineに収める channelにオブジェクトの操作を完全に任せられない場合は、Mutexを使うことになるが、Mutexでロックしている範囲を不用意に広くし

    複数のgroutineが連携する通信オブジェクトの設計方針 - Qiita
  • 1