COBOL技術者の憂鬱

COBOLプログラマは不在にしています

RetroHateb開発時に参考にした本やサイトのまとめ


RetroHateb

リリースしてからしばらく間が空いてしまいましたが、開発時に参考にした本やサイトなどのまとめを書いておこうと思います。



フレームワーク

PHPによるWebアプリケーションスーパーサンプル活用編 第2版

PHPによるWebアプリケーションスーパーサンプル活用編 第2版


フレームワークというものは「既に世に出回っているものを利用する」だけではなく、「自分なりに工夫して作りあげていく」こともできるのだということに気づかせてくれた本です。
世にある数多くのフレームワークの「ベースとなっている考え方」を理解することができ、掲載されているサンプルを参考にしながら自分専用のフレームワークを作成することができました。
phpspot開発日誌の中の方が書かれているそうなのですが、この本についての以下の紹介文が印象的ですね。

現在のところ、SymfonyやZendFramework等、MVCフレームワークは沢山でています。
この使い方の説明を書こうかと思ったのですが止めました。
なぜかというと、フレームワークについての理解があまりない状態で、フレームワークを使ってもメリットを感じにくい部分があるからです。
有名なフレームワークを使う前に、一度フレームワークを自作し、フレームワークについて理解を深めておくことの方が読者の方のスキルアップにつながるのでは?と思った結果です。
フレームワークというのは、WEBアプリの汎用的な挙動について理解した上でないと作れません。
実際に作ってみることでWEBアプリの挙動について理解し、WEBアプリケーション設計の力も身に付くのでは?と思っています。


Rails入門」「CakePHP入門」といった、既存のフレームワークの使い方を解説する本は数多く出版されていますが、同じようなアプローチをとらなかった著者の解説スタイルに感心しました。



◎タブ


404 NotFound - TAG index


最近のサイトでよく見かけるタブ型のインターフェースですが、RetroHatebの中でもこれを取り入れています。
検索フォームは、RetroTubeと同じように「年代とサイト」だけにしようと考えていたので、表示された検索結果に対してユーザが月単位でタブ移動できるようにする必要がありました。
色々と自分なりにやり方を調べてみた結果、JavaScriptを使うやり方もあったのですが、あまりよくわからなかったので、今回は無難にCSSと画像のみで実現できるやり方を選択しました。



◎ページ遷移ナビゲータ


ページング(PEAR::Pager) - PEAR入門


検索結果件数が非常に多くなるので、ページ遷移の為のナビゲータが必要でした。
ギーク図書館の時は自作したのですが、今回はあらかじめライブラリの存在を知っていたので、それを利用させていただきました。
始めの内は、パラメータの意味がよくわかっていなかったので、うまく動いてくれなかったのですが、一度自分でも実装したことがあるのですぐにイメージを掴むことができ、解決できました。
これと組み合わせてきれいなUIにしたりと、もう出来合いのパーツを組み合わせるだけで何でもできそうな気がしてきますね。



◎サイトロゴ


FREE Logo Maker - FREE Logo Creator - FREE Online Logo Design


ここには本当にいつもお世話になっています。
フォントのバリエーションが豊富で、納得できるサイトロゴが必ず作れます。



◎画面設計

ITエンジニアのためのWebデザイン (ITproBOOKS)

ITエンジニアのためのWebデザイン (ITproBOOKS)


CSSの意味や使い方はおよそ理解できているつもりでも、いざ画面を作ってみるとなかなか思うようにいかないという方は多いでしょう。私も以前から悩んでいました。
この本によると、そうなってしまう原因は、画面設計についての基本的な知識が頭に入っていないからだそうです。
なるほどそう言われてみると、プログラミング言語をいくら勉強しても魅力的なアプリが作れるわけではないのと似ているような気がしてきますね。
この本には、配色やレイアウトなど、画面設計する上で必要な知識が適度に掲載されていて非常に参考になりました。



◎検索対象のサイトの選定


はてなーが大好きなブログBEST100
濃いはてなーが大好きな濃いブログBEST50 - てっく煮ブログ


検索対象サイトの選定にあたっては、やはり数多くブクマを集めているサイトを対象にするべきなので、こちらのサイトの調査結果を参考にさせていただきました。


また、はてブ上で人気のあるサイトとは別に、はてブ上で話題になった本が検索できたら便利かなと思い、本のブクマページも検索対象に含めています。
さらに、注目の動画についても過去履歴を見てみたいと思ったので、これも検索対象に含めました。削除されてしまっている動画が多いのが残念ですが、当時を振り返りながらぼんやり眺めているだけでも中々面白いです。
他には、asahi.comを入れてみたのですが、新聞記事のページは時間が経つと削除されてしまうので、あまり意味がなかったですね…。



◎検索結果


これについては、はてブの新着エントリーの右上にある「URL絞り込み検索」から取得しています。
この検索ボックスからURLしばりでGETしてきた内容を、正規表現でパースしてURLやブクマ数などを抽出しています。

例えば、増田なら「http://anond.hatelabo.jp/YYYYMM」を、痛いニュースなら「http://blog.livedoor.jp/dqnplus/archives/」といったURLを、検索ボックスに入れて単純に検索しているだけです。
後は、得られた検索結果を正規表現で加工して、sqliteデータベースに書き出し、出来上がりです。


余談ですが、この部分だけはRubyでスクリプトを書いて適当にやっているのですが、ソースコードはぐちゃぐちゃなので公開はしていません。
プログラミングに「攻め」と「守り」があるとすれば、この部分は明らかに「攻め」にあたるんでしょうね。
逆に、PHPで書いたフロント部分については、ガチガチに「守り」に入っていると思います。