<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>晴読雨読＠エンジニアライフ</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/" />
    <link rel="self" type="application/atom+xml" href="https://el.jibun.atmarkit.co.jp/bookshelf/atom.xml" />
    <id>tag:el.jibun.atmarkit.co.jp,2019-03-18:/bookshelf//52</id>
    <updated>2017-01-27T05:54:57Z</updated>
    <subtitle>「エンジニアの人生＝エンジニアライフ」に役立つ本を紹介します。</subtitle>

<entry>
    <title>リーダー、管理職にこそ読んで欲しい――レッドビーシュリンプの憂鬱</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2017/01/post.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2017:/bookshelf//52.10878</id>

    <published>2017-01-26T08:33:34Z</published>
    <updated>2017-01-27T05:54:57Z</updated>

    <summary>IT企業において、若い技術者達とも一緒に働いてきた私には、彼らの中にある考え方や...</summary>
    <author>
        <name>＠IT自分戦略研究所編集部</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<p>IT企業において、若い技術者達とも一緒に働いてきた私には、彼らの中にある考え方や不満を知る上で、興味深かった。彼らをまとめる立場にあるリーダーや管理職、あるいは彼らを指導する立場にある年長の技術者達にお薦めしたい一冊である。</p>
<h2>リーダーや管理職には、若い技術者達の不平不満を受け止めて欲しい</h2>
<blockquote>
<p>「なぜ、自分たちよりもITスキルや知識が劣り、Webシステムのプログラミングもできない人間が、年長だという理由だけで、高い給料をもらい、自分たちに上から目線で指示出しをしてくるのか」<br />「なぜ、会社は、あるいは社会は、ITの根幹であるプログラミングのスキルを持つ自分たちを軽視して、上流工程やプロジェクト管理のできる人間を珍重するのか」<br /><br /></p>
</blockquote>
<p>物語を通して伝わる、若い技術者達のそんな思い。年長者は、皆新しい技術に疎く、古いやり方に固執して、仕事の邪魔をする。もっと若い人間を尊重して欲しいし、処遇も技術力に応じたものであるべきだという書きぶりは、少しステレオタイプがきつい気もするが、彼らの中には、確かにそうした不満があること、そして、なぜ彼らがそう考えるのかを理解することは、若干、閉塞感の漂う今の日本のIT企業を変革する上で、ヒントになるだろう。<br /><br />もちろん、若い技術者の言い分が、全て正しいとは思わないし、物語の後半では、そうしたことに対する年長者（エヌ氏）の反論も登場する（ここは、やや、"それだけか？"と思うところではあるが）。<br /><br />若い技術者達の言い分は多分に稚拙だし、視野が狭い。著者も恐らく、あえて、そう描いているのだろう。しかし、欧米にくらべ、世界に通用するソフトウェアやシステムあるいは、社会インフラを作り出すことが、できていない日本のITベンダーやユーザー企業の弱みを考える上で、この物語にあるような、若い技術者達の本音は、一つの示唆を与えてくれているようにも思う。</p>
<p><br />物を作る人間に対するリスペクト、彼らの意見を積極的に聞き、吟味する姿勢、そして、何より、彼らの意見を本当の意味で取捨選択できる目が、リーダーや管理職、そして投資家達にもなければ、この日本から、スティーブ・ジョブズもザッカーバークも生まれないし、そこまでの異才でなくても、世界と伍していける会社もソフトウェアも出ては来ない。</p>
<h2>若い技術者達には前を向いて欲しい</h2>
<p>しかし、一方で、この物語に出てくる若い技術者達の言葉からも見られる、ITスキルを持つ人間の処遇について言えば、労働市場の原理から言って、技術者が受け入れなければならないところでもある。<br /><br />似たようなスキルを持つ人間が、安い給料でも働くと言えば、そうした人間を採用するのは、経営上当然のことであり、その結果、技術者達の給料が低く抑えられることになったとしても、それは、今や国際的な労働市場となったIT業界においては、仕方のないことである。<br /><br />町工場で働く職人も、寿司屋も、大工も、人が羨む高い所得を獲得できるのは、他にはない高い技術と運を持った一握りの人間であり、他は、一般のサラリーマンよりも低い待遇しか受けられないのが、普通だ。Webプログラミングが上手だったり、ストアドプロシージャを駆使ししたシステムを構築できる程度のスキルであるなら、そこまで高い処遇は望めないのは、労働市場の原理である。<br /><br />確かに欧米と比べ、日本の技術者の給料は安いと考えられるし、新興国のようにプログラマーを超ハイスキルの人間と考える土壌は、日本にはない。しかし、これを変えるのは、一つの会社の中で不平不満を述べることではない。<br /><br />日本のIT技術者が高い処遇とリスペクトを集めるには、他を圧倒するスキル（プログラミングであれ、プロジェクト管理であれ、要件定義であれ）を持つか、あるいは、単身、海外に打って出て勝負をすることが、必要なのかもしれない。<br /><br />確かに、そんなことは誰もができる話ではないかもしれない。それでも、自分の目の前にある、どうしようもない現実を変えたいと思うなら、それくらいに思い切ったことをするか、あるいは、考え方を変えて、現実の中をしなやかに泳いでいくしかない。全ては、本人の心次第だ。そんなことも、少し考えさせられた。<br /><br /></p>
<h2>一組織にも、なすべきこと、やれることはある</h2>
<p>この本に書かれている、さまざまな問題について、日本のIT企業や社会は、明確な答えは打ち出せていないし、この本にも根本的な解決策までは書かれていない。しかし、処遇に限界があっても、せめて若い技術者達がモチベーションを維持でき、新しいことに挑戦することを支援する気風を組織内に作ることはできる。<br /><br />若い技術者達のアイデアを吸い上げる風土と制度、明確なキャリアパスの定義、限界はあるものの給与体系の見直し、そうしたことは、若いIT技術者を雇う組織には必須のことであり、それが、最終的には組織の活性化につながる。管理職、経営層の方には、ぜひ、そうしたことも考えていただきたい。<br /><br />いずれにせよ、この本から聞こえてくるのは、さまざまな悲鳴だ。前述した若い技術者の不平不満、歳をとって自分のキャリアを肯定しきれないベテランの不安、それらを率いて調整するリーダーの難しさ、そうした物を、やや極端にではあるが、描いたこの本に書かれた自分と同じ立場の人間の思いには、きっと共感する読者も多いと思う。しかし、それだけでなく、自分とは違う立場の人間の気持ちも、理解してほしい。それが、この本の大きな魅力の一つとなっている。<br /><br /></p>
<p style="text-align: right;">（連載『<a href="http://www.atmarkit.co.jp/ait/kw/itsosyo.html" target="_blank">「訴えてやる！」の前に読む IT訴訟 徹底解説</a>』　筆者 細川義洋）</p>
<p>
<iframe width="320" height="240" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=ikizama08-22&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=4797387882&amp;linkId=853912283259863aa0a87f97c7bc3687"></iframe>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>コンピュテーショナル・シンキングはどこにでも - 書評「マンガでやさしくわかるプログラミングの基本」</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2016/11/_-.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2016:/bookshelf//52.10758</id>

    <published>2016-11-08T08:36:09Z</published>
    <updated>2016-11-08T16:47:59Z</updated>

    <summary> プログラミング教育狂想曲 2020年から小学校でプログラミング教育が必修化され...</summary>
    <author>
        <name>＠IT自分戦略研究所編集部</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<body>

<h2>プログラミング教育狂想曲</h2>

<p>2020年から小学校でプログラミング教育が必修化される、というニュースが伝わって以来、さまざまなメディアがプログラミングについて取り上げるようになってきました。つい先日も「<a href="http://publications.asahi.com/ecs/12.shtml">AERA</a>」に「プログラミング思考で会議も家事も変わる」という記事が掲載されたばかりです。</p>

<p>「小学校の授業として導入される」のが発端なので、最初のうちは「<a href="https://scratch.com/">Scratch</a>」などを題材にした子供向けの入門記事が大半でしたが、徐々に大人たちの危機感を反映したのか、いままでプログラミングに縁がなかった大人をターゲットにした内容も増えています。</p>

<p>しかし、「プログラミング教育」というキャッチーなフレーズが一人歩きして、バズワードになっている感は否めません。子供向けに<a href="https://scratch.com/">Scratch</a>や<a href="http://moonblock.jp/">MOONBlock</a>などのビジュアルプログラミング言語を紹介し、あとは適当にプログラミングができないことへの危機感を煽っておしまい、という内容のものを、ずいぶんたくさん見たように思います。</p>

<p>本当に大切なのは「計算機を使った問題解決の方法を学ぶ」ことであるのは言うまでもありません。人間がクリエイティブな作業に集中するために、単なる計算や繰り返し作業はコンピューターに任せてしまおう、そのための考え方を小学校から授業に取り入れよう、というのが本来の趣旨のはずです。</p>

<p>身につけるべきなのは「コンピュテーショナル・シンキング」と呼ばれる、問題をコンピューターが解決できるようにするための考え方や知識です。問題を抽象化したりより小さく分解したり、あるいは一般化したりといった、ソフトウェアエンジニア（とりわけプログラマー）が普段行っているような能力が、これからはさまざまな場面で必要になってくるでしょう。</p>

<p>乱暴に言ってしまえば、コードを書いてプログラムを実行する「プログラミング」は、コンピュテーショナル・シンキングによって導き出された問題解決の手法を用いて、実際に問題を解決するための手段「でしか」ありません。「プログラミングができないとやばい！」と危機感を煽っただけで、実態は単なるコードの書き方をなぞるだけのプログラミング入門は、役に立たないどころか不誠実でさえあります。</p>

<h2>「マンガでやさしくわかるプログラミングの基本」</h2>

<p>本書はプログラミングの入門書ですが、身近で使い慣れた道具や設備もプログラムで動いている、ということを題材に、コンピュテーショナル・シンキングを身につける手助けもしてくれます。</p>

<h3>「マンガでやさしくわかる」パート</h3>

<p>本書はタイトル通り、ちょっと「あ〜る」や「パトレイバー」を思い出すタッチのマンガで始まります。営業職の女性が耳の長い架空の生き物と契約して、魔法少女になる...のではなく、開発者としてプログラミングを学んでいくというストーリーです。</p>

<p>マンガ部分は、プログラミングの初学者が感じがちなハードルを乗り越えることを通して、読者を勇気づけることに重点が置かれています。学習の合間にちょうどいい息抜きになりそうでした。</p>

<h3>「プログラミングの基本」パート</h3>

<p>プログラミングを実習するパートは、著者のキャリアを反映したのか、主にWeb開発をやってきた身からすると意外なアプローチが多くて、驚いたり楽しんだり勉強になったりしました。</p>

<p>実行環境にExcel / VBAを選び、例題として作るものがGUIの簡易電卓、というところにまず驚きました。Web開発の発想だと実行環境はChrome（などのMac / Windows両方で動くブラウザ）、言語は当然JavaScript、という構成がすぐに思いつきます。しかし冷静に考えてみたら、プログラミングを習得しようと一念発起するのは、普段Excelを使い慣れている事務職の方が多いのかもしれません。そうだとすると、一番身近なプログラミング環境としてExcelというのは理にかなった選択なのでしょう。</p>

<p>また、「プログラム作成シート」という開発手法も初めて知りました。「プログラム作成シート」とは、内部処理をスプレッドシートにステップ単位で書き起こし、それを元にフローチャートを書く、という使い方をするシートです。初学者にとっては、いきなりコードを書くよりも考えが整理できて理解が早い、というメリットがあるのでしょうか。</p>

<p>作成したプログラムをデバッグするだけでなく、「メンテナンス」として改善の工程があるところに好感を持ちました。見た目や操作性をよりよいものにしていくのは、継続的に使うプログラムにはとても重要なことです。</p>

<h2>コンピュテーショナル・シンキングで問題解決の手法を手に入れよう</h2>

