Archive for the ‘design’ Category

Flickr and Good URI Design

Tuesday, January 18th, 2005

I noticed that Flickr had some pretty sweet URIs, but I wanted to find out exactly what it was that made them good. To brush up on URI design, I scoured this great list of resources compiled by Tanya Rabourn:

The essence of what I found is that well designed URIs:

  • don’t change
  • are human guessable
  • are logical (no need to mirror a filesystem)
  • help visualize the site structure
  • are short
  • use lowercase
  • don’t use unexpected punctuation
  • lack query parameters
  • allow public linking
  • are stateless
  • dont expose technology

Next, I catalog the URIs used by Flickr to see how they hold up to the above criteria. It turns out, most of their URIs are quite well designed. Except for the last few in this list, Flickr URIs satisfy all the above criteria.

URIs of publicly accesible features (You can try all of these)

My photos:
http://www.flickr.com/photos/eakes/
One photo of my photos:
http://www.flickr.com/photos/eakes/2733127/
My sets:
http://www.flickr.com/photos/eakes/sets/
One of my sets:
http://www.flickr.com/photos/eakes/sets/68865/
One of my sets as slide-show:
http://www.flickr.com/photos/eakes/sets/68865/show/
My profile:
http://www.flickr.com/people/eakes/
My photos (archive view):
http://www.flickr.com/photos/eakes/archives/
My photos (calendar view):
http://www.flickr.com/photos/eakes/date-posted-calendar/
My contacts:
http://www.flickr.com/people/eakes/contacts/
My favorites:
http://www.flickr.com/photos/eakes/favorites/
My tags:
http://www.flickr.com/photos/eakes/tags/
One Group:
http://www.flickr.com/groups/geekdinner/
One Group’s Photo Pool:
http://www.flickr.com/groups/geekdinner/pool/
One Group’s tags:
http://www.flickr.com/groups/geekdinner/pool/tags/
One Group’s Photos as slide-show:
http://www.flickr.com/groups/geekdinner/pool/show/
Global Tags:
http://www.flickr.com/photos/tags/

URIs that have private access:

My reverse contacts:
http://www.flickr.com/people/eakes/contacts/rev/
My most viewed photos:
http://www.flickr.com/photos/eakes/popular-views/
My most favorited photos:
http://www.flickr.com/photos/eakes/popular-faves/
My most commented photos:
http://www.flickr.com/photos/eakes/popular-comments/

URIs where the user is implied from server-state

My contacts’ photos:
http://www.flickr.com/photos/friends/
Comments on my photos:
http://www.flickr.com/recent_comments.gne?days=1001
Comments I’ve made:
http://www.flickr.com/photos_comments.gne
My groups:
http://www.flickr.com/groups/

Those last four URIs in the list don’t quite measure up to the others. They expose technology choices, use query parameters, and are not stateless. The user that is acted upon in the feature comes from server state, not from the URI, and so do not conform to RESTian web architecture design principles. Except for those, however, Flickr has done a great job with URI design.

Sink the Splash Pages

Wednesday, December 29th, 2004

The article Sink the Splash Pages from websiteoptimization.com gives some good reasons to cut right to the chase:

Skip intro splash pages degrade performance, increase bailout rates, and decrease your search engine rankings. Most importantly splash screens reduce web credibility with up to 71% traffic loss.