Strings of Life

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

タグ:Javascript

あけましておめでとうございます。2012年に読んだ技術書のまとめ兼、2013年の抱負です。


☆HTML/CSS

HTML/XHTML&スタイルシートレッスンブック―ステップバイステップ形式でマスターできる
HTML/XHTML&スタイルシートレッスンブック

2月に読了。XHTML1.0を使用したマークアップの入門書。CSS2も同時に習得できます。最初からHTML5を学べる入門書も出てきていますが、XHTML1.0のマークアップはHTML5を書く上で基礎となるものです。本書が、HTMLマークアップの優れた入門書である点は現在でも変わりありません。オススメ。


HTML5+CSS3で作る  魅せるiPhoneサイト  iPhone/iPad/iPod touch対応
HTML5+CSS3で作る 魅せるiPhoneサイト

3月に読了。iOSデバイスに対応したサイト構築方法が学べます。「iPhoneサイト」であって「スマホサイト」ではないので、Android対応に関しては一切触れてません。


2013年は、HTMLに関しては「これをやりたい」ってあんまり無いんですよねえ。CSSに関しては、SCSS/LESSあたりには興味があります(やるとは言ってないw)。


☆JavaScript/jQuery

マンガでわかるJavaScript
マンガでわかるJavaScript

3月に読了。11月に再読。3月時点では分からないところは飛ばして読みました。11月時点では、JavaScriptのオブジェクト指向の理解が進みました。漫画はゆるくて面白いものの、サンプルコードが退屈なのが弱点。Webサイトマンガで分かるJavaScriptプログラミング講座の書籍版です。


Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)
Web制作の現場で使う jQueryデザイン入門

4月に読了。実践的なサンプルコードが充実しているうえ、商用利用可! 職場に1冊jQuery本を置いとくならコレ。基礎編は入門に適した内容になっているものの、実践編はプログラミング初心者にはツラい(正規表現が登場したりする)。jQuery学習書としてはWebデザイナーのための jQuery入門の方がオススメ。


jQuery ポケットリファレンス (POCKET REFERENCE)
jQuery ポケットリファレンス

調べ物用。jQuery1.4対応。公式リファレンスを見ても分からない、って時に、本書を読んだら解決したりする。


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

11月に読了。本の構成が初心者に優しくないうえ、邦訳が雑。非推奨。


JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技

若手IT勉強会のため購入。マニアックなネタが多いので、中級者以上向け。


他に、JavaScript本格入門も買いましたが、未読。JavaScriptはしっかりやりたいなと思いつつも、いまいちやれてない。仕事で全然使ってないのが一因ですね。今年、どの程度やるかも、仕事次第。


☆PHP

PHP公式資格教科書 PHP5技術者認定初級試験対応 (EXPERT EXPASS)
PHP公式資格教科書 PHP5技術者認定初級試験対応

半分ほど読んで積ん読。環境構築は載ってないので、初心者向けではありません。非常に易しい内容と、妙にマニアックな内容(ビット演算とか)が混在しています。資格に関しては、受験料1万2千円と聞いて取るのをやめました。


よくわかるPHPの教科書
よくわかるPHPの教科書

4月に読了。プログラミング初心者でもOK。読みやすくて分かりやすいのですが、ある程度学習が進んでから読み返すと粗の見えてくる本でもあります。

代替となる入門書としては、プリペアードステートメントを使ってて感心したいきなりはじめるPHP(ただし本のレイアウトに難あり)や、「PHPの会社」アシアルのイラストでよくわかるPHPあたりが良いかな、と。

いずれも200ページ前後で、300ページある『よくわかるPHPの教科書』よりも情報量は少ないです。プログラミング未経験者のPHP入門は、「これ1冊でOK」な500ページ以上あるような入門書にいきなり取り組むより、薄い入門書を1冊読んでプログラミングの感じをつかむ → 充実した入門書を1冊読んで知識を本格化する という流れの方が挫折しにくいと思います。

※「充実した」の基準:MySQLは必須、オブジェクト指向まで載っているとbetter


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

8割ほど読んだところで積ん読。残りはCodeIgniterが必要になったら読む予定。Hello Worldからフレームワークまで一気に駆け抜ける。PHPのコードは、セキュリティにもしっかり気を配っていて好印象です。MySQLを全く扱っていないのが弱点で、オススメには一歩足りず。


Head First PHP & MySQL ―頭とからだで覚えるWebアプリケーション開発の基本
Head First PHP & MySQL ―頭とからだで覚えるWebアプリケーション開発の基本

11月に読了。PHPとMySQLの基礎を固める本。オブジェクト指向が抜けているのは残念だが、HTTP通信の話やDB関係は充実している。2008年の本。MySQLの設定等、現在では通用しない部分もあるので、オススメには一歩足りない。


PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
PHP 逆引きレシピ

調べ物用。「こういう機能はどう作ればいいんだろう」って時に、目的から探せるので便利。オススメ。


パーフェクトPHP (PERFECT SERIES 3)
パーフェクトPHP

現在読書中。実務者向けの本。PHPの基礎も載ってますが、言語仕様のつまづきやすいポイントや、PHPのオブジェクト指向の構文等、他の言語でバリバリ書いてきた人向け。PHP実務者必読! と言いたいくらい素晴らしい内容。オススメ。

ただし、PHPでプログラミングを学んできて、オブジェクト指向は使うほうは出来るけど、クラスの設計とかはちょっと……という私のような人は苦労すると思います。


独習PHP 第2版
独習PHP 第2版

現在読書中。良くも悪くも教科書的。オブジェクト指向プログラミングを初歩からきっちり解説してあるPHPの入門書は少ないので、本書は貴重な存在。難点は、(1) Windows環境を前提とした解説(環境構築はLinux向けも載っているが、本文のコードはWindows環境) (2) 文章やサンプルコードが退屈 の2点。


PHPに関しては、パーフェクトPHPまで読み終えたら一段落つくかな、という印象です。フレームワークに関してはCake PHPを学習していこうと思います。


☆MySQL

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

10月に読了。MySQLの解説は分かりやすく、充実している。PHPも載っているのでMySQLを利用したいPHPerには最適。HTMLも載ってるが、10年以上前のスタイルなので真似してはいけない。


SQLは、CRUD文を一応書けるよ、という程度で、セキュリティやスケーラビリティ、MySQLのチューニング等、課題が山積。2013年に力を入れたい分野の一つ。


☆Ruby

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

Rubyのカルチャーに触れる本。Ruby入門者の1冊目にオススメ。


たのしいRuby 第3版
たのしいRuby 第3版

しょっぱなから「メソッド」「オブジェクト」といった用語が説明なしに出てくる等、初歩から載ってる割に初心者向けの配慮が不足している。Rubyの構文の気持ちよさを体験することができたのは良かった。


Rubyに関しては、Railsやりたいなあと思いつつやれずに終わった2012年でした。2013年はRailsやります。


☆Perl

新版Perl言語プログラミングレッスン入門編
新版Perl言語プログラミングレッスン入門編

私にとって、本書は「Perl入門」というより「正規表現入門」です。Perlの構文は今ではすっかり忘れてしまいましたが、本書で学んだ正規表現は毎日のように使ってます。解説が非常に丁寧なので、Perl入門者のみならず、プログラミング初心者にもオススメします。


Perlに関しては、『Perl言語プログラミングレッスン』を再読して、積ん読になっている初めてのPerl 第6版も読んで、手元で動かすスクリプトはPerlで組めるようになりたいな、と思ってます(現在はPHPで組んでます)。


☆ActionScript

Essential ActionScript 3.0
Essential ActionScript 3.0

現在読書中。私は、オブジェクト指向プログラミングの基礎を本書で学びました。基礎からの丁寧な解説と、実際に動く本格的なアプリケーションの作成を並行して行う。私の好みにドンピシャの1冊。ただし、分量が非常に多い(邦訳紙版は900ページ超)。


ActionScriptは「JavaScriptの皮を被ったJava」です。言語も環境もよくできてると思うのだけど、世間的には衰退するという予想が多いんですよね。個人的には、Angry BirdsのようなカジュアルゲームをPC/スマートフォン両対応で出す際には、Flashが現在の最適解、と思ってます。とはいえ、私はFlash制作者になりたいわけではなく、ActionScriptは趣味です。


☆新年の抱負

やりたいことの優先順位をつけると、

SQL(MySQL) > Ruby(Rails) > JavaScript > PHP > その他

って感じですね。SQLは仕事にも関係するし、やってて楽しい分野でもあるので、最重視。Rubyは新しい世界を知るため。JavaScriptは、覇権言語になりそうなのでやっとこうかなと。PHPはライスワーク。

その他としては、正規表現(日常使いの便利ツール)、Perl(YAPCを楽しむため)、Java(オブジェクト指向を学ぶため)、C(プログラマーの一般教養)あたりをやりたいな、と。


また、特定の言語に限らないトピックとしては、自動テストの書き方、走らせ方。現在は、仕事でも(!)、プライベートでも、テストを全く書いてないので。gitに関しても、一度学びの機会を作りたい。