<p>ということで、未経験のまま耳の長い生き物と契約してプログラミングを学び始めた女性は、見事プログラマーとして開発をやりとげ、プロジェクトを成功に導くのでした。</p>

<p>プログラミングそのもののスキルももちろんですが、コンピュテーショナル・シンキングを身につけることは、これからますます大切なスキルになっていくことでしょう。コンピューターに仕事をさせる手段を身につけることで、プログラマーの三大美徳である「怠惰・短気・傲慢」を正しい意味で理解し、人間がするべき仕事に集中する。エンジニアリング以外の職種にも、そういった人が増えてくるといいな、と願ってやみません。</p>
<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wifehacks/">『Wife Hacks ～仕事と家族とコミュニティと～』</a>コラムニスト kwappa）</span></p></div>

</body>
</html>
]]>
        
    </content>
</entry>

<entry>
    <title>実践テスト駆動開発――テストに導かれてオブジェクト指向ソフトウェアを育てる</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/11/post-a409.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10457</id>

    <published>2012-11-09T05:12:49Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> 実践テスト駆動開発Steve Freeman、Nat Pryce（著）  和智...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="SE関連本" />
    
        <category term="技術・プログラミング" />
    
        <category term="技術動向" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93">

<img border="0" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/11/09/book_test.jpg" title="実践テスト駆動開発" alt="Manual_2" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.amazon.co.jp/dp/4798124583/atmkit_22">実践テスト駆動開発</a></strong></span><br /><br />Steve Freeman、Nat Pryce（著）
 <br />和智右桂、高木正弘 (翻訳) <br /> 翔泳社<br />2012年9月<br /><br />
ISBN-10: 4798124583<br />ISBN-13: 978-4798124582<br />4,410 円（税込）


</td></tr></tbody></table>

<br clear="all" />







<h2>■「実践テスト駆動開発」ーー諸君、これがTDDの実践だ！</h2>

<p>　TDDは広まりつつある。しかし……。</p>

<p>　アジャイル開発を行う上で、必須といってもいいプラクティスの1つに「テスト駆動開発・TDD」がある。このTDDのバイブルである「テスト駆動開発入門」をKent Beck氏が世に出してから、10年が経った。その間に、欧米では、すでにアジャイルがメインストリームとなった。日本でも、多くの諸先輩方が実践を続けていくなかで、ようやく広まってきたところだ。TDDを学ぶイベント「TDD Boot Camp」も、毎回キャンセル待ちの人が数多く出る人気イベントとなっている。</p>

<p>　日本でも、TDDに対する裾野はだいぶ広がっているのだろう。しかし、いざ実際の仕事でTDDをやろうとすると、いくつもの壁にぶち当たる。イベント駆動型クライアントアプリケーションの場合、データベースが絡む場合、マルチスレッドの場合、サードパーティのコンポーネントを使う場合。あまりに壁が大きいため、挫折してしまった人も少なからずいるだろう。かくいう私も、こうした壁を前にして、心が折れた経験を持っている。</p>

<p>　そうした、悩めるTDDerに向けて書かれた本が、本書「実践テスト駆動開発」である。本書は、世界中のアジャイリストが10年の歳月をかけて積み上げてきた、“TDDを行う上での壁”に立ち向かう術を教えてくれる、テスト駆動開発の奥義書である。</p>

<p></p>

<h2>■そもそもTDDとは何か</h2>

<p></p>

<p>　Wikipediaによると、</p><blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p>　プログラムに必要な各機能について、最初にテストを書き（これをテストファーストという）、そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させる、という短い工程を繰り返すスタイルである。</p></blockquote><p>とある。</p>

<p>　では、TDDをすることで、どういった恩恵があるのだろうか。本書では</p><blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p>　システムを開発する際には、TDDを採用することで、実装（「正しく動くか？」）と設計（「適切な構造になっているか」）両方の質についてのフィードバックが得られる。テストを先に書いて開発することで、投入した労力による恩恵が二重に得られるのだ。</p></blockquote><p>とある。つまるところ、TDDをすることは、設計と実装を小さなスケールで絶え間なく繰り返すことで、正しいソフトウェアを作っていくことに他ならない。</p>

<p></p>

<h2>■立ちはだかる壁を内包したアプリケーションを、TDDで育てていく</h2>

<p></p>

<p>　では、実際にTDDはどういった形で進めていくのだろうか。本書のサンプル「オークションスナイパー」というサンプルアプリケーションの開発内容を一部紹介していく。</p>

<p>　まず行うのが、アプリケーションの全体像を考えること。必要となるプロトコルや、状態遷移、扱う機能について洗い出す。いきなりテストコードを書くのではないのだ。何をしなければいけないのか。どういった技術基盤の下に行うのか。そうしたアプリケーションの設計を行う必要があるのだ。</p>

<p>　そうしてアプリケーションの設計をした後に行われるのが、「動くスケルトン」と呼ぶものを作ること。これはシステムで必要となるコンポーネントを網羅した形で一つの機能を、エンドツーエンドテストーーユーザーインターフェイスからサーバとの通信を経て、結果が出るまでーーとして成功するものとして構築したものである。</p>

<p>　「オークションスナイパー」システムでいうと、ユーザーインターフェイスやスナイパーコンポーネント、オークションサービスとの通信を網羅した形で一つの機能をTDDで実装するとしている。</p>

<p>　このとき、オークションサービスは実際のものを使わず、同じように動作させることのできる仮想サービスを用意して行う。</p>

<p>　いわば、アーキテクチャの検証である。考えたアーキテクチャが正しいかどうかを検証するのだ。こうしてアーキテクチャの検証を終えた「動くスケルトン」に一つずつ機能を追加していく。</p>

<p>　「オークションスナイパー」システムは、最初偽のオークションサービスとコネクションを行い、オークションの終了を見届けるだけの機能から作成を始めている。そこから一つづつ機能を追加していく形で、入札を行ったり、新しい商品を追加できるようにしていっているのだ。</p>

<p>　もちろん、テストコードを書き、それが全て成功するのを保つようにして追加していくのだ。このようにして、正しいソフトウェアを育てているのだ。</p>

<p></p>

<p>　実際のアプリケーションをTDDで開発していくのにここまでやる必要があるのかと、私は圧倒された。しかし、ここまでやるからこそ正しいソフトウェアを育てていけるのだろう。ウォーターフォール型開発で最後にテストを行なうことで、バグが吹き出して苦しい思いをする。それに比べれば、こちらの方が、開発は大変ではあるが、安心して開発ができるように思う。</p>

<p></p>

<h2>■すべてのTDDの難問に対する解はここに</h2>

<p></p>

<p>　この「オークションスナイパー」のサンプルには現れていない、TDDをする上で陥りやすい罠や立ちはだかる壁はまだ多くある。こうした難問に対しても、本書は解を示している。</p>

<p>　例えばデータベースを扱う際のTDDはどのようにして行えばいいのか。永続データの消去をテストの開始前に行うのだ。整合性制約があるので、テーブルから行を削除する順序を一つにまとめ、行うのがよいとしている。</p>

<p>　トランザクションを必要とする場合はどうすればいいか。トランザクション管理を行うオブジェクトを抽出し、そのなかでユニット・オブ・ワークパターンを用いればよいとしている。</p>

<p>　他にもマルチスレッドでのTDDや非同期処理でのTDDなど、「こういう場合のテストはどう書けばいいんだ……」という、TDDerの悩みに本書は応えてくれるだろう。</p>

<p></p>

<h2>■TDDを学び、本書を携え実践しよう</h2>

<p></p>

<p>　残念ながら、本書はこれからTDDを学ぼうとする人が読むには敷居が高いだろう。初めてTDDを学ぶならば、やはりKent Beck氏の「テスト駆動開発入門」を読み、実際にコードを打ち込んで、体験する必要があるだろう。もちろん、TDD Boot Campへ参加するのもいいだろう。</p>

<p>　そうやって、TDDを学んで実際に使い始めると「こういう場合どうすればいいんだ……」という場合が必ず訪れる。そのときこそ、本書はあなたの力になってくれるだろう。私もまた、本書を携えてTDDを実践していこうと思う。</p>

<p></p>

<p></p>

<p></p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wonderfulworld/all_entrylist.html">『What a wonderful world』</a>コラムニスト たのっち）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『ステートフルJavaScript』――JavaScriptを堅牢に築くパーツの世界</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/09/javascriptjavas-407c.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10456</id>

    <published>2012-09-07T08:10:38Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> ステートフルJavaScript ――MVCアーキテクチャに基づくWebアプリ...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93"><img border="0" alt="ステートフルJavaScript" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/08/28/book_jss.jpg" /></td>
<td width="201"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL282800&amp;">ステートフルJavaScript ――MVCアーキテクチャに基づくWebアプリケーションの状態管理</a></strong><br /><br />Alex MacCaw （著）、 牧野 聡（(翻訳） <br />オライリージャパン<br />2012年6月<br />
ISBN-10: 487311554X<br />ISBN-13:978-4873115542<br />2940円（税込）</td></tr></tbody></table>
<p></p>
<br clear="all" />
<h2>■JavaScriptを堅牢に扱いやすくするための本</h2>

<p>　JavaScript関連の本を読むときに気を付けなければならないこと。「この本は、どの立ち位置なのか？」「何が言いたいのか？」を知ること。</p>

<p>　これらをきちんと理解して読まないと、とんでもない回り道をするはめになる。サーバサイドからクライアントサイドまで、JavaScriptがカバーする範囲は幅広いからだ。</p>

<p>　さて、本書の立ち位置はというと、カルーセルやアコーディオンのような、見た目を変化させるjQueryプラグインの紹介は一切ない。ユーザーインターフェイスを求めている人向けの本ではない。</p>

<p>　サブタイトルには「MVCアーキテクチャに基づくWebアプリケーションの状態管理」とある。ぼんやりとでも、この意味が分からなければ、読み解くことは難しい。ここでもあえてMVCの説明はしない。MVCの話が出るということは、「フレームワークの解説か」と思いきや、それも違った。もう少し細かいパーツの世界、フレームワークを構成する部品についての話である。</p>

<p>　つまり、JavaScriptを堅牢に扱いやすくするための本だと思えばいい。本書は、「フレームワーク」という大きな世界観を構成する小さな部品について書かれている。これは、JavaScriptで世界を築くための道しるべとなる。


</p>


<h2>■目次</h2>

<ul><li> 1章　 MVCとクラス</li>

<li>2章　イベントと監視</li>

<li>3章　モデルとデータ</li>

<li>4章　コントローラと内部状態</li>

<li>5章　ビューとテンプレート</li>

<li>6章　依存性の管理</li>

<li>7章　ファイルの操作</li>

<li>8章　リアルタイム Web</li>

<li>9章　テストとデバッグ</li>

<li>10章　アプリケーションのデプロイ</li>

<li>11章　 Spineライブラリ</li>

<li>12章　 Backboneライブラリ</li>

<li>13章　 JavaScriptMVCライブラリ</li></ul>

<p>　前半はパーツ寄り、後半はライブラリの紹介だ。このコラムでは前半部分、その中でもアーキテクチャよりのトピックを拾いながら考察を深めよう。</p>

<h2>■Class is difficult to use</h2>

<p>　アーキテクチャ寄りの話では、関数型言語的側面からJavaScriptを攻略するのが最近の流行である。しかし、本書では、JavaScriptをオブジェクト指向言語として扱う。不易流行。</p>



<p>　まずは、クラスの考察から本書は始まる。</p><blockquote><p>　JavaScriptはプロトタイプに基づく言語であり、それゆえにネイティブなクラスの実装というものは存在しません。しかしクラスの性質をエミュレートするのは容易です。</p></blockquote><p>　JavaScriptでクラスを扱うのは難しい。オブジェクト指向言語では当たり前にある、クラスにアクセス制限を与えることでさえ、容易ではない。アクセス制限は、匿名関数の空間を閉じ込めることで、プライベート変数やプライベートメソッドを実現する。カプセル化を実現するためだけでも、知っておくべきことは多い。</p>

