『Webを支える技術』を読んだ

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

本書は、HTTP/URI/HTMLといった「Webを支える技術」の解説を通じて、Webサービス(Webアプリケーション)の設計を学ぶ本です。

私が普段仕事でやっているのは、いわゆるWeb制作です。会員制サイトや簡易的なゲームといった、「枯れた」、あるいは、よそのプラットフォームに乗っかる設計のサイトばかりなので、アプリケーションを設計段階から構築する、なんて作業とは無縁です。

本書の前半、HTTPやURI、HTMLといった個別技術の解説は興味深く読むことができましたが、後半、Webアプリケーション設計の実践に入ると、「理屈はわかるが、実装がわからん」という部分が多々ありました。

著者が熱く推す「REST」という設計スタイルについても、はっきり言ってよくわかっていません。いま説明しろと言われても無理。

ですが、前半の個別技術の解説だけでも、十分元は取れると思います。基礎を広く浅く学べる、初心者向けの良書です。

バグの起こりにくいJavaScriptのコーディング方法 by 山田祥寛(from 日経ソフトウェア)

日経ソフトウエア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は、「こんなものがあるんだよ」という紹介程度)、手元に置きたい記事はありませんでしたが、図書館で眺める分には良い雑誌だと思います。

GitHubのクライアントが便利な件

GitHubの使い方、今まではGitHubのサイトでリポジトリを作って、ローカルにcloneして、ローカルからaddしてcommitしてpushして、という工程をたどっていました。

が、いつの間にやら、GiuHub公式のクライアントが出ていました。

http://mac.github.com/(Mac)
http://windows.github.com/(Windows)

これを使うと、上記の作業は全てクライアントで完結します。GUIで分かりやすく、基本的な操作はこれ一つでOK。

Back to Perl

『たのしいRuby』は土曜で第3部まで終わったので区切りをつけ、今日は再び『Perl言語プログラミングレッスン』をやりました。

『Perl言語プログラミングレッスン』の不思議なたのしさの源泉は、丁寧な解説と構成にあります。文章も適切ですが、それ以上に読者に与える情報の順番が適切で、よく整理されている。結果として読者は、不明な点を解消しつつ、着実にステップアップすることができます。

Perlのモットーは「There’s more than one way to do it.(やり方は他にもはある)」。一つの機能を実現するにも様々な書き方ができる。そのため、初心者向けの言語としては向かない印象もあります。しかし、『Perl言語プログラミングレッスン』では、結城浩氏の巧みな整理によって、様々な書き方があることに伴う混乱は最小限に抑えられています。

一方で、Perlに戻って実感するのは、Rubyのラクさ。Rubyは、行末のセミコロンだとか、条件式の括弧だとかいっためんどくさい要素が排除されています。したがって、プログラミングの好きな人が、プログラミングの楽しさを味わうには向いている言語だと思います。

GitHub始めました

アカウントは以前から取ってたのですが、ほぼ休眠状態でした。

ひと通りセットアップが終わったので、書いたものの中から適当に選んで上げていきたいと思います。できれば毎日、何かしらは書いてUPしたい。

https://github.com/ryo-utsunomiya

現在は、 https://github.com/ryo-utsunomiya/Ruby に『たのしいRuby 第3版』の答案など上げています。