Strings of Life

PHP/Phalcon/MySQL/JavaScript/RegExp/Ruby/Perl/ActionScript

タグ:読書

Head First JavaScript ―頭とからだで覚えるJavaScriptの基本
Head First JavaScript ―頭とからだで覚えるJavaScriptの基本


独創的かつ親しみやすい見た目と、それとは裏腹に分量が豊富で本格的な内容の入門書シリーズ『Head First』のJavaScript版です。私がプログラミングを覚える際、最初に接した本でもあります(昔、BASICを触ったことはありますが、もはや記憶の彼方…)。

本書を初めて読んだ際に感じたのは、「説明はわかるが、書けるようになった実感が湧かない」というものでした。結局、配列あたりでよくわからなくなって、ループあたりで脱落、その後は本棚でほこりを被っている、という状態でした。

私はのちにWebエンジニアとして職を得て、PHPをはじめ、JavaScript(というかほとんどjQuery)もそれなりに書くようになりました。そんな現在の私から見ても、本書はやっぱりとっつきにくい。説明は読めるのだけど、読んでコードが書けるようになる感じではない。合わなかった理由は、おそらく次の2点。

1.説明が飛び飛び。「オブジェクト」や「メソッド」といった言葉は序盤から出てくるが、それらの具体的な内容が分かるのは、全体の3分の2を過ぎたあたり。それまでずっとモヤモヤを抱えることになる。

2.説明の量に対して手を動かす量が少ない。


JavaScriptのprototypeベースのオブジェクト指向についてはある程度分かったので、それは収穫。だけど、DOM操作のような「手で覚える」タイプのプログラムはさっぱり書ける気がしない(jQueryを経験した身からすると、DOMを直でいじるのはダルすぎる、という理由もある)。

結局、Head First JavaScriptは私には合わなかった、というのが結論。なお、Head Firstシリーズ全般が合わないわけではない。Head First SQLなどはお気に入り。


一点指摘しておきたいのが、本書の翻訳の劣悪さ。たぶん、私が今までに読んだ本の中でワースト。私の手元にあるのは初版ではなく3刷だが、いたるところに誤りがある。誤字や誤植は可愛いもので、誤訳も散見される(例:「専門的な」の意味で使われているtechnicalを「技術的な」と誤訳)。何より酷いのは、「未訳」。日本語化されていない生の英語が、そのまま残っている箇所がある。具体的には、p.266の冒頭「It seemsJavaScriptは〜ようです。」という部分。こんな翻訳、見たことない。

この分量の本を訳すのが、大変な割に見返りの少ない仕事であるのはわかるけど、少なくないお金をとる製品なのだから、最低限の品質管理はしてほしい。

Webサイト制作者のための PHP入門講座
Webサイト制作者のための PHP入門講座

PHPの再入門として、↑をやってます。本書の特徴は、「プログラミング経験ゼロでもOK」を謳う入門書でありながら、比較的高度な内容を扱っていること。「初心者こそフレームワークを使うべき」という考えのもと、フレームワークを使った本格的なWebアプリケーションの作成を行います。PHPの入門書で、MySQLを全く扱ってないのも珍しいですね。


今日は、本書で使用するフレームワーク、CodeIgniterのインストールをやっていました。基本的には、ダウンロードしてサーバーで公開するディレクトリに設置すれば動くお手軽フレームワークなのですが、いくつか設定が必要です。

本書で紹介しているのはCodeIgniter 1.7時代の設定方法で、2012年現在の最新バージョンであるCodeIgniter 2.0では多少設定方法が異なります。著者のブログ記事でも2.0対応の方法は書いてあるのですが、これは「1.7環境で作成したアプリの実行環境を2.0に変更し、2.0でも動くように書き換える方法」です。

これから本書をやる人に必要なのは「いきなりCodeIgniter2.0をインストールして、2.0上で本書のアプリを動かすための設定」でしょう。基本的には、上記ブログ記事を参考に本文の読み替えを行えば解決するはずですが、設定段階で上記ブログ記事にたどり着いた人のために補足しておきます。

1. Applicationsフォルダが無い(変な場所に有る)

本書の本文中では/system/Applications/という階層構造になっていることになっていますが、これはCodeIgniter1.7の仕様。2.0では、Applicationsフォルダはsystemフォルダと同じ階層にあります。index.phpの設定も、systemフォルダの場所だけでなく、Applicationsフォルダの場所も指定してやる必要があります。

2. station.php等が無い

station.phpは本書で作成するphpのことなので、インストール直後の段階では存在しません。gnaviapi.php、yahooapi.phpも同様。

3. welcome.phpが既に有る

welcome.phpはCodeIgniterにはじめからついてきますが、本書でも新たにwelcome.phpを作成します。仮に、welcome2.phpなどを作成して、上記ブログ記事で変更箇所として挙げられている記述をメモしておくとよいでしょう。


私はフレームワークといえばRuby on Railsしか触ったことが無かったのですが、CodeIgniterはRailsに比べて、導入が非常に容易であると感じました(その分、Railsのような至れり尽くせり感はありませんが…)。

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
基礎からのMySQL 改訂版

500ページ以上ある本ですが、解説が丁寧なのでスムーズに進みました。以下、感想。


MySQLを学ぶうえで最初のハードルとなるのが環境構築です。本書は、WindowsにXAMPP(Apache, PHP, MySQL等がまとめられたソフトウェア)を入れ、文字コードはShift-JIS、という、読者の大多数を占めるであろうWindowsユーザーにとってフレンドリーな環境を作る方針になっています。Macユーザー向けにもMAMPの導入方法が載っています。

