url (route) design
I am starting with web development. I looked at the URL design of a few websites, especially github and stack overflow.

A user page on github is of the form `github.com/<username>` (e.g. `github.com/roma1n`). This strikes me as requiring careful reservation of top-level identifiers, i.e. there cannot be a user `explore` in github, because `github.com/explore` shows a list of trending/interesting repositories. It also seems hard to extend once usernames that would make useful page names (e.g. `latest`, `all`) have been taken up by users.

Stackoverflow seems to go on the opposite route, where a user page is of the form `stackoverflow.com/<numeric id>/<username>`. This seems to add redundancy to the address, unless multiple users with the same nickname are allowed (e.g. to  make life easier when identifying through other providers such as OpenId?).

What are the pros and cons of each solution, (and of the other obvious ones such as `example.com/users/<numeric_id>` or `example.com/users/<nickname>`)? Is there a current best practice or reasonable default?


url (route) design
===

I am starting with web development. I looked at the URL design of a few websites, especially github and stack overflow.

A user page on github is of the form `github.com/<username>` (e.g. `github.com/roma1n`). This strikes me as requiring careful reservation of top-level identifiers, i.e. there cannot be a user `explore` in github, because `github.com/explore` shows a list of trending/interesting repositories. It also seems hard to extend once usernames that would make useful page names (e.g. `latest`, `all`) have been taken up by users.

Stackoverflow seems to go on the opposite route, where a user page is of the form `stackoverflow.com/<numeric id>/<username>`. This seems to add redundancy to the address, unless multiple users with the same nickname are allowed (e.g. to  make life easier when identifying through other providers such as OpenId?).

What are the pros and cons of each solution, (and of the other obvious ones such as `example.com/users/<numeric_id>` or `example.com/users/<nickname>`)? Is there a current best practice or reasonable default?