<p>　本書のサンプルから、もう少しかんたんな例を見よう。</p>

<p>var Person = function(name){<br />&nbsp; &nbsp; this.name = name;<br />}</p>

<p>var alice = new Person('alice');<br />var bob = Person('bob'); // undefined!!</p>

<p>　JavaScriptは、細心の注意をもって記述する。こんなシンプルなコードが new演算子1つで変わる。new をつけない Person('bob') を実行するとどうなるだろう？ 変数 bobが undefinedになるだけではすまされない。恐るべきことに、このコードはnameというグローバル変数を生み出してしまう。</p>

<p>　なぜか？</p>

<p>　new演算子は、コンテキストであるthisをインスタンス固有のオブジェクトに設定する。しかし、new演算子がなければ、単なる関数呼び出しでしかない。 関数呼び出し時のthis は windowオブジェクトを指す。つまり this.name は window.nameとなり変数nameはグローバル変数となる。それが邪悪な行為であることは言うまでもない。</p>

<h2>■Event is easy to use</h2>

<p>　JavaScriptのイベントと聞いて、何を思い浮かべるだろうか？ まっ先に思い浮かぶのは、マウスのクリックや、入力エリアの値が変更されたときに連動した動きなどだろう。そういったユーザー操作のイベントは別の本に任せておこう。</p>





<p>　JavaScriptでは、プログラマが任意のタイミングで好きなイベントを発生できる。そして、そのイベントを自在に受け取れる。この仕組みがJavaScriptを輝かせる。イベント駆動のプログラムがかんたんに組めるメリットは、先ほどのクラスを作るためのデメリットを相殺する。</p><blockquote><p>　イベントベースのプログラミングは、アプリケーションのアーキテクチャを疎結合化できるという点で非常に強力です。</p></blockquote><p>　パブリッシュ／サブスクライブと呼ばれるメッセージ交換パターンは、プログラム間の依存性を低め、オブジェクトの独立性を高める。イベントというトリガーを自分自身のなかに持つことができるからだ。イベントベースのオブジェクトは他者から直接、呼び出されることなく状態が変化する。そのメリットが理解できなければ本書を読むのはまだ早い。</p>

<p>　かつてのMVCパターンはページが軸であった。1つのリクエストは、1つのページを表示することが当たり前の世界であった。StrutsなどのMVCアーキテクチャはページ単位を基本とする。せいぜいフレームやパネルという単位で疎結合であれば十分であった。</p>

<p>　Ajaxは世界を変えた。Ajax全開のアプリケーションでは、時としてDOM要素の1つ1つが、MVCの最小粒度になる。コンポーネントですら依存関係を持つことは許されない。Wicketやclickのようなコンポーネントベースのフレームワークの出現がそれを物語る。もはやMVCはページ単位ではない。主役の座はコンポーネントである。</p>

<p>　あるボタンを押すことや、ちょっとしたマウス操作をきっかけに、何かが変わる。そんな要件を満たすためにパブリッシュ／サブスクライブパターンがかんたんにできる言語は強力な武器となる。複雑な動作をするコードは「なんか、よう分からんけど、動いたからいいか」ではダメだ。</p>

<p>　本来、疎結合なプログラム、堅牢なプログラムは言語に依存しない。この本にはMVCアーキテクチャを実現するために考えるべき要素がたくさん詰まっている。特定の言語を抜きにして触れるのも面白い。</p>

<h2>■How to build software</h2>

<p>　JavaScript本を読むと、小さなテクニックの断片が目立つ。油断すると、ブラウザごとの差異やちょっとしたTipsをたくさん知ることがJavaScriptを勉強することだと勘違いする。そして、それをどれだけ知っているかが優秀なJavaScripterであるかのような錯覚をする。</p>

<p>　プログラム言語を学ぶとは、そんなことではない。「べからず集」を覚えることがプログラムではない。</p>

<p>　ロジックをいかに組むか――オブジェクト指向だけでなく関数型言語やファーストクラスオブジェクトを理解するとがJavaScriptの真の学習であるはずだ。本書が、プログラムとは何かを考えるきっかけの1つになればと思う。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/freeskill/">『フリーなスキル』</a>コラムニスト　はがねのつるぎ）</span></p></div>

<p><script src="https://www.surveymonkey.com/jsPop.aspx?sm=be8rb9QlsXFL9DzeHT9r3A_3d_3d">&nbsp;</script>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>『たのしい開発 スタートアップRuby』――なぜRubyistたちはあれほど楽しそうなのか</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/08/ios-2f0a.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10455</id>

    <published>2012-08-24T05:32:31Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> たのしい開発 スタートアップRuby大場寧子、大場光一郎、五十嵐邦明、櫻井達生...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93">

<img border="0" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/08/17/book_rubyy.jpg" title="たのしい開発 スタートアップRuby" alt="Manual_2" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL282400">たのしい開発 スタートアップRuby</a></strong></span><br /><br />大場寧子、大場光一郎、五十嵐邦明、櫻井達生（著）
 <br /> 技術評論社<br />2012年7月<br /><br />
ISBN-10: 4774151661<br />ISBN-13: 978-4774151663<br />2604 円（税込）</td></tr></tbody></table>

<br clear="all" />







<h2>■なぜRubyistに惹かれたのか</h2>

<p>　Rubyへの心変わりは誰の影響だっただろうか。</p>

<p>　業務と関係なければ、勉強しなくていいと思っていたはずだった。アジャイル系コミュニティに参加したしばらくあと、地域Rubyコミュニティに迷い込み、いつしか彼らと楽しくお酒を飲むようになっていた。</p>

<p>　アジャイル系コミュニティの人々が仕事について・技術について話している姿は楽しそうだった。</p>

<p>　彼らはRubyistでもあった。彼らの姿に惹かれ、僕もRubyを学び始めた。</p>

<p>　そうして門を叩いた地域Rubyコミュニティの人々も、アジャイル系コミュニティと同様に、技術について話している姿は輝いていた。</p>

<p>　そして、他の言語コミュニティとは、暖かさが違っていた。その暖かさに触れ、僕も彼らの仲間になりたいと思うようになった。</p>

<p>　なぜ僕は彼らに惹かれたのか。本書の中にその答えはあった。</p>

<h2>■Ruby入門書というよりは、Rubyist入門書</h2>

<p>　本書は、それまでのRuby入門書、いや、言語全般の入門書とは趣が異なっているRuby入門書というよりも、「Rubyist入門書」といった方が正しいだろう。</p>

<p>　本書の構成は次のように成り立っている。</p>

<ul><li>Chapter1 「たのしい開発」を求めて</li>

<li>Chapter2　Rubyの基礎知識</li>

<li>Chapter3　Rubyを使ってみよう</li>

<li>Chapter4　Ruby on Railsとは</li>

<li>Chapter5　Railsを触ってみよう</li>

<li>Chapter6　Rubyの文化</li>

<li>Chapter7　自動化されたテスト</li>

<li>Chapter8　アジャイル開発とRuby</li>

<li>Chapter9　Rubyのコミュニティ</li>

<li>Chapter10　とある企業のRuby導入事例</li>

<li>Chapter11　「たのしい開発」の答え</li></ul>

<p>　言語仕様についてではなく、Ruby on Railsや自動テスト、アジャイル開発やコミュニティについてなど、Rubyを取り巻く世界全体について書かれている。そしてRubyの文化は、これらの要素が合わさることでできている。</p>

<h2>■Rubyの自由さ</h2>

<p>　そもそもRuby自体が、自由度の高い言語である。Rubyは自分のやりたいことを直感的に表現できる言語であると、著者らは述べている。</p>

<p>　さらに、Ruby on Railsが進化の速いフレームワークであり、アプリケーションの自動テストを作っておかなければ、バージョンを上げることもままならないと述べている。そうした背景があり、RubyやRailsによるアプリケーション開発では、自動テストを作ることが当たり前となった。</p>

<p>　つまり、Railsを取り巻く世界では、自動テストの文化も発展していく。RSpecやCucumberなどはその典型であろう。その思想はいまや他の言語にも伝わりつつある。</p>

<p>　また、そうした自動テストツールにアプリケーションが支えられることで、要件が変わったりすることにも柔軟に対応できるようになった。</p>

<p>　結果として、Railsが</p><blockquote><p>　プロセスやツールよりも、人と人の対話を<br />　包括的なドキュメントよりも、動くソフトウェアを<br />　契約交渉よりも、顧客との協調を<br />　計画に従うことよりも、変化への対応を</p></blockquote><p>という、アジャイルマニフェストに従うことが容易になり、Rubyの自由さをより体現している。</p>

<h2>■Rubyが楽しい理由</h2>

<p>　このようなRubyの自由さ、プログラマを大切にする価値観の構成要素はこうして生まれていく。</p>

<p>　その結果、新しい技術に挑戦するプログラマにとっても、世界を変えようとするベンチャー企業にとっても、お客様に対する価値を最大化したいと願う受託開発プログラマにとっても、Rubyの開発そのものが楽しくなっていったのだろう。</p>

<p>　さらに、そうした開発を楽しむ人々がコミュニティに集って情報交換をしたり一緒に学んだりするのだ。コミュニティが楽しいに決まっている。企業もコミュニティを支援することで、その企業には優秀なエンジニアも集まってくるようになる。すると、その企業も盛り上がっていく。</p>

<p>　この流れはこれからも続いていくのだろう。だから著者たちは本書のカバーでこう宣言しているのだろう。「これからRubyはもっと楽しくなる」と。</p>

<h2>■楽しい開発を目指そう</h2>

<p>　では、どうすれば楽しい開発への一歩を踏み出せるのだろうか？ </p>

<p>　著者らはこう述べている。</p><blockquote><p>　やりたいこと、やりたくないこと、自分がどうしたいのか、どうしたらうれしいのか。それらに素直に目を向け、受け入れることが「楽しい開発」につながります。</p></blockquote><p>　まずは著者らの言うとおり、そうした自分の想いを見つめ受け入れる。その上でRubyを学びたいとなれば、本書を皮切りにRubyについて1つずつ学んでいけばよいのではないだろうか。</p>

<p>　残念ながら、本書だけでRubyを使ったアプリケーションを作れるようにはならない。それは、本書であまりに広範な話題を扱った結果であり、文化を伝えるためには必要なことだったのだと思う。その代わり、本書の巻末で著者らはRubyを学ぶ道筋を示している。その道をたどっていけばよい。</p>

<p>　楽しい開発を目指そう。

</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wonderfulworld/all_entrylist.html">『What a wonderful world』</a>コラムニスト たのっち）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『リーダブルコード』――君からはコードのにおいがしないが、君のコードはにおう</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/08/post-8c25.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10454</id>

    <published>2012-08-10T10:19:31Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニックDu...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table cellspacing="0" cellpadding="5" border="0" align="left" width="480"><tbody><tr valign="top"><td width="93">

<img border="0" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/08/02/book_codee.jpg" title="リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック" alt="Manual_2" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL280200">リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック</a></strong></span><br /><br />Dustin Boswell (著)、Trevor Foucher (著)、角征典 (翻訳)&nbsp; <br />オライリージャパン<br />2012年6月<br /><br />
ISBN-10: 4873115655<br />ISBN-13: 978-4873115658<br />2520 円（税込）</td></tr></tbody></table>

<br clear="all" />





<h2>■このコード、なんだかにおうよ</h2>



<p>　「<a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%87%AD%E3%81%84">コードのにおい（code smell）</a>」という言葉がある。なんとなくこのコードは良くないぞ、バグを含んでいるか、あるいは将来にバグを引き起こしそうだぞ、という兆候のことだ。</p>

<p>　未熟、怠慢、無知などの理由によって生まれた駄目コードからは、往々にしてこの「コードのにおい」が漂ってくる。多くの責務を抱え込んだクラス、巨大で分岐の多い関数、繰り返し現れる同じ処理（それぞれちょっとだけ違ったりすると最悪）。しかし、書いた本人はたいてい「自分のコードが臭い」などとは、夢にも思わずに書いている。何が臭くて、その結果どのような良くないことが起きるかを学ぶ機会がなかったからだ。</p>

