タグ

ブックマーク / blog.yugui.jp (3)

  • gRPC-JSON proxy - 世界線航跡蔵

    grpc-gateway という gRPC からJSON APIへの変換プロキシ生成機を書いた。 これを使えばシステム内部ののmicroservicesはgRPCで通信しつつ公開APIはJSON APIで提供する、みたいなことが簡単になる。 なお、gRPCそのものについては mattnさんの記事 が参考になる。 背景 gRPCの良い点はいくつもある。 データはデフォルトでprotocol buffersで直列化される。ベストではないにせよ十分にコンパクト且つ高速だし、サイズで言えばJSONとは比べるべくもない。 簡単に複数の言語でサーバーのテンプレートやクライアントを生成できる。通信の詳細はgRPCにまかせて開発者はサーバーロジックの実装に注力できる。 design by Googleという安心感。 gRPCの素晴らしさは認めるものの、一方では欠点もある。まず、クライアントライブラリの多く

    gRPC-JSON proxy - 世界線航跡蔵
  • libchanを読んだ - 世界線航跡蔵

    libchan を読んだのでまとめてみる。 libchanとは libchanはdockerに使われているライブラリの1つで、先月の DockerCon で発表された。 非同期かつ一方向の通信チャネルをインプロセスでもネットワーク越しでも扱えるというGoライブラリである。 一方向とはいうものの、チャネル自体をデータに添えて他のチャネル越しに送れる。なので、返信や待ち合わせが必要ならば自分宛のチャネルを送って相手に使ってもらい、自分はそのチャネルの上で待機していれば良い。 早い話がGo言語の機能であるチャネルをネットワーク対応したようなものだ、と書いてある。 DockerはこのDockerConではDocker 1.0に加えてlibcontainer, libchan, libswarm, Docker Hubを発表していて一応キーノートの話題の1つではあったものの、 個人的にはlibswa

    libchanを読んだ - 世界線航跡蔵
  • レガシーコード借金説 - 世界線航跡蔵

    Rails勉強会@東京 第30回の懇親会の席で話していて、 id:takahashim さんがハッとすることを言った。バグバグなコードは負債であると。 バグバグなコードは、それだけでメンテに定常的な出費を産む。書き直せばそのコストはいらないのに。バグバグなコードはあらゆる危険性を産む。なまじモノがあるだけについコードを無条件に資産と見なしてしまいがちだが、実は怪しいコードは負債であると。 そして、でっち上げのコードが必要な場合も確かに存在するのだ、とも。「無借金経営だけが経営じゃない」そうだ。なるほどね。 ここで、自動化されたテストケースが存在しないことをもって負債と見なす、と基準を定めよう。テスト可能性が担保されていればそのコードはそれなりに安全であるわけだし、差し換えもローコストなわけなので。「レガシーコード = テストが存在しないコード」という定義は『 Working Effecti

    レガシーコード借金説 - 世界線航跡蔵
  • 1