IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
こんにちは。BoltzEngine を担当している門多です。REST な API を設計していると、たまにリソースと機能をマッピングするところで困ることはないでしょうか。または、サーバーとクライアントのコードで同じモデルを定義したりと面倒だなと思ったことはないでしょうか。今日は BoltzEngine で使っている gRPC フレームワークをご紹介します。 gRPC とは gRPC は Google によって作られた新しい RPC フレームワークです。Protocol Buffers でエンコードされたデータを HTTP/2 でやり取りします。RPC メソッドを提供する gRPC サーバーと、メソッドを呼び出す gRPC クライアントといった 2 つの役割があります。 gRPC を使った開発は、メソッドとメッセージ型 (オブジェクト) をプログラミング言語に依存しない Protocol B
Rubyにおける良いスタイルとして、ブロック付きメソッドでリソースを自動管理するという手法がある。 この安全性を破壊してみよう。 前提知識 まず、確認として次を見てみよう。 1行目で開いたFileオブジェクトfは3行目で自動的にcloseされる。ブロック中の制御フローが多少複雑でも、例外が発生しても確実に3行目でcloseされる。 最近では他の様々なメジャーな言語が独特の構文で似た機能を提供しているから、10年前とは異なり特にRubyの目立つ機能というわけでもなくなったが、とにかくブロックによるリソース管理は良いものだ。 しかし、安全は不自由でもある。ブロック終了時点で確実にファイルを閉じてしまうため、File.openを呼んだメソッドが終了したあとでf.readを呼ぶことはできない。 def open_file(name) File.open(name) {|f| return f }
rubyを書き始めて間もない頃、 「なんで NoMethodError なんだ...。あ、メソッド定義にself 付けたら通った。」 みたいなことがありました。 rubyの本を読んでいると、そのあたりがハッキリとイメージできるようになったのでまとめておきます。 参考にした本 年明けからひたすらRuby本を読んでいます。読了したのは以下。 現在は Effective Ruby を読んでいます。 これらを読んでいくと、中途半端に理解していた部分がカチッとハマるのでオススメです。 ※ 今回のコードは ruby 2.2.0 で試したものです。 オブジェクトとクラスの関係 サンプルコードを見てみましょう。 class C def c_instance_method @my_var = 1 end end obj = C.new 当初、自分はオブジェクトとクラスの関係を以下のように考えていました。 (
公式のライフサイクルがちょっと分かりにくい Activity | Android Developers に載ってる図。 状態のフローなんだか処理のフローなんだかどっちつかずでややこしい。 何度見ても頭に入らないから毎度毎度図を見直すことになる。 状態遷移図として表現すると分かりやすい こんな感じです。どうでしょうか。 あくまでも図の形式は状態遷移図で、ハンドラ呼び出しは矢印に現れるだけ。 アクティビティ作成 アクティビティが作成されると、「未作成」状態から「最前面」状態へと一気に遷移する。 その過程で onCreate, onStart, onResume が呼ばれる。 半透明な他のアクティビティに覆われたとき 他のアクティビティが手前に来たら「非最前面」状態に遷移する。 その過程で onPause が呼ばれる。 手前に来た他のアクティビティが半透明の場合、 元のアクティビティは透けて見え
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く