サンゴラボ

4年目ソシャゲエンジニア

URI設計に悩んで開発が進まない

最近CodeIgniterやFuelPHPでシステムを作っててURI設計を意識するようになりました。
理由としてはCodeIgniterやFuelPHPにおけるURLのセグメントが、コントローラのクラス、
メソッド名、メソッドの引数名に関係しているからです。


CodeIgniterにおけるURLセグメントの例:

 hogehoge.com/class/function/ID 

第1セグメント(class)がコントローラのクラスに対応
第2セグメント(function)がコントローラのメソッド名に対応
第3セグメント(ID)がメソッドに渡す引数に対応

とても直感的使いやすいのですが、URI設計という言葉を聞いていろいろ試行錯誤中です。なんとなくわかるようで、実際に設計するとなるとわからない。


てことでとりあえず調査。

第20回 “使いやすいURI(URL)”の設計を考える

たかが URI の設計、されど URI の設計

RESTful Web アプリの設計レビューの話


書いてあることは納得できることばかりですが、今までは全然意識してなかったです。挙げられているURI設計の指針をいくつか抽出しました。

  • 短くて入力しやすいURLにする
  • わかりやすい(記述的な)URIにする
  • サイトの構造をきちんと表す
  • マジックナンバーを使わない
  • 動詞ではなく名詞にする


結構ユーザ目線の事柄が多いですが、URI設計をしっかりすることは開発者にとっても利点があると個人的に感じました。開発者はユーザよりはるかにURLを直打ちしているので、URLの意味や構造がしっかりしていることはシステムの理解につながると思います。

特にCodeIgniterやFuelPHPのようにURLセグメントがソースコードと密接に関係しているので、良いURI設計はシステムの全体像を把握する助けになりそうです。

URI設計について概要は理解できたかな、という感じですが、実際のシステムの設計では結構苦労しています。原因はシステム特有であったり、CodeIgniterやFuelPHPならではであったりと、いろいろあります。話が変わってしまうので、別記事で書こうと思います。