2010-07-30 87 views
3

这是我的第一个问题。我一直在评估自己在设计和分析不同的架构。在做这件事时,我碰到了http://tinyurl.com/网站。您在设计tinyurl网站时需要考虑什么?

任何人都可以提出他们的想法是什么可能是这个网站的设计考虑和架构如何看起来像?您将使用哪种算法来生成微型ID,以便可以很容易记住长URL?

谢谢。

+1

我认为http://tinyurl.com/不是关于值得纪念的URL和更多关于超短网址的内容。除非我制作我自己的小网址别名,否则结果就是乱码。也就是说,TinyURL背后的数据结构必须是一个巨大的持久哈希表/数据库,超轻量级和高性能。 – kbrimington 2010-07-31 00:02:48

回答

5

我同意在这里的其他答案,它是关于简短,而不是记忆。

一个问题,必须在设计中得到解答:您是否希望这些链接永远持续下去?例如,is.gd的运作原则是链接永远持续。这意味着现在使用该服务的任何人都不能再像我开始使用它时那样获得网址 - 他们已经用完了长度不超过五个字符的短网址。这样做的好处是,如果您从现在开始几年内遇到链接,它会指向相同的网址(可能是也可能不是相同的网页)。就我个人而言,我通常会使用这样的服务,因为我想共享一个链接,而不是保存它,所以我更愿意重新使用URL。

is.gd在每次有人要求时都会为地址创建一个新的短地址 - 它不会检查是否已经存在此地址的简短网址。我猜想这会提高性能,但同样以牺牲快速使用短URL为代价。

统计信息 - 您可以看到网址已被使用多少次。你可以设想跟踪其他统计数据......用户代理字符串,IP等等是否值得?

自定义短网址?允许用户选择URL有助于他们更加记忆,但“好”的URL将会很快消失。如果您还没有给出至少一个随机/下一个内嵌URL生成选项,那么当许多用户想要一个快速,简短的URL并继续前进时,您就迫使用户想出一些东西。如果你做自定义网址,至少给一个随机的选项。并且不要指望在大量使用一周后仍会留下很多选择网址。

2

@Kbrimington有一个想法 - 大多数tinyurls或bit.ly链接不是关于备忘录,但更多是关于短小。

您真正需要做的就是跟踪您生成的短链接并将它们映射到提交的较长链接。当然,数据库运行良好。

除此之外,我知道这些网站中的一些收集链接的统计数据,就像链接访问过多少次一样。我猜想,发布链接的人在被浏览很多次时会感觉特别。

该网站的一般想法很简单,但您可以添加很多有趣的功能。我建议先从基本缩短功能开始,然后再添加功能。

编辑 - 其中一些url缩写器的另一个特点是用户可以自己选择较短的url(如果可用)。例如,如果我想提供SO上的某个链接,我可能想要选择tinyurl.com/overflow。这对用户来说是难忘的,它不涉及任何形式的“令人难忘的”url生成算法。