<p>　一方、良いコードはびっくりするほどシンプルなことが多い。変数やメソッドには分かりやすい名前がつき、処理の流れは見通しよく整理されていて、重複部分はすっきりと分割して再利用されている。</p>

<p>　同じ「コード」だというのに、この違いは何だろう？ プログラマに「コードのにおいを嗅ぎ取る能力」があるかどうかだ。よいプログラマであろうとするならば「自分の書いたコードが臭い」なんてことには耐えられないはずだ。しかし、「何が臭いのか」を知らなければ、臭くないコードを書くこともできないだろう。</p>

<h2>■においの見張り番</h2>

<p>　本書「リーダブルコード」は、そんな「におうコード」のサンプルをたくさん収録している。</p>

<p>　コードのにおいを嗅ぎ取る能力があるプログラマにとっては、思わず鼻をつまみたくなるようなサンプルコードを載せ、それがなぜいけないか、そのコードのどこがにおうかを丁寧に解説し、そして「におわないコード」になるようにリファクタリングするまでの流れを、においの種類別に何度も見せてくれる。</p>

<p>　簡単な例を引用してみよう。</p>

<blockquote><p>
if/else 文のブロックは、並び順を自由に変えることができる。例えば、以下のように書くのと、
<code></code></p>

<pre><code>if (a == b) {
&nbsp; &nbsp; // 第1のケース&nbsp;
} else {
&nbsp; &nbsp; // 第2のケース&nbsp;
}
</code></pre>

<p>
以下のように書くのは同じことだ。
<code></code></p>

<pre><code>if (a != b) {
&nbsp; &nbsp; // 第2のケース&nbsp;
} else {
&nbsp; &nbsp; // 第1のケース&nbsp;
}
</code></pre>

<p>
　これまであまり深く考えなかったかもしれないけど、この並び順には優劣がある。

</p>

<p></p>

<p></p>

<p align="right"><em>p.86 7.2「if/else ブロックの並び順」より</em></p>

<p>&nbsp;</p></blockquote>

<p>　「えっ、何か違うの？？」</p>

<p>　そう思った人は、ぜひ本書を手に取って「なぜ優劣があるか」を学んでほしい。</p>

<p>　ちなみにこのページには、このコードがどう「におう」のかをユーモラスにあらわしたイラストがついている。このイラストは、普段から「におわない」コードを書いているプログラマにとっては、本文を読む前にニヤッと笑えることだろう。そうでないあなたも、ぜひ本文を読んでこのサンプルコードの「におい」を嗅ぎ取れるようになり、そしてこのイラストで笑えるようになってほしい。</p>

<h2>■においがつかない無臭コードだ！</h2>

<p>　本書の帯には「周囲の皆が喜んで使ってくれるような、リーダブルなコードを書く方法を楽しく解説！」とある。</p>

<p>　現実のあれこれと同様、「臭い」コードを「みんなが喜んで使ってくれる」とはとても思えない。チームで開発していたり、コードを公開したりしているプログラマの皆さんは、ぜひ本書を読んで、「臭くない」コードを書く技術を身に付けてほしい。</p>

<p>　そしてすでに「臭くない」コードを書けるプログラマのみなさんも、やっぱり本書を読んで「うんうんあるある」とうなづくだけの簡単なお仕事をしてみてほしい。</p>

<p>　もしかしたら、意外と知らなかったり忘れてたりしたことを発見するかもしれないし、そうでなくても、たくさんのユーモラスなイラストを眺めるだけでも楽しい時間が過ごせる。先ほど引用したp.86では「自分のペット紹介」で笑えるし、p.16「超硬い金属のクギを打ちつける棒状のもの」、p.174「あれでいいかもね」などが特に気に入っている。</p>

<h2>■においは元から絶て</h2>

<p>　世の中から臭いコードを減らすことは、回り回って皆さんの、そして私の仕事を楽しく快適にすることに直結する。本書がきっかけで「臭いコード撲滅運動」が盛り上がり、どんどん「臭いコード」と「臭いコードを書くプログラマ」を駆逐していくのが、今から楽しみである。</p>
<p align="right"><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wifehacks/all_entrylist.html">『Wife Hacks ～仕事と家族とコミュニティと～』</a><br />コラムニスト　kwappa）</span></p>]]>
        
    </content>
</entry>

<entry>
    <title>『iOSアプリケーション開発入門』――「iOSアプリの1本でも作っておきたい」エンジニアの指南書</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/08/ios-7c2b.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10453</id>

    <published>2012-08-03T05:00:51Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> iOSアプリケーション開発入門新居雅行（著）  技術評論社2012年7月 IS...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table cellspacing="0" cellpadding="5" border="0" align="left" width="480"><tbody><tr valign="top"><td width="93">

<img border="0" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/07/26/book_ioss.jpg" title="iOSアプリケーション開発入門" alt="Manual_2" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL272600">iOSアプリケーション開発入門</a></strong></span><br /><br />新居雅行（著） <br /> 技術評論社<br />2012年7月<br /><br />
ISBN-10: 4774151564<br />ISBN-13: 978-4774151564<br />3129 円（税込）</td></tr></tbody></table>

<br clear="all" />





<p></p>

<h2>■自作アプリの経験はありますか？</h2>

<p>　スマホ業界の勢いはますます加速している。この流れに乗って、スマホ業界への転職を考えているエンジニアもいることだろう。そして、スマホ開発企業は、「業務か自作での、アプリ開発経験」を採用基準とするところが多い。</p>

<p>　Titanium MobileやPhoneGapといった、ネイティブコードを触らずともクロスプラットフォームでアプリ開発できるプロダクトも登場している。私自身、Titanium Mobileを使ってiOSアプリをリリースしたことがある。</p>

<p>　しかし、今のところ仕事としてスマホアプリ開発に携わるなら、大半の現場ではiOSならObjective-C、AndroidならJavaで書くことを求められる、と感じている。</p>

<p>　本書は、スマホ業界に挑もうとする人にとっての先導役といえるだろう。</p>

<h2>■書上のハンズオンセミナー</h2>

<p>　著者 新居雅行氏は、iOSアプリ開発の講師業もしている。そのためか、実際に本書の内容を試すと、まるで著者のハンズオンセミナーを受けているような感覚でアプリ開発を体験できた。</p>

<p>　iOSでの各種オブジェクトの使い方とそのサンプルコードが載っているような本とは明らかに一線を画しており、実践的な開発を学べる本である。</p>

<p>　本書で扱う内容は次のとおり。</p>

<ul><li>Chapter1 iOSアプリケーション開発者を目指そう</li>

<li>Chapter2 iOSアプリケーション開発の流れ</li>

<li>Chapter3 画像ファイルを表示するビューアを作ろう</li>

<li>Chapter4 スクロールする画像ビューアを作ろう</li>

<li>Chapter5 クラウド住所録を作ろう（ネットワークアクセス編）</li>

<li>Chapter6 クラウド住所録のインタフェースを作ろう（iPhone編）</li>

<li>Chapter7 クラウド住所録のインタフェースを作ろう（iPad編）</li>

<li>Chapter8 電子ブックビューアを作ろう</li>

<li>Chapter9 カメラと画像の顔検出機能を利用する</li></ul>

<h2>■実践的なアプリ開発トレーニング</h2>

<p>　私にとって、一番の読みどころは、Chapter 5～7の「クラウド住所録を作ろう」だった。</p>

<p>　この章では、Amazon Web ServiceのSimple DBを使って、住所録アプリ開発を行うのだが、その中でネットワークアクセスやSAXによるXMLパースについて取り上げている。ここで取り上げている内容が、Web APIを使ったアプリを作る際に大いに役立つのではないかと思う。</p>

<p>　実際はオープンソースのDOMパーサライブラリやiOS5から標準で使えるようになったJSONパーサを使うことになるかもしれない。それでも、この章の内容を理解していれば、さほど苦しまずに開発していけるのではないか。</p>

<p>　また、本書ではiOS5から利用できるようになった「ストーリーボード」というGUIデザイナを用いた開発も紹介されている。iOSにおけるモダンな開発手法を学びたい人にとっても、参考となる1冊だろう。</p>

<h2>■スマホ業界に挑む、最初の一歩</h2>

<p>　一方、本書で取り上げていないことも数多くある。例えば、ローカルデータベース（SQLite）の扱い方やユニットテストの扱い方、バージョン管理（Git）の扱い方などだ。これらについて学ぶ場合は、別の書籍やWeb上の情報を参考にする必要がある。</p>

<p>　とはいうものの、これからiOSアプリ開発を学ぼうというエンジニア向けの書籍としては、初めからこれ以上の量を扱うのは苦しいとは思った。上記のような技術は、Objective-Cでの開発にある程度慣れてからでないと理解が難しいかもしれないからだ（私自身、かつてローカルデータベースを扱うあたりでObjective-Cの学習に挫折したことがある）。</p>

<p>　本書は、これからスマホアプリ開発を学びたい、もしくはそれを仕事にしたいと考えるエンジニアにとってよい助けになることだろう。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wonderfulworld/all_entrylist.html">What a wonderful world』</a>コラムニスト たのっち）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『Mobageを支える技術』――1日35億PVを支える、ソーシャルゲーム技術の全貌</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/07/mobage-a0cf.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10452</id>

    <published>2012-07-24T06:26:22Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> Mobageを支える技術 ～ソーシャルゲームの舞台裏～ DeNA（著）  技術...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table border="0" align="left" width="480" cellspacing="0" cellpadding="5"><tbody><tr valign="top"><td width="93">

<img border="0" alt="Manual_2" title="Mobageを支える技術" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/07/09/book_mobage_2.jpg" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.amazon.co.jp/dp/4774151114/atmkit_22">Mobageを支える技術 ～ソーシャルゲームの舞台裏～ </a></strong></span><br /><br />DeNA（著） <br /> 技術評論社<br />2012年6月<br /><br />

ISBN-10: 4774151114<br />ISBN-13: 978-4774151113<br />2919円（税込）</td></tr></tbody></table>

<br clear="all" />
<h2>■現在進行形で、ソーシャルゲームを支えている技術</h2>

<p>　本書は、1日35億PVの巨大システムを支える技術とノウハウについて、これでもかというほど贅沢に書いた書籍である（もっとも、1日35億PVをさばくノウハウが必要なエンジニアはそれほど多くはないだろうが……）。</p>

<p>　わたし自身、今年にWeb企業へ転職し、現在はソーシャルゲームの開発に携わっているので、大変面白く読めた。</p>





<p>　フィーチャーフォン向けのWebアプリケーションの開発ノウハウなど、スマートフォン全盛のこの時代にはそぐわない内容のように思える章もいくつかある。しかし、ソーシャルゲームでは依然としてフィーチャーフォンのユーザーが多く、こういったノウハウは今、まさに現在進行形でソーシャルゲームを支えている技術である。そういった意味で本書は、現実に即した内容であるといえるだろう。</p>

<p>　実際、本書に書かれているノウハウのいくつかは、わたしがソーシャルゲームの開発において直面した問題であった。</p>

<h2>■目次</h2>

<p>　本書は、4つのパートで構成されている。</p>

<ul><li>Part1　ソーシャルゲーム開発技術</li>

<li>Part2　ソーシャルゲーム運用技術</li>

<li>Part3　ソーシャルゲーム開発効率技術</li>

<li>Part4　ソーシャルゲーム分析技術</li></ul>

<p>　ご覧のとおり、かなり幅広い内容を扱っている。一方、構成が分かりづらい個所もあった。例えば、RESTfulなAPIの設計についての説明は、なぜか「MySQLとの付き合い方」の章に入っている。</p>

<h2>■肝はデータマイニング</h2>

<p>　ソーシャルゲームの運用にとって、サーバ運用や開発ノウハウも重要なのだが、実際にビジネスとしてのソーシャルゲームの命運を握っているのは、データマイニング技術である。</p>

