シンプルシンプルデザイン

Sony Eマウント フルサイズ対応のカメラレンズを収集するページを作ってみた

Sony Eマウント フルサイズ対応のカメラレンズを集めてみた。

サンプル:https://sample.simplesimplesdesign.com/sonyalpha/lens.php

なせ、そんなページを作ったのか

最近、立て続けに新しいカメラレンズが発売された。そもそも現在発売されているレンズがどのくらいあるのか気になったので調査することにした。各主要レンズメーカーでレンズごとの詳細を見ていたが、気になるスペック情報だけ集めた一覧ページがあればいいなと思って、そんなページを作ることにした。

というわけで、仕様策定からデータ収集、デザイン、コーディング、API制作、プログラミングまで、フルスクラッチで作ってみた。制作期間は3日間(実質20時間ほど)。

(ちなみに、より実用性あるものにブラッシュアップするとしたら、デバック、検証、修正、最適化を何回か回す必要あるので、あと3, 4日は必要になると思う。ただし、このページは、企業案件ではなく、自分のためのページなので、バグ以外は深追いしない)

こだわり

レンズのスペックだけではなく、常に最安値を表示するようにしたり、気になる条件で絞り込みができたら、利用価値が高くなるのではと考えた。

実装する際の思想としては、フレームワークを使わずに、利用者にとって使いやすい、コーダー・開発者にとって使いやすい、運用者にとって使いやすい、それぞれの視点になってUI/UXに配慮している。

データ収集

まず、調べたいメーカーをピックアップ。メーカーごとにレンズページから知りたいスペック情報をWebスクレイピングで抽出してGoogleスプレッドシートに記載する(これらの情報は、公式サイトより価格コムのスペック情報から収集すればラクだった...)。

続いて、レンズごとにそのレンズの価格が掲載されている詳細ページのURLを取得してリスト化。その後、Webスクレイピングで最安値を抽出してGoogleスプレッドシートに記載する。タイマーを設置して、定時間ごとに最新情報に更新するようにした。

参考:商品ごとの最安値を価格コムから参照して、スプレッドシートに記入。毎日、自動更新で。

API制作

非常にシンプルなJSONファイルを作成。
GoogleスプレッドシートのCSVファイルをWeb公開して、そのデータをJSON形式で保存する。さらに、このシンプルな構成にすることで、Googleスプレッドシート自体が仕様書の変わりも果たすことになる。

ページを表示するたびに、Googleスプレッドシートを参照してしまうと、ページ表示速度に影響を及ぼすので、Cronを設定してもよかったが、今回はファイル保存日時と現在時刻を比較して、ファイルが古いと判断したときのみ、Googleスプレッドシートを参照してファイル更新し、通常はローカル保存したファイルを参照するようにした。

データ件数は100件、どんなに増えても1000件も満たないことを踏まえ、アクセス時には一括して全データを取得する。

参考:cronっぽいことをPHPでjsonとして実装する

UI/UXデザイン

また、検索だけでもいろいろケアしている。

コーディング

参考:JavaScriptスタイルガイド

運用

対応しなかったこと

と長々と書き連ねましたが、あらためてページを見ていただけるとめっちゃ嬉しいです。ご意見やご感想などありましたら、ぜひコメントください。お待ちしております。

サンプル:https://sample.simplesimplesdesign.com/sonyalpha/lens.php

モバイルバージョンを終了