あと、エディタ。PHPはPhpStormで決定だけど、それ以外の言語をどのエディタで書くか。vimはサーバで設定をいじくる時に使うエディタとしては十分だけど、モードが面倒なのでメインとして使うには不安を感じる。一方、emacsはデフォルトのキーバインドがイケてないのと、カスタマイズの敷居の高さが難点。どちらかに決める突破口があれば良いのだけど。

今年もよろしくお願いします。

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は〜ようです。」という部分。こんな翻訳、見たことない。

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

若手IT勉強会 http://www.wakateit.org/

若手IT勉強会とは、嶋田大輔(@cimadai)氏が中心となって活動している勉強会のことです。今回で第32回でした。「JavaScriptテクニックバイブル読書会」の第2回ということで、若手IT勉強会が元となって企画が立ち上がった書籍『JacaScriptテクニックバイブル』を読んでいこう、という内容でした。

JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技


著者自らの注釈を聞きながら学べるという大変贅沢な(会|回)でした。なお、『JavaScriptテクニックバイブル』は初級者〜中級者向けの本で、完全な初心者が読むとほとんどわからないと思います。

JavaScriptに関しては、私はjQueryでお手軽に書く程度だったうえ、最近は全く触れていませんでした。参加申し込みを済ませてから『Head First JavaScript』を引っ張りだしてきて、突貫工事で要所を読み終え、JavaScriptのオブジェクト指向について付け焼刃の知識を身につけて参加した、って感じです。

今回はJavaScript初心者が多かったのでゆっくりした進行でしたが、時折Javaをはじめとした他の言語との比較が混じると、ついていけない部分も結構ありました(Javaって、プログラマーの世界ではCと並んで、共通語に近い存在みたいですね。私はCもJavaも経験ありませんが。。。)。


今回の勉強会で学んだことは色々あったんですが、明日からすぐに使えそうなネタは「WebStormいいよ!」ってやつですね。WebStormは有償のIDEです。本書で紹介されている様々なテストツールが、GUIから統合的なインターフェースで利用できるのが便利なところ。

私はPHPerなので、PhpStormをダウンロードしてみました。PhpStormには、WebStormの機能が全て含まれています。その分、WebStormより高い。

懸念点はライセンス
a) Licensee may:

(i) install and use the version of Software specified in License Certificate on multiple computers and operating systems, provided that Licensee is the only user of Software and that Software is not used on more than one machine and (or) operating system at a time, and

(ii) make one back-up copy of Software solely for archival purposes.

(b) Licensee may not:

(snip)

(iii) use the License Key on different computers or operating systems at a time.

「インストールは複数可能だが、アクティベートは1台まで」って仕様っぽいですねえ。私は仕事用とプライベート(勉強)用のPCは分けてるので、この仕様だと毎日アクティベートしないといけなくて大変そう。


次回は通信系とタイマー系かな? WebSocketとかもやるようなので、しっかり予習して、都合がつけばまた参加したいです。

日経ソフトウエア2012年6月号に、興味深い記事があったので、要旨をまとめておきます。著者は、『JavaScript本格入門』等の著書がある山田祥寛氏。

  1. var命令による変数宣言は省略しない ∵var命令で宣言しなかった変数はすべてグローバル変数と見なされる
  2. 比較演算子の「==」は使わず、「===」を使う ∵厳密な比較が出来ない
  3. 配列の生成にはリテラルを使う リテラルとは:var ary = [-5, 0, 5]のような記法 理由:意図しない形での配列の生成を防ぐため
  4. 中括弧は省略しない ∵条件が入り組むと、対応関係がわかりづらくバグの温床となる
  5. 文の途中の改行に要注意

どこかで見たような内容もありますが、コーディングスタイルは書いているときに楽な形に偏りがちなので、定期的に見直すのが良いと思います。

他に、JavaScript高速化の方法も載ってましたが、「<script>要素は</body>と</html>の間に置く」「コードを圧縮する」「例外処理は出来るだけ書かない」「eval()は使わない」等の、これまたどこかで見たような内容。

『日経ソフトウェア』、プログラミング初級者向けの雑誌という位置づけですが、C語族+Javaと、JavaScriptと、スマホアプリの入門記事が入り交じっていてカオスです。

触りすらしない「眺めるだけ」の解説も多く(例えばCoffee Scriptは、「こんなものがあるんだよ」という紹介程度)、手元に置きたい記事はありませんでしたが、図書館で眺める分には良い雑誌だと思います。

window.addEventListener('load',
  function(){
    setTimeout(function(){
    scrollTo(0,1);
    },100);
  }, false;

※↑にはミスタイプの可能性があるのでコピペは非推奨



参考書籍:HTML5+CSS3で作る  魅せるiPhoneサイト  iPhone/iPad/iPod touch対応
HTML5+CSS3で作る 魅せるiPhoneサイト

このページのトップヘ