<p>　ソーシャルゲームは日々、ユーザーの動向などの膨大なデータを分析し、UIやパラメータなどについて、1日単位で細かいチューニングを行う。</p>

<p>　そういった観点から、Part4「ソーシャルゲーム分析技術」は興味深く読んだ。</p>

<p>　Part4は、データマイニングついて、いくつかの技術が紹介している。ただ、データマイニングは、技術もそうだが、「データをどうとらえるか」という判断が最も重要なので、DeNAがどういう観点でデータを分析しているのか、という話題があれば、もっと良かったと思う。</p>

<h2>■まとめ：ソシャゲ、Web業界に興味のあるエンジニア向け</h2>

<p>　ソーシャルゲームやディー・エヌ・エーが提供するプラットフォームに関わる人でない限り、技術書として本書を使いこなせるエンジニアはそれほど多くはないだろう。</p>

<p>　ただ、話題の業界に所属する人が、その知見をふんだんに詰め込んだ本なので、ソーシャルゲームに興味のある人や、Web業界を指向するエンジニアにとっては面白く読める本であると思う。</p>

<p>　昨今なにかと話題になることの多いソーシャルゲーム界隈。中の人も、そうでない人も、本書を読めばその一端を垣間見ることができると思う。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/daisukekasuya/all_entrylist.html">『雲（クラウド）の隙間から青空が見えた』</a>コラムニスト<br />粕谷大輔）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『効率的なWebアプリケーションの作り方』――PHPerよ立て、立てよPHPer</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/07/webphperphper-7733-1.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10451</id>

    <published>2012-07-13T06:58:25Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> 効率的なWebアプリケーションの作り方 ～PHPによるモダン開発入門 小川雄大...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93">

<img border="0" alt="Manual_2" title="効率的なWebアプリケーションの作り方" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/07/09/book_php_2.jpg" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL271001" target="blank">効率的なWebアプリケーションの作り方 ～PHPによるモダン開発入門 </a></strong></span><br /><br />小川雄大（著） <br /> 技術評論社<br />2012年5月<br /><br />

ISBN-10:4774150827<br />ISBN-13: 978-4774150826<br />2919円（税込）</td></tr></tbody></table>

<br clear="all" />




<h2>■中身が素晴らしいので、外見をdisる</h2>

<p>　最初に言っておこう。本書は、PHPでWebアプリケーションを開発する人間にとって、とても大きな価値を持つ本である。</p>

<p>　今はただの「PHPer（ぺちぱー）」であっても、この本を読んで「Programmer」にステップアップする可能性は十分にある。だからこそ思う、もっと適切なタイトルがあったのではと。 </p>

<h2>■大事なのは「効率」ではなく「モダン」</h2>


<p>　本書は、PHPによるWeb開発を仕事にしていて、なおかつ

</p>

<ul>
<li>MVCに沿ったクリーンなコード</li>
<li>フレームワークを活用した開発スタイル


</li>
<li>オブジェクト指向の基本と応用</li>
<li>Gitによるバージョン管理</li>
</ul>

<p>といったトピックを完ぺきに実践できていない「PHPer」のための本である。サブタイトルである「モダン開発」にも入門できるし、「プロの現場」で起きていることも体験できるし、「最新PHPプログラミング」の動向も知ることができる。</p>

<p>　だからこそ、だからこそ！ 「効率的な」ではなく、サブタイトルの「モダン開発」の方を、強くアピールしてほしかった。</p>

<p>　いわゆる「PHPer」に必要なのは「効率」ではなく「モダンな開発スタイルの知識と実践」なのだから。</p>

<h2>■ところで、ぺちぱーとは</h2>

<p>　さっきから書いている「PHPer」という言葉は、PHPをメインに書いているプログラマのことである。類義語として、Rubyなら「Rubyist（ルビイスト）」、Pythonなら「Pythonista（パイソニスタ）」がある。</p>

<p>　しかし、「PHPer」にはやや侮蔑的なニュアンスが混じっているようにも思える。PHPばかりを好み、他のプログラミング言語やアーキテクチャ、モダンな開発スタイルに興味を持たないPHPプログラマを「PHPer」と呼んでいる場面が多い。</p>

<p>　私が最初に体験したWeb開発の現場でも、「クラスってよく分からないから使いたくないんだよね」というPHPerが、業界第3位（当時）のサービスの大部分を開発していた。ご想像のとおり、そびえ立つレガシーコードの山であった……。</p>

<p>　本書が書かれた真の目的は、この文脈での「PHPer」たちが、職業人としての「Programmer」にステップアップする手助けをするためであろう。</p>

<h2>■PHPerよ立て、立てよPHPer</h2>

<p>　本書は大きく「前半」と「後半」に分割できる。両者にはまったく違った価値があるので、別々に紹介していく。</p>

<h3>●後半は「実践編」</h3>

<p>　いきなり、後半から紹介する。後半はSymfonyというPHP製Webアプリケーションフレームワークを使い、実際に稼働するWebアプリケーションを開発する、という紙上ハンズオンになっている。フレームワーク上で開発をした経験がない人、それぞれの会社で使われている「オレオレフレームワーク」でしか開発していない人には有益なカリキュラムだ。プロの現場での開発、現場におけるフレームワークの使われ方を体験できる。</p>

<p>　特に「オレオレフレームワーク」上で生活している人は、ぜひ読むだけでなく手を動かしてみていただきたい。OSSとして世界中のユーザーに使われているフレームワークがどんな思想で作られ、どんな機能やポリシーを提供しているのか。「オレオレフレームワーク」しか知らない人には、貴重かつ重要な体験となるはずだ。</p>

<h3>●前半は「理論編」</h3>

<p>　対する前半は、理論に関する内容が中心。PHPerには不足しがちな「モダン開発」に必要な知識を紹介している。そしてこの「理論編」にこそ、著者からPHPerに向けられた強いメッセージが込められている。</p>

<p>　各章の見出しを見てみよう。</p>

<ul>
<li>Part1　MVC開発の基礎知識
<ul>
<li>1章　MVC開発の概要</li>
<li>2章　オブジェクト指向</li>
</ul></li>
<li>Part2　フレームワークを利用する利点
<ul>
<li>3章　レガシーコードの欠点</li>
<li>4章　リファクタリング・デザインパターン実践</li>
<li>5章　フレームワークを活用する</li>
</ul></li>
</ul>

<p>　これだけの内容を、わずか100ページ弱に詰め込むなんて「無茶しやがって……」としか言えないのだが、典型的なPHPerでは、これらの概念に触れることすらないまま、仕事としてWebアプリケーションを作り続け、レガシーコードの山を高くし続けている事例が多く見られる。</p>

<p>　そんな状況を打破し、1人でも多くのPHPerを一人前に育てよう、という意気込み。これこそが著者からPHPerへのメッセージなのだ。</p>

<h2>■「パーフェクト」の血筋</h2>



<p>　本書の著者は小川雄大（<a target="_blank" href="http://twitter.com/fivestr">@fivestr</a>)氏。先日<a target="_blank" href="http://el.jibun.atmarkit.co.jp/bookshelf/2011/04/phpdisphp-6d5e.html">書評</a>した『<a target="_blank" href="http://amzn.to/MK3saW">パーフェクトPHP</a>』の著者の1人である。なるほど、「<a target="_blank" href="http://amzn.to/MK3saW">パーフェクトPHP</a>」を読んで感じた「決意」のようなものが、本書からも感じ取れた。</p>

<p>　先日開催された「<a target="_blank" href="http://www.zusaar.com/event/306001">Symfony勉強会 #6</a>」では、小川氏のセッションがあったようだ。<a target="_blank" href="https://speakerdeck.com/u/fivestar/p/web">スライド</a>が公開されていたので、こちらも一読をお勧めしたい。本書が書かれた理由が語られている。ご自身の苦労や失敗、そして学びの経緯は、まさに「PHPer」が「Programmer」になる過程そのものだった。</p>

<h2>■「PHPer」がdisられないために</h2>

<p>　冒頭でちょっと触れた、「PHPer」という言葉のちょっとネガティブなニュアンスは、本書から学ぶことで打ち消していけるかもしれない。パーフェクトなPHPを書き、モダンな開発手法を身に付けた、disられないPHPerが増えることを願っている。</p>

<p>　そして、主に他のプログラミング言語を使っているプログラマ諸君にも、特に前半「理論編」は一読をお勧めしたい。ちゃんとできてるか？ 大丈夫か？</p>
<p align="right"><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wifehacks/all_entrylist.html">『Wife Hacks ～仕事と家族とコミュニティと～』</a><br />コラムニスト　kwappa）</span></p>]]>
        
    </content>
</entry>

<entry>
    <title>『Head Firstデータ解析』――居眠りしない（できない）「データ分析」入門</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/05/post-234e.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10450</id>

    <published>2012-05-10T09:14:37Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> Head Firstデータ解析 ―頭とからだで覚えるデータ解析の基本 Mich...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="技術・プログラミング" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93">

<p><img width="180" border="0" src="http://el.jibun.atmarkit.co.jp/bookshelf/images/2012/05/10/feadfirst_data.jpeg" title="Feadfirst_data" alt="Feadfirst_data" /><br />
</p></td>
<td width="201"><strong><span style="font-size: 1.2em;"><a href="http://www.amazon.co.jp/gp/product/4873114640/ref=as_li_qf_sp_asin_tl?ie=UTF8&amp;tag=atmarkit-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=4873114640">Head Firstデータ解析 ―頭とからだで覚えるデータ解析の基本</a></span><img width="1" height="1" border="0" src="http://www.assoc-amazon.jp/e/ir?t=atmarkit-22&amp;l=as2&amp;o=9&amp;a=4873114640" style="border: medium none ! important; margin: 0px ! important;" /></strong>


<p><span style="font-size: 0.8em;">Michael Milton（著）、大橋真也（監訳）、木下哲也（翻訳） <br />オライリージャパン<br />2010年7月</span></p>



<p><span style="font-size: 0.8em;">ISBN-10: 4873114640<br />ISBN-13: 978-4873114644<br />3360円（税込）</span></p></td></tr></tbody></table>

<br clear="all" />

<h2>■データ分析のスキルを持つ人が足りない</h2>

<p>




　「Microsoft Excelのヘルプファイルを、実際より見栄え良くプリントアウトしただけじゃないデータ解析本があったら素敵じゃない？ 夢物語にすぎないかもしれないけど……」</p>

<p></p>

<p>　なんとも皮肉の効いた吹き出しから始まる、他のデータ分析本とはひと味違う1冊。</p>



<p>　ビジネスの世界において、データに基づく判断は、ますます重要になってきている。しかし、専門的・体系的な理解を有するデータ分析者は、ニーズに比べてぐっと少ない。</p>

<p>　私自身、かつて大学の授業で、統計の基礎を学んだものの、実践的な利用イメージがなかったために、あまり興味が持てなかった。しかし、今コンサルタントとして働く上で、データ分析の基礎は学んでおきたい――そんな動機で本書を手に取った。</p>

<h2>■本書の構成</h2>

<p>　著者のマイケル・ミルトンは、非営利団体の資金提供者から集めたデータを解析し、その結果に基づいて行動し、非営利団体の資金調達を強化するのを手伝うことにキャリアのほとんどを費やしてきた。なんとも説得力を感じるプロフィールである。</p>

<p>　本書は、主にクライアントとデータ分析者（以下、アナリスト）がやりとりするという形式で進む。</p>



<ul><li>1章　データ解析入門：分析する</li>

<li>2章　実験：持論を検証する</li>

<li>3章　最適化：最大にする</li>

<li>4章　データの可視化：図を使うと賢くなる</li>

<li>5章　仮説検定：否定する</li>

<li>6章　ベイズ統計：基準を活用する</li>

<li>7章　主観確率：数値で表した信念</li>

<li>8章　経験則：人間らしい解析</li>

<li>9章　ヒストグラム：数値の形状</li>

