blog2018-10-28パブリックなページのpathにidを入れるかどうか検討したパブリックなページのpathにidを入れるかどうか検討しました。idというのはその意味で見てほしいです。調べてみても案外エントリがなかったので書いておいておこうと思いました。したら、間違っていたり考慮が足りなかったりすると思うので、そのときはコメントなどで教えてほしいです。idを使う場合と使わない場合?idを使わない場合ユーザー個別のリソースを作成するページユーザー個別のリソースに対する編集や削除などが他のユーザーからできてはいけません。いった場合は認証をかけると思いますが、単純にユーザーが登録などをしていない場合にも、ユーザー個別のリソースを作成したい場合があります。何らかの質問項目に回答をしてもらう際などがそうです。(アパレルショップなどで経験があります。)直接やメールなどでそのURLを送信することもありますが、その際、別の人がそのページを踏んでしまうと回答が混線してしまって大変なことになるので、避けるためにハッシュのようなものをidの代わりに利用することが多いです。SEOや見た目を重視する場合ユーザーフレンドリーなURLにすることはSEOにプラスに働くと言われています。URLがわかりやすいとそのページがどういうものなのかを想像しやすく、またイトの世界観を壊さないために数字よりも意味のある文字列にすることもあります。そのリソースの規模やKPIを悟られたくない場合idがインクリメントであるならばリソースの数がそのままidとなります。そのため、サービスの規模を隠したい場合などには隠すことが有効な手段というふうに考えられます。(ブログサービスの記事数など)また、毎日のように新しいリソースを作るようにするとサービスの成長具合もわかってしまうこともあります。そのことによって、KPIを推測されるというリスクもあり、それを避けるためにも有効な手段です。簡単に言うと上記以外なのですが、認証などはあるものの、個々のユーザーに関係なく同様のリソースを表現している場合です。Railsなどのフレームワークでは複数存在するリソースに対してルーティングを作成するとデフォルトでidによってアクセスできるpathを用意してくれたりします。availableなリソースにアクセスした場合は、どちらの場合も404を返すようにします。そのような前提に立つならば特に理由のない場合、ハッシュ化する意味はないように思いました。参考にしたページconnpasshttps://shiganai.connpass.com/event/82050/eventはすべてのconnpassユーザーが参照可能。gitHubhttps://github.com/rails/rails/issues/34300Railsはパブリックなリポジトリなのでissuesはすべての人が参照可能。はてなブログhttps://blog.zuckey17.org/entry/2018/10/21/140909はてなブログは見た目重視で、デフォルトでは投稿日付をエントリへのパスにしてくれます。ユーザーが個別にエントリへのパスを指定することもできます。note.muhttps://note.mu/ruiu/n/n76729d8930c9詳しく使ったことがないのでわからないですが、noteでは記事に投げ銭ができたり、購入機能があるためidをハッシュ化しているのだと思いました。ブログサービスということで全体の記事数を隠したいという意図もあるのかもしれません。