ブックマーク / kaneshin.hateblo.jp (3)

  • Vim をあまりカスタマイズしなくなった話 - at kaneshin

    この記事は Vim Advent Calendar 2016 - Qiita の11日目の記事です。 社内ではVimハラスメントが横行していますが、私自身のVimは毎朝やる最新版ビルドを除いてカスタマイズすることがほぼ無くなりました。 元からハードにカスタマイズはしておらず、 ctrlp あれば十分だなという感じで、たまに .vimrc をいじるのは新しい言語を試すときにシンタックスのプラグインを導入するくらいです。 さて、そんなVimmerの私が「これだけおさえていれば充分」という基機能を紹介します。 ちなみに、 ctrlp の記事を4年前の Vim Advent Calendar で書いています。 blog.kaneshin.co バッファ Vimにはバッファという機能があり、開いたファイルをVim上で管理されています。バッファを確認するには :buffers か :ls コマンドを

    Vim をあまりカスタマイズしなくなった話 - at kaneshin
  • golang で regexp パッケージを使うときに気をつけること - at kaneshin

    golang の Regexp は初期化の Compile コストがそこそこありますが、実は正規表現のパターンと対象となる文字列によって、初期化コストが無視できる(パターンと文字列に支配される)くらい遅くなります。よく言われる regexp の初期化コスト問題が無視できると言われても、正直、全く嬉しくないですね。 ただ、コーディング中に regexp パッケージを使わなければいけない場面は出てくるため、なるべくコストの掛からない実装を心がけています。 Compile/MustCompile 初期化コストはなくすため、グローバルに保持するようにします。 定義 var re = regexp.MustCompile("[a-z]{3}") func main() { fmt.Println(re.FindAllString("foobarbazqux", -1)) // => [foo bar

    golang で regexp パッケージを使うときに気をつけること - at kaneshin
  • golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin

    golang で処理の高速化をするために goroutine/channel を使って並行処理にし、待ち時間を無駄にしないようにするのは言葉で表すのは簡単ですが、実際にパターンとして落としこむためには経験が必要だなと思うので、今回 Dispatcher-Worker として Job Queue を golang で実装する方法を紹介したいと思います。 この記事は mattn さんの Big Sky :: golang の channel を使ったテクニックあれこれ の次のステップとして読むことをオススメします。 mattn.kaoriya.net golang で作成したアプリケーションで多くのリクエストをアプリケーションが送受信する必要がある場合、高速に捌くために並行処理にして非同期化を図る場合を想定しています。 今回は get という関数でHTTPリクエストを実行して取得したデータのサ

    golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin
  • 1