<li>10章　回帰：予測</li>

<li>11章　誤差：誤差を適切に示す</li>

<li>12章　リレーショナルデータベース：関連付けられますか？</li>

<li>13章　データクリーニング：秩序を与える</li></ul>

<p>　ご覧のとおり、分析の基本的な考え方、確率、最適化、予測、データ加工、ビジュアライズと、実務で必要な要素はひととおりカバーしている。</p>

<h2>■無味乾燥なデータ本とは一線を画す</h2>


<p>　本書が他のデータ分析の指南書と異なる点についても、触れておこう。通常、データ分析の本は、たいてい下記の特徴を持っているように思う。</p>

<ul><li>ある特定のツールを前提にしている</li>

<li>お題データがあるものの、ツールの機能を使用して加工・分析を進めていく</li>

<li>機械的で無味乾燥</li></ul>

<p>　これらの本は、脳を刺激してくれない。文字だらけのパワーポイントを眺めているのと同じだ。記憶への定着が難しかったり、気付きを得る機会がぐっと減ってしまう。</p>

<p>　一方、Head Firstシリーズはすべて、下記のような方針で作られている。</p>

<ul><li>ビジュアル重視</li>

<li>会話のような親密な感じの文体</li>

<li>考えを深めながら学べるようにする</li>

<li>読者の関心を引きつけ、飽きさせない</li>

<li>感情に訴える</li></ul>

<p>　これだけでも、無味乾燥なデータ本とは一線を画する本であることが、お分かりいただけると思う。</p>

<h2>■作業だけでは足りない、必要なのは“思考”</h2>

<p></p>

<p>　なぜ、普通のデータ分析本は飽きるのか？ 飽きる原因はひとえに、「“作業”ばかりで“思考”するタイミングがない」ことではないだろうか。</p>

<p>　本書では、ストーリーの至るところに「自分で考えてみよう」という演習を用意していて、読み進めるうちに、なかば強制的に「思考」することが求められる。ゲームをしているような感覚を覚えて、非常に面白い。</p>

<h2>■クライアントとの付き合い方も学べる？</h2>

<p>　また、ストーリーがクライアントの存在を前提としているため、常にクライアントの反応（期待、クレーム）に対するアプローチを意識して学習を進められる。</p>

<p>　「答えを求めている相手＝クライアント」と、「解として提示すべきものが何なのか」を考えることで、無駄な作業を減らせる―ーこうした考え方は、実際にお客さん相手に仕事をしてみないと分からないことなので、簡単ではあるものの、疑似体験できる価値は大きい。この点も、従来のデータ分析本にはなかったアプローチだ。</p>

<p>　今まで私が読んできた本では、Excelの機能を懇切丁寧に説明しているだけのもの、お題のデータを使って段階的に演習していくものがほとんどだった。ベンダの研修も似たような内容で、「思考する機会は帰ってからどうぞ」という感じだったので、本書のスタイルは思考したい人にとってはぴったりだろう。</p>

<h2>■データ分析はツールが大事</h2>

<p>　大量のデータ分析は、もはや人間の計算力・速度では対応できない。そのため、ツールを活用する必要がある。</p>

<p>　代表的なものとして、Excelのような表計算ツールが挙げられる。ある程度コストを掛けられるなら、もっと高機能なツールの使用も可能だ。本書で取り上げられているツールは2つ。1つはExcel、もう1つはRという統計分析ツール（フリーソフト！）である。</p>



<p>　本書の演習は、ExcelとRをうまく使い分けており、実践的な考え方に基づいて執筆されていることがよく分かる。</p>

<h2>■まとめ：入門書としては申し分なし</h2>

<p>　とにもかくにも本書は「実践的」という印象で、データ分析の入門書としては申し分ない。</p>

<p>　昨今、データに基づく経営、ビックデータからインサイトを得るなど、データ分析に関連する話題が飛び交っている。しかし、基本的なデータ分析のスキルなくして、インサイトなど得られるのだろうか。</p>

<p>　ボタンを押したら答えが出てくるような話ではない。ITシステムに求められる分析機能の要件は極めて高度で、統計や分析にうといエンジニアが処理できる世界を超えつつある。</p>

<p>　欧米に比べると、統計の専門者が圧倒的に少ないという日本の現状はあるものの、専門家にならなくとも、データ分析の重要性を考えていくべき、と感じる今日この頃だ。</p>

<p>　皆さんも、本書とともに、深遠なるデータ分析の道の第一歩を踏み出してみてはいかがだろうか？</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/satomamo/all_entrylist.html">『ワイン片手にITを思う』</a>コラムニスト　サトマモ）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『日本語入力を支える技術』――複雑な、あまりに複雑な“日本語入力”の解体新書</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/04/post-a453.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10449</id>

    <published>2012-04-13T08:29:41Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> 日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界  徳永拓之（著...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<table width="480" cellspacing="0" cellpadding="5" border="0" align="left"><tbody><tr valign="top"><td width="93"><p></p>

<p><img border="0" alt="Manual_2" title="&gt;日本語入力を支える技術2" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/04/13/book_jpn.jpg" /><br />
</p></td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL241300">日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界 </a></strong></span><p></p>

<p>徳永拓之（著） <br />技術評論社<br />2012年2月</p>



<p>ISBN-10: 4774149934<br />ISBN-13: 978-4774149936<br />2699円（税込）</p></td></tr></tbody></table>

<br clear="all" />

<h2>■まるで空気のようなシステム</h2>





<p>　この書評を読んでいるあなたが感想をTwitterに書きこもうとする時、日中の仕事でメールを書く時、友人とSkypeでチャットする時、Excel方眼紙に業務システムの設計書を作っている時。</p>

<p>　これらすべての場面で、共通して使用するソフトウェアがある。日本語入力システムだ。<br />　<br />　日本人としてコンピュータ上で日本語を扱う場合、このソフトウェアを利用せずに日本語を入力することはあり得ない。しかし、日本語入力システムはその重要性に反して、利用者のほとんどが意識しない。まるで、空気のようなシステムである。</p>

<p>　だが、空気とあなどるなかれ。日本語入力システムには、実は計算機科学の技術の粋が結集されている。</p>

<h2>■複雑な日本語処理のすべてをここに書き残した</h2>

<p>　本書は、日本特有のソフトウェアの中でも、最も重要性と難易度が高いシステムである日本語入力システムが、どのように設計されて動作しているのかを、実に読みやすく書いた良書だ。</p>

<p>　黎明期から現在に至る日本語入力システムの成り立ち、日本語入力システムの概観、それを実現するために必要なデータ構造の基本的な考え方や言語処理、機械学習のアルゴリズムなど、日本語入力システムのすべてが、本書には書かれている。</p>

<h2>■メモリは限りなく少なく、しかし機能は膨大</h2>

<p>　日本語入力システムに求められる機能は多い。</p>

<p>　日本語入力システムは、文字入力を必要とするあらゆるソフトウェアと連動して動作する。「入力」と「変換」という2つの機能を持ち、変換候補の一覧をどこに描画するか、という視覚的要素も必要だ。</p>

<p>　変換誤りに対する訂正の手段をどのように提供するか。仮にクラッシュした場合、他のアプリケーションを巻き込まないようにどう設計すべきか――。こうした高機能と変換に必要となる膨大なデータ量を要求されるにもかかわらず、空気のような存在であるがゆえに、メモリ量はできるだけ小さくなければならない。</p>

<p>　見た目のシンプルさや空気感と対照的に、日本語入力システムに求められる要件は複雑で、ソフトウェアとして高難度なものばかりだ。さらに、日本語は文法が複雑で、かつ扱う文字量の多さも半端なく多いため、さらに複雑さに拍車をかけることになる。</p>

<h2>■難易度の高い話題を分かりやすく</h2>

<p>　データ構造やアルゴリズムに関する章では、数学的な知識や情報処理についての素養が求められる場面もあるが、巻末に付録で説明されているので心配することはない。随所に登場する専門用語も、すべて初出時に定義されている。内容の高度さに比べると本書は驚くほど読みやすく、きちんと時間をかけて読めば誰でもこの本の内容を理解できるだろう。</p>

<p>　第3章以降のデータ構造、アルゴリズムの解説は難しいが、第2章の「日本語入力システムの概観」まではとても分かりやすく、日本語入力システムのエッセンスのすべてが書かれている。興味のある人は、第2章までを読むだけでも価値はあると思う。</p>

<p>　これほど身近に存在するにもかかわらず、その詳細を知る人はほとんどいないであろう日本語入力システム。その深淵の一端を、本書より感じとってもらいたい。</p>

<p>　これまではキーボードからの入力のみであった日本語入力システムは、スマートフォンなどで使用されるタッチパネルや音声入力など、一層の進化が期待されている。今、日本語入力について勉強してみるのもいいだろう。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/daisukekasuya/all_entrylist.html">『雲（クラウド）の隙間から青空が見えた』</a>コラムニスト<br />粕谷大輔）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>スマホ案件用の秀逸なドキュメント『jQuery Mobile』</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/03/jquery-mobile-9d2b.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10448</id>

    <published>2012-03-23T07:59:51Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary>   jQuery MobileJon Reid（著）、 渡邉真人・白石俊平（監...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="プログラミングスキル" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<table align="left" cellspacing="0" cellpadding="5" border="0" width="480"><tbody><tr valign="top"><td width="93"><img src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/03/21/book_jquery.jpg" /><br />




 </td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL232200">jQuery Mobile</a></strong><br /><br />Jon Reid（著）、 渡邉真人・白石俊平（監訳）、牧野聡（翻訳） <br />オライリージャパン<br />2011年12月<br />
