タグ

ブックマーク / frasco.io (4)

  • Docker チートシート - Frasco

    私は以前の仕事Docker を使っており、今の会社(eralabs.io)でも顧客のために使っています。そして、これまでの経験により得た Docker の知識を皆さんにシェアしたいと思い、Painless Docker Course を始めました。 私は Docker、コンテナ、オーケストレーション、分散システムが好きです。そして、Painless Docker の多くの読者がその内容に満足していることは嬉しいことでした。 Painless Docker はただのではなくコースとなりました。詳しくは、ウェブサイトをご覧ください。 ここで紹介しているのは、 Painless Docker Course の中身の一部です。Git repo でも公開していますので、ぜひご覧ください。 このチートシートは、Painless Docker Course にあるものの一部です。 GitHub

    Docker チートシート - Frasco
  • Go API のための再利用可能で型安全なオプションの実装方法 - Frasco

    背景 記事では、Rob Pike 氏と Dave Cheney 氏により記述された「Functional Option Pattern」の拡張について説明したいと思います。このパターンに慣れていない人は、まず彼らの記事を読むことをおすすめします。 問題 このパターンの限界を見るために、etcd v3 client について考えてみます。特に、key-value の値を取得したり登録したりするための API である KV インターフェースに着目してください。例えば、Get の API はこのような形です: Get(ctx context.Context, key string, opts ...OpOption) (*GetResponse, error) ここで、opts は functional options のリストです。この API を呼び出すには、以下のように書きます: res

    Go API のための再利用可能で型安全なオプションの実装方法 - Frasco
  • Git 爆弾 - Frasco

    もしあなたが冒険好きな人なら(そして起こるかもしれない再起動に対処できる人なら)、この小さなリポジトリをクローンしてください: $ git clone https://github.com/Katee/git-bomb.git クローンできましたか?あなたのマシンが相当なメモリ(RAM とストレージ合わせて)を積んでいない限り、git が殺されたか、メモリ不足になったか、再起動しなければならなかったと思います。なぜでしょう?これは、たった12個のオブジェクトで構成されたリポジトリです。 どのようにして、この小さなリポジトリがメモリ不足を起こすのでしょうか?その秘密は、git が行う blobs(ファイルを保存しておくもの)の de-duplication(重複排除)です。これは、リポジトリを小さく、そしてコミット間でファイルが変更されていない場合に同じ blob を使うようにするためのもの

    Git 爆弾 - Frasco
    komlow
    komlow 2017/10/26
  • なぜ私達は Python から Go に移行したのか - Frasco

    新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、GoPython より30倍速いです。GoJava を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな

    なぜ私達は Python から Go に移行したのか - Frasco
  • 1