這是我的第一個問題。我一直在評估自己在設計和分析不同的架構。在做這件事時,我碰到了http://tinyurl.com/網站。您在設計tinyurl網站時需要考慮什麼?
任何人都可以提出他們的想法是什麼可能是這個網站的設計考慮和架構如何看起來像?您將使用哪種算法來生成微型ID,以便可以很容易記住長URL?
謝謝。
這是我的第一個問題。我一直在評估自己在設計和分析不同的架構。在做這件事時,我碰到了http://tinyurl.com/網站。您在設計tinyurl網站時需要考慮什麼?
任何人都可以提出他們的想法是什麼可能是這個網站的設計考慮和架構如何看起來像?您將使用哪種算法來生成微型ID,以便可以很容易記住長URL?
謝謝。
我同意在這裏的其他答案,它是關於簡短,而不是記憶。
一個問題,必須在設計中得到解答:您是否希望這些鏈接永遠持續下去?例如,is.gd的運作原則是鏈接永遠持續。這意味着現在使用該服務的任何人都不能再像我開始使用它時那樣獲得網址 - 他們已經用完了長度不超過五個字符的短網址。這樣做的好處是,如果您從現在開始幾年內遇到鏈接,它會指向相同的網址(可能是也可能不是相同的網頁)。就我個人而言,我通常會使用這樣的服務,因爲我想共享一個鏈接,而不是保存它,所以我更願意重新使用URL。
is.gd在每次有人要求時都會爲地址創建一個新的短地址 - 它不會檢查是否已經存在此地址的簡短網址。我猜想這會提高性能,但同樣以犧牲快速使用短URL爲代價。
統計信息 - 您可以看到網址已被使用多少次。你可以設想跟蹤其他統計數據......用戶代理字符串,IP等等是否值得?
自定義短網址?允許用戶選擇URL有助於他們更加記憶,但「好」的URL將會很快消失。如果您還沒有給出至少一個隨機/下一個內嵌URL生成選項,那麼當許多用戶想要一個快速,簡短的URL並繼續前進時,您就迫使用戶想出一些東西。如果你做自定義網址,至少給一個隨機的選項。並且不要指望在大量使用一週後仍會留下很多選擇網址。
@Kbrimington有一個想法 - 大多數tinyurls或bit.ly鏈接不是關於備忘錄,但更多是關於短小。
您真正需要做的就是跟蹤您生成的短鏈接並將它們映射到提交的較長鏈接。當然,數據庫運行良好。
除此之外,我知道這些網站中的一些收集鏈接的統計數據,就像鏈接訪問過多少次一樣。我猜想,發佈鏈接的人在被瀏覽很多次時會感覺特別。
該網站的一般想法很簡單,但您可以添加很多有趣的功能。我建議先從基本縮短功能開始,然後再添加功能。
編輯 - 其中一些url縮寫器的另一個特點是用戶可以自己選擇較短的url(如果可用)。例如,如果我想提供SO上的某個鏈接,我可能想要選擇tinyurl.com/overflow。這對用戶來說是難忘的,它不涉及任何形式的「令人難忘的」url生成算法。
我認爲http://tinyurl.com/不是關於值得紀念的URL和更多關於超短網址的內容。除非我製作我自己的小網址別名,否則結果就是亂碼。也就是說,TinyURL背後的數據結構必須是一個巨大的持久哈希表/數據庫,超輕量級和高性能。 – kbrimington 2010-07-31 00:02:48