ISBN-10:4873115264<br />ISBN-13: 978-4873115269<br />1995円（税込）</span></td></tr></tbody></table>
<br clear="all" />
<style type="text/css"> &lt;!--@import url(&quot;http://www.atmarkit.co.jp/fcoding/fcoding.css&quot;);--&gt;</style>

<h2>■どんどん増える、スマホ対応のお仕事</h2>

<p>　<a href="http://www.atmarkit.co.jp/fsmart/articles/smaso_event02/01.html">「2011年はスマホ元年」</a>と言われたように、スマートフォン市場が急成長を続けています。Webサイトや携帯サイトをスマホ対応させている人は多いでしょう。私もその1人です。</p>

<p>　iPhone、Android、Windows Mobileといった多様な端末それぞれに最適化したページを作成することは簡単ではありません。端末の種類を吸収し、どの端末で見ても同じデザインで見せるフレームワークを用いれば、簡単にスマホ対応ができます。jQuery Mobileは、それを実現させるフレームワークです。</p>

<h2>■秀逸なオフライン・ドキュメント</h2>

<p>　本書は、jQuery Mobileでできることを網羅的にまとめています。公式Webサイトにあるドキュメント内容はほぼすべて掲載しており、かつソースコードだけでなく、スクリーンショットも豊富なので、オフラインのドキュメントとしておすすめできます。</p>

<p>　私は、今年からフリーランスのプログラマとして仕事をしています。スマホ対応サイトを構築するお仕事をもらったので、早速オフライン・ドキュメントとして本書を手に入れました。</p>

<h3>●目次</h3>

<ul><li>1章 jQuery Mobileをはじめよう</li>

<li>2章 アプリケーションの構造とナビゲーション</li>

<li>3章 ページの要素</li>

<li>4章 テーマの切り替え</li>

<li>5章 jQuery MobileのAPI</li>

<li>6章 jQuery Mobileアプリケーションの実際</li>

<li>付録A 知っておくと役に立つTIPSとjQueryの基礎知識</li>

<li>付録B リファレンス</li></ul>

<p>　以下は、すべてのページの基礎となるソースです。</p>

<div class="m_code">&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />&nbsp; &nbsp; &lt;head&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;title&gt;jQuery Mobile&lt;/title&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;link rel=&quot;stylesheet&quot; href=&quot;css/jquery.mobile-1.0.min.css&quot; /&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;script src=&quot;js/jquery-1.6.4.min.js&quot;&gt;&lt;/script&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;script src=&quot;js/jquery.mobile-1.0.min.js&quot;&gt;&lt;/script&gt;<br />&nbsp; &nbsp; &lt;/head&gt;<br />&nbsp; &nbsp; &lt;body&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;header&gt;&lt;h1&gt;jQuery Mobile&lt;/h1&gt;&lt;/header&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;div class=&quot;content&quot;&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &lt;p&gt;jQuery Mobileのページ&lt;/p&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;footer&gt;&lt;h1&gt;Copyright...&lt;/h1&gt;&lt;/footer&gt;<br />&nbsp; &nbsp; &lt;/body&gt;<br />&lt;/html&gt;</div>

<p>　head部分でjQueryとjQuery Mobileのjsとcssファイルを指定し、body部分でヘッダとフッタ、ならびにページのメイン部分を記述していきます。後は、jQuery MobileならびにHTML5の仕様に合わせて記述していくだけで、簡単にスマホ対応サイトのページを作成できます。</p>

<p>　もちろん、jQueryならではのアニメーションやナビゲーション、ページ間の制御などの設定も可能です。これらの点は、公式Webサイトのドキュメントだけでは分からなかったので個人的には大変ありがたく、実際に仕事で参照しました。</p>

<p>　最も役立ったのは、5章の「初期化イベント」です。仕事で、「ページ遷移の直前に処理を行い、処理を反映した状態で次のページを表示できないか」という依頼がありました。公式Webドキュメントだけでは理解しづらかったのですが、本書のその部分を読み、実装可能であると分かりました。</p>

<p>　例えば、bind()という関数と pagebeforeshow というイベントを用いて、下記のように記述します。</p>

<div class="m_code"><pre><script>
$("page1").bind("pagebeforeshow", function(event, ui) {
    （何らかの処理を記述）
});</script>&lt;script&gt;<br />$(&quot;page1&quot;).bind(&quot;pagebeforeshow&quot;, function(event, ui) {<br />&nbsp; &nbsp; （何らかの処理を記述）<br />});<br />&lt;/script&gt;
</pre></div>

<p>　こうすれば、「ページ遷移の直前に、遷移先のページで記述された処理を実行し、その処理が反映された状態のページを表示する」ことが可能です。</p>

<h2>■本書をおすすめする人</h2>

<p>　jQuery Mobileを利用する上で、jQueryの知識は多少必要ですが、簡単なjQueryの使い方を知っていれば十分jQuery Mobileを使えます。</p>

<p>　本書は、プログラマだけでなくデザイナーにとっても非常に読みやすい内容です。フォーム部品など、どういった表現がjQuery Mobileで可能かを本書で確認しつつ、デザイナーとプログラマの間で打ち合わせを行い、サイトを設計・構築していく――本書は、その一助になると思います。</p>

<p align="right"><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/azk/all_entrylist.html">『It’s Party Time!』</a> コラムニスト　あずk）</span></p>]]>
        
    </content>
</entry>

<entry>
    <title>『プロジェクト・マネジャーが知るべき97のこと』――ソフトウェア開発の難問はいつだって“人”だった</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2012/01/post-88db.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2012:/bookshelf//52.10447</id>

    <published>2012-01-20T08:27:54Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary><![CDATA[ プロジェクト・マネジャーが知るべき97のこと&nbsp; 神庭弘年（監修）、B...]]></summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="PM関連本" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[<table cellspacing="0" cellpadding="5" border="0" align="left" width="480"><tbody><tr valign="top"><td width="93"><img border="0" width="180" alt="プロジェクト・マネジャーが知るべき97のこと " src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2012/01/18/book_pm.jpg" /></td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL212000">プロジェクト・マネジャーが知るべき97のこと&nbsp; </a></strong></span><br /><br />神庭弘年（監修）、Barbee Davis （編集）、 笹井 崇司 （翻訳） <br />オライリージャパン<br />2011年11月<br />
ISBN-10: 4873115108<br />ISBN-13: 978-4873115108<br />1995円（税込）</td></tr></tbody></table>

<br clear="all" />
<h2>■世界はきのこに満ちている</h2>

<p></p>

<p>　「○○が知るべき97のこと」シリーズの第3弾が出た。本書は、プロジェクト・マネージャ（以下PM）向けのエッセイを97本（日本版は＋11本）を収録している。</p>

<p>　第2弾『プログラマが知るべき97のこと』は、プログラマ向けのエッセイが収録されている名著だった（以前に<a target="_blank" href="http://el.jibun.atmarkit.co.jp/bookshelf/2010/12/post-e0e0.html">書評</a>を執筆したので、ぜひご覧いただきたい）。</p>

<p>　『プログラマが知るべき97のこと』は通称「きのこ本」として親しまれている。ちなみに第1弾は『ソフトウェアアーキテクトが知るべき97のこと』。これはもう「きのこ本シリーズ」とでも呼ぶべきだろう。</p>

<h2>■きのこ本が築く、きのこの山</h2>



<p>　「きのこ本シリーズ」は、それぞれの分野で活躍する人物の手によるエッセイを97本（+α）収録するものだ。いろいろなキャリアを積んできたベテランが、プロジェクトで経験してきたことを短く印象的なエッセイにまとめている。</p>

<p>　「いろいろなキャリア」に根ざして書かれたコラムはどれも味わい深く、時には執筆者同士がそれぞれ違う主張をぶつけ合うことだってある。それが「きのこ本シリーズ」の魅力の1つでもある。</p>

<p>　ところが、本書は過去2冊と比べて明らかに「主張の衝突」が少ない。これはどういうことなのだろう。</p>



<h2>■PMの問題領域、それは「人」</h2><p>　本書を最初から読んでいくと、「プロジェクトを進める際によくある落とし穴」「気を付けるべきポイント」「よりよい行い」といったことを書いたコラムが並んでいる。アジャイルな開発手法を少しでも学んだ／経験したことがある人にとっては「あるある」の連続だろう。

</p>

<ul>
<li>顧客／ユーザーを巻き込む</li>
<li>シンプルを心がける</li>
<li>問題を小さく分割する</li>
<li>優秀なチームを編成する</li>
<li>チームで責任を果たす</li>
<li>変化を受け入れる</li>
<li>コミュニケーションをとる</li>
</ul>

<p>　読みながら分かったのは、「PMの問題領域は人間である」ということだ。</p>

<p>　考えてみれば当たり前なのだが、ソフトウェア開発においてもっとも難しいのは、設計でもプログラミングでもデバッグでもなく「合意すること」なのである。</p>

<p>　ユーザーは「自分たちが何を必要としているか」を分かっていない。顧客は予算を出し渋り、期間を圧縮したがる。開発者は移り気で扱いづらい。そしてみんな人間なので、エゴや怠惰さ、自己顕示欲や怠惰さを備えている。</p>

<p>　ソフトウェア開発プロジェクトでは、こういった「人間の厄介さ」が集約するハブとして「PM」というポジションがあるのだ。</p>



<p>　それであれば、本書に「主張の衝突」が少ないことにも納得がいく。人間関係の問題とは、「すでに解決策が分かっており、そしてそれを実践するのが困難」なものだからだ。</p>

<p>　ミーティングがつい長くなってしまう問題、複数のステークホルダーが違うことを言い出す問題、チームに問題児が紛れ込んでしまう問題、納期が遅れてしまう問題。いずれも、ソフトウェア開発が産業として興る前から存在し、そしてきっと、今後も存在する問題なのだろう。</p>

<h2>■プロジェクト・マネージャとしてこの先生きのこるには</h2>

<p>　ソフトウェア開発にかかわらず、プロジェクトをマネジメントするには「人」が最も大きな問題になるのだろう。そういう視点で本書を読みなおすと、PMという立場に置かれた時の心構えを準備できるだろう。</p>

<p>　目次を見てみよう。いずれも、ソフトウェア開発に関するエッセイとは思えないような見出しだ。</p>

<ul>
<li>05「複雑よりもシンプルな方がいい」</li>
<li>14「大きさが重要」</li>
<li>27「見積もって見積もって見積もる」</li>
<li>37「自らに誠実であれ」</li>
<li>39「変化のための道筋を描く」</li>
<li>69「コミュニケーションが重要」</li>
<li>82「みんなが聞きたいことはなんですか？」</li>
</ul>

<p>　だが、PMが扱う問題領域は、まさにこうした解決法を必要としている。現場で問題に立ち向かうには、かつて問題に立ち向かった諸先輩の声をよく聞き、よく咀嚼（そしゃく）し、そして</p>

<ul>
<li>16「さあ、プラクティスを投げ捨てよう」</li>
</ul>

<p>　自分の現場でこの先生きのこるには、自分の現場に合ったマネジメントを、自分の手で編み出す必要があるのだ。</p>

<p align="right"><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/wifehacks/all_entrylist.html">『Wife Hacks ～仕事と家族とコミュニティと～』</a><br />コラムニスト　kwappa）</span></p>]]>
        
    </content>
</entry>

<entry>
    <title>『クラウド時代の製品･サービス選び Vol.2』――クラウドを使って、災害に強いインフラを整備する</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2011/12/post-a453.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2011:/bookshelf//52.10446</id>

    <published>2011-12-09T08:44:52Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> 災害と節電を見据えたITシステム作りをサポート クラウド時代の製品･サービス選...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table cellspacing="0" cellpadding="5" border="0" align="left" width="480"><tbody><tr valign="top"><td width="93">

<img border="0" alt="Manual_2" title="クラウド時代の製品･サービス選び Vol.2" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2011/12/09/book_cloud_2.jpg" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL1Z0900">災害と節電を見据えたITシステム作りをサポート クラウド時代の製品･サービス選び Vol.2 </a></strong></span><br /><br />ASCII.ｊｐ編集部（著） <br /> アスキー・メディアワークス<br />2011年9月<br /><br />

ISBN-10: 4048709240<br />ISBN-13: 978-4048709248<br />1280円（税込）</td></tr></tbody></table>


<br clear="all" />
<p>　「クラウド時代の製品・サービス選び」の第2弾が登場した（第1弾の書評は<a href="http://el.jibun.atmarkit.co.jp/bookshelf/2011/05/post-ec7c.html">こちら</a>）。</p>



<p>　「クラウド」といってもその範囲は広いが、本ムックでは主にインフラを中心に扱っている。震災をふまえてか、本ムックのテーマは「災害に負けない次のITインフラ作り」。特集内容を順に紹介していこう。</p>

<h2>■第1部 大震災以降のITの災害対策を考える。</h2>

<p>　東日本大震災のような広域にわたる災害を想定した場合、業務データのバックアップメディアとデータセンターが同時に被災しないよう、遠隔に保管する必要がある。私もこれまでさまざまな業務アプリケーションの構築に携わってきたが、遠隔にバックアップサイトを設けるほどのシステム開発の経験は一度しかない。とはいえ、社会インフラを担うような重要業務のデータは失われてはならないものなので、さまざまなことを考慮したうえで保護されなければならないだろう。</p>

<p>　本ムックで私が注目したのは「リモートレプリケーション」という手法である。</p>

<p>　コンピュータシステムの災害復旧（ディザスター・リカバリ）の手法として、これまではバックアップ媒体を遠隔に保管する方法が主流だった。しかし、HDDや通信コストの低下によって、新しい手法が導入されるようになっている。</p>

<p>　事業継続の観点からバックアップ手法を検討した場合、RTO（目標復旧時間）がゼロに近い方が望ましい。レプリケーションという技法を使えば、ディスクボリュームやデータベースの完全な複製をリアルタイムで複製できる。</p>

<p>　最新の遠隔バックアップ技術は、レプリケーションを遠く離れた2つの装置間で行う「リモートレプリケーション」だ。本ムックでは、こうしたクラウド的なデータ同期の考え方を至るところで目にする。</p>

<h2>■第2部 在宅勤務で失敗しない方法</h2>

<p>　東日本大震災以降、「節電」は一大テーマとなった。休日をずらす、サマータイムを導入するなどさまざまな方法があるが、在宅勤務制度を導入した企業は多かった。</p>

<p>　VPNの技術が発達したため、自宅にいながらにして会社と同じデスクトップ環境を扱えることは珍しくない。セキュリティなどの問題さえクリアできれば、ITエンジニアという仕事は在宅勤務をしやすい。</p>

<p>　在宅勤務において私が最も気になる部分は、チームのメンバー間のコミュニケーションをいかに取るかということだ。本ムックでは、コミュニケーション不足を補うコラボレーションツールについても扱っている。</p>

<p>　最も古典的な方法として、ファイル共有がある。例えばマイクロソフトは「SharePoint Server」など、情報の共有化だけでなく、情報の可視化や生産性向上、標準化／最適化といった観点から、コラボレーションツールの充実を図っている。</p>

<p>　リアルタイムなレスポンスを期待するなら、Web会議システムが有効だ。昨今のWeb会議システムは、単に映像と音声を共有するだけのシステムではなく、アプリケーション共有機能もあり、これが在宅勤務に非常に有用なのだという。</p>

<p>　Google Docsも、リアルタイムで変更を共有できる機能を持っている。こうしたクラウドサービスを利用して、在宅勤務をより効果的にできるようにしたい。</p>

<h2>■第3部　災害を見据えたデータセンター選び</h2>

<p>　私は普段、あまりデータセンターに足を運ぶ機会はない。</p>

<p>　一度だけ、某社の大規模データセンターを見学させてもらったことがあるが、その佇まいはSF世界のようで、ずいぶん感動した記憶がある。</p>

<p>　そのデータセンターは厳重な耐震設計が施されており、大規模な直下型地震にも耐えられるという説明を受けた。本特集の最後は、そんなデータセンターの話。</p>

<p>　本特集で紹介されているのは、NTT コミュニケーションズの東京第5データセンター、KVHの印西データセンター、IIJの松江データセンターパークである。</p>

<p>　どのデータセンターも写真付きで設備が紹介されており、私が実際にデータセンター見学の際に感じた「SF的」な美しさを垣間見られる。また、各センターのセキュリティや災害への取り組みなども具体的な設備とともに説明されていて、大変興味深かった。</p>

<h2>■クラウド時代の災害対策</h2>

<p>　クラウドのメリットは、場所や端末にこだわらずにネットワークを経由して常に同じ情報にアクセスできるという点にある。</p>

<p>　これは、日々の業務の効率化や日常の情報の扱いを便利にするだけでなく、災害対策にも有用だ。</p>

<p>　ネットワークのコストが低下し、さまざまな新しい技術が生まれる時代において、災害対策についてもそれらを生かした方策を考えていく必要があり、本ムックはその一助となると思う。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/daisukekasuya/all_entrylist.html">『雲（クラウド）の隙間から青空が見えた』</a>コラムニスト<br />粕谷大輔）</span></p></div>]]>
        
    </content>
</entry>

<entry>
    <title>『業務システムのためのユーザーマニュアル作成ガイド』――マニュアル作成の“間違った常識”と改善ガイド</title>
    <link rel="alternate" type="text/html" href="https://el.jibun.atmarkit.co.jp/bookshelf/2011/11/vim-ddd6.html" />
    <id>tag:el.jibun.atmarkit.co.jp,2011:/bookshelf//52.10445</id>

    <published>2011-11-28T06:09:58Z</published>
    <updated>2016-06-06T03:21:08Z</updated>

    <summary> 業務システムのためのユーザーマニュアル作成ガイド黒田聡、雨宮拓、徳田直樹、高橋...</summary>
    <author>
        <name>書評チーム 「ELリーダーズ」</name>
        
    </author>
    
        <category term="SE関連本" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://el.jibun.atmarkit.co.jp/bookshelf/">
        <![CDATA[
<table cellspacing="0" cellpadding="5" border="0" align="left" width="480"><tbody><tr valign="top"><td width="93">

<img border="0" src="http://el.jibun.atmarkit.co.jp/photos/uncategorized/2011/11/28/manual_2.jpg" title="業務システムのためのユーザーマニュアル作成ガイド" alt="Manual_2" />
</td>
<td width="201"><span style="font-size: 1.2em;"><strong><a href="http://www.atmarkit.co.jp/misc/ct.php?id=EL1Y2800">業務システムのためのユーザーマニュアル作成ガイド</a></strong></span><br /><br />黒田聡、雨宮拓、徳田直樹、高橋陽一 （著） <br />翔泳社<br />2009年1月<br /><br />

ISBN-10: 4798117145<br />ISBN-13: 978-4798117140<br />2604円（税込）</td></tr></tbody></table>
<br clear="all" />
<h2>■たかがマニュアル、されどマニュアル</h2>






<p>　長い開発が終わってようやく一息つけると思ったのもつかの間、「マニュアル作っておいて」という一言により、慌てて画面をキャプチャし始める。マニュアル担当になったものの、開発側の仕様決定遅れに引きずられてリリース前に徹夜して書き上げる……。こんな経験は皆さん、一度ならず、二度三度はあるだろう。</p>

<p>　なんだかんだとなくてはならないもの、それが「マニュアル」である。マニュアルに携わるエンジニアを救ってくれる（かもしれない）のが本書、『業務システムのためのユーザーマニュアル作成ガイド』だ。</p>

<h2>■オーソドックスな章立て</h2>

<p>　章立てを見ていこう。</p>

<ul><li>第1章　マニュアル作成の「間違った常識」</li>

<li>第2章　マニュアルの企画はこう進める</li>

<li>第3章　マニュアルの文章はこう書く</li>

<li>第4章　マニュアルや仕様書をわかりやすくするビジュアル表現</li>

<li>第5章　マニュアルの内容・表現の校正はこう進める</li>

<li>第6章　マニュアルの保守管理はこうする</li>

<li>第7章　部品化と構造化で効率アップ</li></ul>

<p>　第1章で「間違った常識」と読者の注意を喚起し、2章以降でマニュアルの作り方を順に説明していくという、オーソドックスなスタイルだ。「マニュアルの書き方を知りたい」読者にとっては一見、冗長にも見える。</p>

<h2>■思わず読み込んだ「マニュアル作成の間違った常識」</h2>

<p>　まずは、1章から紹介しよう。</p>

<ul><li>1‐1 常識の誤り マニュアル作成は目次構成の検討から始める</li>

<li>1‐2 常識の誤り マニュアルは読者別に分冊にする</li></ul>

<p>　「常識の誤り」とは、なかなか過激な見出しである。普段、当たり前にやっていることなのだが、本書によれば「誤り」らしい。こういうやや過激な見出しは往々にして中身が伴わないものが多いが、本書は読んで納得できた。例えば、1‐1の「マニュアル作成は目次構成の検討から始める」では、「典型的な目次先行検討法の例」として「XX設定・XX登録」など機能の羅列の悪い例が示されている。確かにやりがちである。この「誤り」に対する、本書の回答。</p>

<ul><li>何を伝えたいのか明確にする</li>

<li>伝える内容を整理整頓する</li>

<li>見せ方、探させ方の設計が目次作成である</li></ul>

<p>　なるほど納得。特に3番目は「目次作成とは何か？」という著者の定義が明確に主張されていて、分かりやすかった。</p>

<p>　続いて1‐2の読者別分冊、ここではよくある（でも良くはない）家電のマニュアルが例として挙げられている。</p>

<ul><li>1冊目：「初めてお使いの方に」</li>

<li>2冊目：「取扱説明書応用編」</li>

<li>3冊目：「困ったときに」</li></ul>

<p>　それぞれの問題点と改善例が示されている。読みながら一緒に考えてみるとよいだろう。</p>

<p>　本書は、他にもいろいろな「常識の誤り」を紹介している。</p>

<ul><li>1‐3 常識の誤り 書き始める前に文章の組み立てを行う</li>

<li>1‐4 常識の誤り マニュアルでは操作と結果を分けて書く</li>

<li>1‐5 常識の誤り わかりやすいマニュアルを書ける人は、文章の上手な人</li>

<li>1‐6 常識の誤り 正しい日本語文法の知識は必須である</li>

<li>1‐7 常識の誤り マニュアルには索引は必須である</li></ul>

<p>　ほとんどが「常識じゃなかったの!?」という内容だったので、思わず熟読してしまった。</p>

<p>　誤りの改善例として、「文章の組み立てのためには、マインドマップを使って書きたいことを視覚化する」というものがあったのだが、自分も同じ解決法を用いていたので、ほっとした。他にも「Wordの文章校正機能などを使って文法ミスを回避する」など、日ごろから行っておきたい例が紹介されている。</p>

<p>　1章はこの後の各章の導入部となっているので、飛ばさず読んでおきたい。</p>

<h2>■マニュアルも企画が肝、実はシステム開発と同じなのかもしれない</h2>

<p>　2章では「マニュアルの目次を仕上げるまで」――つまりマニュアルの企画段階について書いている。この章は内容が濃かった。</p>

<p>　業務フローを作成するところが出発点だ。しかも、導入前と導入後のフロー両方である。まるで業務分析をしているかのようだ。そこから「機能」「操作」へと落とし込んでいく。</p>

<p>　マニュアルらしいところは2-6の「期待に応えられないところを探し出す」だろう。「できると思っていることができないという情報もまた、必要な情報」というところは、利用側の立場になってみればよく分かる。実際にできると思って探し回るのは、経験上よくあることだ。</p>

<p>　2章は17節まであり、ボリュームが大きい。そのくらい、企画段階はマニュアルにおける“肝”なのだろう。</p>

<h2>■マニュアル作成のプロによる作成に校正、保守の解説</h2>

<p>　3章の「文章はこう書く」は、読者を絞り込むペルソナモデルからスタートし、漢字・ひらがなの使い分け、修飾語、接続詞、助詞、指示語、といった「書き方」についてのポイントを紹介している。文科系出身の人間は、息がつけるところだ。「に」と「へ」の区別などを再確認するのにちょうどよい。</p>

<p>　4章はビジュアル表現。ビジュアルと聞くとすぐにイラストを想像してしまうが、それだけではない。ビジュアルは特に、図解によるグルーピングなど、論理的な思考を試される。この4章でようやく、Wordの「段落書式の設定」といった、具体的なツールの使い方が出てくる。本書が、手法に重きを置いていないということがよく分かる。4章までを読めばひととおりのマニュアルが書けると思う。</p>

<p>　5章は校正について。PDF校正の利点についての説明は、マニュアル作成をやったことがある者としてよく分かる。</p>

<p>　6章では保守管理、7章では部品化・構造化について。通常のシステムマニュアルでここまで踏み込むのは容易ではない。ただしマニュアル管理の業務に携わったことがあれば、イメージがつきやすい内容だろう。</p>

<h2>■まとめ。マニュアル作成側の地位向上はなるか？</h2>

<p>　内容をまとめよう。1章の常識は、次章以降の導入部となっているため、読んでおく必要がある。2章以降は、作成の手順に沿った構成で分かりやすい。だからといって「さあ、作ってみよう」というチュートリアル形式の手段や方法ではなく、考え方が述べられているので応用が利く。</p>

<p>　マニュアル作成全般のフェイズだけでなく、メンテナンスのフェイズでも手元においておきたい本である。</p>

<p>　ただし、いくらマニュアルを工夫しても、出来の悪いシステムが良くなるわけではない。分かりにくいインターフェイスは分かりにくいままだ。</p>

<p>　だから、マニュアル作りが軽視されるのかもしれない。本来はシステム開発において開発側と両輪であるべきだし、マニュアル側から開発へ改善を求めるくらいが理想的なのだろう。</p>

<div align="right"><p><span style="font-size: 0.8em;">（<a href="http://el.jibun.atmarkit.co.jp/k/all_entrylist.html">『30過ぎで5社目でした。』</a>コラムニスト　けいいちっく）</span></p></div>]]>
        
    </content>
</entry>

</feed>
