APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) [電子書籍]
    • APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) [電子書籍]

    • ¥3,058612 ゴールドポイント(20%還元)
    • すぐ読めます
100000086600742968

APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) [電子書籍]

価格:¥3,058(税込)
ゴールドポイント:612 ゴールドポイント(20%還元)(¥612相当)
フォーマット:
専用電子書籍リーダアプリ「Doly」が必要です。無料ダウンロード
出版社:技術評論社
公開日: 2018年11月14日
すぐ読めます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) の 商品概要

  • Rubyを題材に,APIデザインの各種事例を取り上げた技術解説書。実用のための言語のAPIデザインには,使いやすさ,一貫性,速度,互換性など,さまざまな点でバランスの良さが求められます。それらの点で,長きにわたり定評がある言語の一つは「Ruby」ではないでしょうか。本書ではRubyの事例をベースに,APIデザインの過程と考え方を丁寧に解説。言語の中核機能を担う「I/O」「ソケット」「プロセス」「時刻」「数,文字列」をカバーし,APIデザインの核心に迫ります。熟達のRubyコミッタによる全面書き下ろし。
  • 目次

    第1章 I/O
    1.01 RubyのIOクラスとC言語のstdioライブラリ ——プログラマが知っている名前を利用する
    FILE構造体とIOクラスの対応
    IOクラス以外のC言語とRubyの対応
    まとめ
    1.02 feof関数とIO#eof?メソッド ——過去にEOFに出会ったのか,それとも今現在EOFなのか
    C言語とPascalにおけるファイルの終端
    ユーザにとってわかりやすいファイルの終端
    まとめ
    1.03 IOバッファが空でなければsysreadは例外 ——明らかに危険で役に立たない動作は禁止する
    sysreadメソッドの由来
    sysreadメソッドの危険性
    Rubyでは混用禁止
    まとめ
    1.04 EOFフラグの除去 ——モードで挙動が変化するのは良くない
    stdioのEOFフラグ
    RubyにおけるEOFフラグ
    EOFフラグの再実装の試み
    まとめ
    1.05 0バイト読んだときに何を返す? ——用例を探して良い挙動を判断する
    readメソッド
    read(0)の挙動
    CGIでPOSTされたデータを読み込む
    CGI以外の用法
    固定長レコード
    可変長レコード
    用法を探す
    Rubyの実際の挙動
    まとめ
    1.06 selectとstdioのバッファ ——無理をしても使いやすくする
    I/Oの多重化
    selectとstdioのバッファリング
    RubyのIO.select
    まとめ
    1.07 readpartial ——I/Oを多重化したときに適切なメソッド
    I/Oの多重化と読み込み/書き込み
    適切な読み込み/書き込みサイズはわからない
    バッファを考慮したreadシステムコールが欲しい
    readpartialの動作
    まとめ
    1.08 ノンブロッキングI/O ——モードで挙動が変化するのは良くない
    ノンブロッキングI/Oはfdのフラグ
    ノンブロッキングI/Oと1行入力
    ノンブロッキングモードと競合状態
    まとめ
    1.09 ノンブロッキングI/Oメソッドの導入 ——read_nonblockやwrite_nonblock
    ノンブロッキングI/Oの用途
    書き込みの多重化
    読み込みの多重化
    1. ノンブロッキングI/Oの設定
    2. 複数スレッドからの読み込み
    3. 圧縮されたストリームや,SSLなストリームからの読み込み
    ノンブロッキングI/Oメソッドを用いたI/Oの多重化
    読み込むために書き込み可能になるのを待つこともある
    4. Linux固有の問題
    ノンブロッキングI/Oの他プロセスへの影響
    まとめ
    Column ノンブロッキングI/OとRubyの歴史
    UnixにおけるノンブロッキングI/Oの歴史
    RubyにおけるノンブロッキングI/Oの歴史
    1.10 PTY.open ——ptyを利用するためのプリミティブ
    擬似でない端末
    tty
    制御端末
    擬似端末
    PTY.spawnメソッド
    擬似端末が必要になる状況
    擬似端末の利用の仕方
    PTY.openメソッド
    まとめ
    1.11 IOによるエンコーディング変換 ——正しく処理すべきだが,速度も重要
    IOクラスによるエンコーディング変換
    改行の変換
    IOでの変換と文字列の変換の違い
    ファイルの現在位置の扱い
    現在位置を扱える変換手法
    まとめ
    第2章 ソケット
    2.01 Addrinfoクラスの導入 ——関連して扱う情報をまとめてオブジェクトにする
    Addrinfo.getaddrinfoメソッドとSocket.getaddrinfoメソッド
    Addrinfoクラス
    逆引きの有無
    プロトコル非依存
    アドレスの種類を判定するプレディケートメソッド
    ソケットアドレス構造体を返すメソッドと互換性
    まとめ
    2.02 Socketクラスの勧め ——使いやすく,かつ,低レベルな操作も可能
    ソケットのクラス階層
    細分化されたクラスの問題
    Socketクラスの強化
    クラスメソッド
    インスタンスメソッド
    initialize
    特定の種類のソケットのためのメソッド
    ソケットアドレスを返すメソッド
    まとめ
    2.03 Socket.ip_address_list ——自ホストのIPアドレスを正しく簡単に得る
    自ホストのIPアドレスの必要性
    自ホストのIPアドレスを得る方法
    Socket.ip_address_listメソッド
    Socket.ip_address_listの実装
    まとめ
    2.04 ソケットオプション ——関連して扱う情報をまとめてオブジェクトにする
    ソケットオプションの使い方の例
    ソケットオプションの内容の表示
    ソケットオプションの型の詳細を隠蔽
    Socket::Optionの内容
    Socket::Option導入に伴う非互換性
    クラスを細分化しない
    まとめ
    2.05 send_ioとrecv_ioによるfd passing ——ポータブルで引数の少ないAPI
    fd passing
    recvmsgとsendmsgシステムコール
    recv_ioとsend_ioメソッド
    まとめ
    2.06 recvmsgとsendmsg ——多機能なシステムコールを工夫して提供
    recvmsgとsendmsgシステムコール
    recvmsgとsendmsgメソッド
    「不連続なバッファを扱える」機能は提供しない
    「MSG_OOBなどのフラグを指定できる」機能
    「recvmsgではMSG_TRUNCなどのフラグが返ってくる」機能
    「recvmsgで送信元を得られ,sendmsgで送信先を指定できる」機能
    「バイト列を読み書きできる」機能
    「補助データを扱える」機能
    まとめ
    2.07 getpeereid ——簡単確実なユーザ認証
    ユーザ認証
    マシン内のユーザ認証システムコール
    getpeereidメソッド
    まとめ
    第3章 プロセス

    第4章 時刻

    第5章 数,文字列

APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) の商品スペック

シリーズ名 WEB+DB PRESS plus
書店分類コード K800
Cコード 3055
出版社名 技術評論社
本文検索
他の技術評論社の電子書籍を探す
紙の本のISBN-13 9784774178028
ファイルサイズ 10.0MB
著者名 田中 哲
著述名

    技術評論社 APIデザインケーススタディ ―Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方(技術評論社) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!