Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]

  • 17人登録
  • 4.00評価
    • (0)
    • (1)
    • (0)
    • (0)
    • (0)
  • 1レビュー
著者 : 松浦智之
制作 : USP研究所 
  • シーアンドアール研究所 (2016年11月10日発売)
  • Amazon.co.jp ・本 (336ページ)
  • / ISBN・EAN: 9784863542099

この本を読んでいる人は、こんな本も本棚に登録しています。

有効な左矢印 無効な左矢印
Adrian M...
有効な右矢印 無効な右矢印

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]の感想・レビュー・書評

  • 「すべてのUNIXで20年動くプログラムはどう書くべきか」改訂第2版

    2015-08-04に発売された「すべてのUNIXで20年動くプログラムはどう書くべき」(前著)の内容が増量・洗練されて発売された。書籍の題名が異なっているが,実質的には前著の改訂第2版と考えてよい。

    本書はPOSIX原理主義と呼ばれる高い互換性と持続性をもつプログラムの開発手法を実践していくためのテクニック集となっている。POSIX規格に準拠したシェルスクリプトを書くためのテクニックや注意事項,さらに開発したプログラムが紹介されている。

    既に前著は読了済みであるため,本書での変更内容に焦点をあてて感想を書いていく。前著の感想は以下に掲載している。
    http://booklog.jp/users/bksk/archives/1/4863541775

    ## 本書での追加項目
    本書は336ページであり,前著より80ページ多くなっている。それぞれの目次を確認して本書で増えた項目を確認すると,以下であった。

    * 序章
    * 第1章
    1-2: /dev/stdin,stdout,stderr
    1-3: `〜`(コマンド置換)
    1-4: [^〜](シェルパターン)
    1-8: set -m(shの-mオプション)
    1-10: 最終行の改行は,省略すべきでない
    * 第3章
    3-3: bcコマンド
    3-7: envコマンド
    3-12: iconvコマンド
    3-17: odコマンド
    3-22: sleepコマンド
    * 第5章
    5-8: JSONファイルの生成
    5-13: 1秒未満のsleepをする
    * 第6章
    6-12: シェルスクリプトでメール送信(添付ファイル付き)
    6-13: 他のWebサーバーへのファイルアップロード
    6-16: Twitterに投稿する
    * 第7章
    7-2: /dev/stderr(inもoutも)なぜかPermission denied
    7-6: bashで動かすために注意すべきこと
    7-10: trapコマンドでシグナルが捕捉できない

    上記の追加内容で大きいと思ったのは,以下の3点だ。
    * 序章
    * 5-8 JSONファイルの生成
    * 5-16 Twitterに投稿する

    ### 序章
    前著の不満点として参考情報が少ないことがあった。この序章に置いて,POSIXに準拠したシェルスクリプトを書く上で参考になる情報源をいくつも掲載しており,今後勉強していくうえでとてもよかった。

    書籍の題名が変わるきっかけとなったWindows 10で導入されたBash on Ubuntu on Windows(BUW)について,導入方法を画面キャプチャー入で丁寧に解説しているのが良かった。まだBUWの導入方法について書籍で説明されているところは多くないように思えるので参考になる。

    前著の時点では,POSIX原理主義という開発手法について,理論が完成されていない部分があった。具体的には,POSIX規格の範囲外のWebアプリケーションやネットワーク通信コマンドをどうするかという点だ。この点について,交換可能性というPOSIX原理主義の本質となる考えをきっちりと説明しており,開発手法について参考になった。

    ### 5-8 JSONファイルの生成
    前著の時点ではJSONのパーサーは解説されていたが,生成方法は存在しなかった。JSONファイルを生成できるようになったということは,POSIX原理主義でWeb APIとの相互通信が可能ということだ。このAPI通信のために外部ライブラリやコマンドに依存せざるを得ない場面があったが,これに依存しなくても済むようになった。JSONファイルの生成はデータの整形が必要で簡単ではないが,一度できればずっと使い続けることができるのでこれは大きい。

    ### 5-16 Twitterに投稿する
    日本ではTwitterはテレビ番組でも利用されるなど人気が高い。例えば,特定ツイートをかき集めたり,一度に大量のフォローやフォロー解除が可能であったり,更にはcrontabを利用したbotの作成など,シェルスクリプトでツイッターを利用できることはいろんな可能性がある。
    また,このTwitterアプリの開発にあたって,データフロー図が掲載されている。今後自分でTwitterアプリを作成するにあたっての参考にもなると思った。

    ## 不満点
    本書における不満点を述べる。

    1. 内容の重複と値段
    2. Windows/Mac/UNIXの固有の話がない
    3. 体系だった説明の不足

    ### 内容の重複と値段
    まず,本書は書名自体は変わっているが実質的には前著の改訂第2版という位置づけとみなしてよい。したがって,内容の重複がけっこうある。前著の読者であれば,新しい内容を期待して読むとがっかりするかもしれない。追加された項目以外に内容が改善されている部分もあるのだが,以前読んだ印象が拭えない。

    これと合わせて書籍の値段も関係してくる。前著の定価は税抜き2500円だったが,本書は3600円である。ページが80ページ増えたので1ページ約100円で値段が上がったことになる。単純に値段の上昇は買い手にとって好ましくない。まして,前著読者にとっては重複した内容が多いので不満をもつかもしれない。

    ### Windows/Mac/UNIXの固有の話がない
    書籍の題名にWindows/Mac/UNIXと書かれており,これらの環境固有の話が出てくるのかと期待した。しかし,序章で書かれたWindows 10のBUWへのインストール方法くらいで,ほぼなかった。例えば,コマンドのオプションが違っていたり,文字エンコーディング・ディレクトリ構成・既定の設定など,OSごとに注意すべき事項というのがあるのだろうと思う。書名に入れているからにはこうした項目への言及があってもよいと思った。

    ### 体系だった説明の不足
    これは前著の感想でも書いたが,やはり体系だった説明がほしい。例えば,自分でコマンドを作る場合,引数の解析はどうすればいいか。Webからデータを持ってきたり,引数や入力に何が来るかわからない場合に注意すべきことなど。TIPS集も必要だが,体系だった解説がほしい。

    ## まとめ
    POSIXで定義されている正規表現やコマンドの注意点など,この著者のシェルスクリプトに関する書籍を読んでいないのならば,一度は読む価値がある。
    個人的には,後半の5-6章で解説されているようなWebサーバーで必要とされるテクニックについては疎い。しかし,特に進歩の早いWebにおいてこれらのテクニックを駆使することで,バージョンアップや環境の変化に悩まされることがなくなる可能性がある。
    この本に書かれている内容自体も時間が経過して使えなくなることはないだろう。1冊手元に置いておきたいと思える本だった。

    なお,前著読者であれば,著者が同人誌として発売している「Shell Scriptライトックックブック2014-2016」において,本書で追加分の項目がカバーされているので,こちらの購入を検討してもよいかもしれない。
    http://richlab.org/coterie/ssr2016.html

全1件中 1 - 1件を表示

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]を本棚に登録しているひと

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]を本棚に「読みたい」で登録しているひと

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]を本棚に「いま読んでる」で登録しているひと

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]を本棚に「読み終わった」で登録しているひと

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]を本棚に「積読」で登録しているひと

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]はこんな本です

ツイートする