URLs are UI
hanselman.com
URLs are UI
1–10 of 96 posts
Re: URLs are UI
#2For a blog, news, or other chronological content, I'd like to see a timestamp of some form. If it's rigidly hierarchical content, then a hierarchy (of which I should be able to remove 'subdirectories' to see the parent content) makes sense. Otherwise flat IDs are OK too.
Too bad browser developers seem to love hiding or mutilating them...
Re: URLs are UI
#3The fact of the matter is unskilled people are always going to be designing websites. This is OK!
However, it does mean that we should require them to do as little as possible so they have the best chance of getting it right. Asking them to design a second UI right from the start on top of the first HTML/JS one -- and then telling them never to change it(!) -- is a little much.
Instead of URLs, websites should have UUIDs to identify each resource. They should also have metadata describing what that resource is. The metadata (eg "articles/urls-are-uis") should be able to change without breaking links to the resource. Browsers should be intelligent enough so that when you hover over a link you see the metadata, not the UUID.
(This has one downside which if if you link to thing X and the UUID is later changed to point to thing Y, it may look like you linked to something you didn't mean to. This can be trivially fixed by including a "what the metadata was when I made the link" field in links along with the UUID)
EDIT: I'm actually not set on UUIDs specifically, they're a little long. Any random, non-meaningful identifier is fine.
Really I'm just saying that points 2 & 3 of the article are so good we should have made them the default (and perhaps only) option from the start.
Re: URLs are UI
#4Yes, I absolutely agree that good URLs are extremely useful, although personally I don't really like the long-string-of-text pattern, especially if it isn't actually significant. A short identifier is useful when sharing them offline: "HN article 14723409" or "YouTube video AQcSFsQyct8" or "forum thread 5705591" For a blog, news, or other chronological content, I'd like to see a timestamp of some form. If it's rigidl…
Re: URLs are UI
#5Re: URLs are UI
#6Yes, I absolutely agree that good URLs are extremely useful, although personally I don't really like the long-string-of-text pattern, especially if it isn't actually significant. A short identifier is useful when sharing them offline: "HN article 14723409" or "YouTube video AQcSFsQyct8" or "forum thread 5705591" For a blog, news, or other chronological content, I'd like to see a timestamp of some form. If it's rigidl…
A string of text is much easier to remember then a bunch of digits. Exorcism if there are more than 4 digits in a row
Regardless: I am quite serious... do you seriously try to remember and type, from memory, URLs with title slugs?
Re: URLs are UI
#7 1a. https://foo.com/
1b. https://www.foo.com/
2a. https://foo.com/search/products/couches/color/red
2b. https://foo.com/search?products=couches&color=red
3a. /posts?recent
3b. /posts?recent=
3c. /posts?recent=true
4a. /post/1234/products-couches-furniture-red-cheap-recent-ikea-tags
4b. /post/1234/
I can think of good reasons for picking each of these, and even good reasons for picking their alternatives. URL design is tricky to get right because realistically you can't change it later.Re: URLs are UI
#8example.com/sites/MySite/MyList.aspx
can be functionally the same as
example.com/sites/MySite/MyList.aspx?GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID=GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID&GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID=GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID&GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID=GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID&GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID=GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID
Why, SharePoint, why?
Or even worse, Angular SPAs
example.com/page#nice_page_you_have_there/shame_if_you_tried_to_share_it
As a tester, I always check:
1. What happens if I go to "example.com", "http://example.com", "https://example.com"
2. Sharing URLs - at least you should get a landing page, but I've seen 404s from shared URLs