が、この点、私は不満です。というのも、MySQLを仕事で使う場合、そのOSはLinuxである可能性が高いからです。そして、WindowsとUnix(Linux、Mac等)では、MySQLの挙動が一部異なります。例えばテーブル名。Windows版MySQLでは大文字と小文字を区別しませんが、Unix版は区別します。「tbUser」と「tbuser」は、Windows版では同じテーブルですが、Unix版では別物です。その他のWindows版とUnix版の相違については、MySQLリファレンスが参考になります。


本書のメインである、データベース言語SQLの解説については、さすがに丁寧で充実しています。本書をやれば、基本的なCRUD文(データベースの作成、データの呼び出し、データの書き込み、データの消去)が書けるようになります。プログラマーにとって必要最低限のSQLは身につきます。また、ビュー、トランザクション、ストアドプロシージャとストアドファンクションについてもさわりだけは学べます。その先、MySQLのチューニングや、高度で複雑なSQLは、本書の守備範囲を超えます。


MySQLとセットで用いられることの多いプログラミング言語PHPについては、MySQLとの組み合わせで必要な最低限の範囲を絞って書いてあります。変数と配列、条件分岐と繰り返しといった、プログラミングの基礎に、MySQLを利用するための関数を加えた内容ですね。

WebページでのMySQL利用で問題となるSQLインジェクション対策等、セキュリティについても触れられています。自分の作ったサイトの脆弱性を自分で攻撃する、という流れが面白かったです。


HTMLに関しては、酷いの一言。本書に載っているHTMLは、10年前のそれです。XHTMLを経た現代のマークアップは、本書とは全く異なった書き方をします。まあ、タグの大文字はHTML5の仕様上はOKだし、<html><head><body>などはHTML5では省略可能とされています。ただし<FONT>、テメーはダメだ。

<FONT>タグのような、スタイル指定のための要素は、HTML5では廃止されています。<B><U><I>も同様です。ブラウザーは下方互換性を保つように作られているので、<FONT>タグを使っても当面問題となることはないでしょう。しかし、スタイル指定のための要素を使うと、HTMLを書くのにも煩雑ですし、後々のメンテナンスが大変になります。Webページのデザインの調整を行いたいなら、CSSを学ぶべきです。HTML/XHTMLスタイルシートレッスンブックのような良書があります。


後半がイケてなかったので、読後感は良くありませんが、前半のSQLの解説は丁寧です。オススメというほどではありませんが、SQLの部分だけでも元は取れるはず。あなたがMySQL初心者なら、買って損はしないでしょう。

ただ、Windows上での環境構築にせよ、HTMLタグの解説にせよ、初心者に理解しやすい内容(裏を返せば、解説の容易な内容)を選択した結果、実務の観点からするとツッコミどころがある、という点には留意すべきかと。

小飼弾のアルファギークに逢ってきた (WEB+DB PRESS plusシリーズ)
小飼弾のアルファギークに逢ってきた

本書は、先端的な感性と高い技術力を兼ね備えたエンジニア「アルファギーク」に、自身もアルファギークである小飼弾氏がインタビューを行った本。

Larry Wall(Perl作者)、DHH(Ruby on Rails作者)、Evan Williams(Twitter共同設立者)、Dave Thomas(『達人プログラマー』共著者)、John Resig(jQuery作者)など、海外からのゲストは大物揃い。日本人も、2008年当時から現在まで、一線で活躍している人たちが並んでいる。

全員のリストは著者ブログを参照のこと:404 Blog Not Found:本日発売開始+目次 - 小飼弾のアルファギークに逢ってきた)。


優秀なエンジニアのモノの考え方を伝えよう、という企画で、それはかなり成功していると思います。小飼弾のアルファギークに逢いたい♥には、本書の元になったインタビューや、本書にも掲載されていないインタビューが載っています。

コードを書く情熱を与えてくれる熱いインタビューが満載。オススメ。


ちなみに、私が本企画に見つけた「隙間」は、まつもとゆきひろ氏に対するインタビューの不在です。本の中でもたびたび名前が挙がるのに。本書とは趣が異なりますが、小飼弾氏とまつもとゆきひろ氏の対談? を見つけたので、リンクを張っておきます。

まつもとゆきひろ×小飼弾対談 生き残るエンジニアとは?

たのしい開発 スタートアップRuby
たのしい開発 スタートアップRuby

↑は書籍版ですが、私が購入したのはGIHYO DIGITAL PUBLISHINGの電子版です。技評の電子版は、DRM無しのPDFなので扱いやすいです。PCで、画面の左半分に本を開いて、右半分でターミナル等の操作をする、という読み方(使い方?)が出来ます。

本書『スタートアップRuby』は、その名の通りRubyの入門書です。本書がユニークなのは、Rubyというプログラム言語の入門書ではなく、Rubyを取り巻く文化であったり、Rubyを使った開発スタイルの入門書であるという点です。

読了すればすぐにRubyを書いたりRailsで開発したり出来るようになる、という本ではありませんが、Ruby入門者は「急がば回れ」で読んでおくと良いのでは。

完全なプログラミング初心者でも、飛ばし飛ばしであれば読めますし、必要なエッセンスはある程度伝わるでしょう。メインターゲットは、Ruby経験は無いが、Rubyに興味がある、というプログラマーです。


今まで、仕事でもプライベートの学習でもWebアプリケーションフレームワークというものを使ったことが無かったので、Railsの手軽さには驚きました。

テストの話などは深く理解できたとはいえませんが、今いる会社でやっている、変更を加える→手動で実際に動かしてテスト という非効率的なやり方に比べれば、自動テストという手法は素晴らしい。

このページのトップヘ