If there’s a better place to ask this,please let me know.
每次我建立一个新的网站/博客/购物车/等等,我都会继续尝试以下方法:
>将常用功能提取到可重用代码中(主要是Rubygems和jQuery插件)
>如果可能的话,将该gem转换为小型服务,这样我就不必为所涉及的对象处理数据库(通过服务,我的意思是精益和平均的东西,通常使用带有一些核心模型的Sinatra Web Framework构建).
我的假设是,如果我可以删除对本地数据库的依赖性,那么从长远来看这将使其更容易和更具可伸缩性(在可重用性和可管理性方面可扩展,不一定是数据库/性能).我不确定这是一个好的或坏的假设.你怎么看?
我做了这个假设是因为以下原因:
Most serIoUs database/model functionality has been built on the internet somewhere.
仅举几个:
>社交网络API:Facebook
>消息传递API:Twitter
>邮件API:谷歌
>事件API:Eventbrite
>购物API:Shopify
>评论API:Disqus
>表格API:Wufoo
>图片API:Picasa
>视频API:Youtube
…
从头开始构建这些东西都相当复杂,并且使这些东西变得优化,简单,易于使用.
因此,如果我在活动页面(eventbrite)上构建一个显示图片(picasa)的应用程序,您可以看到谁加入了活动(Facebook活动),并向他们发送电子邮件(谷歌应用程序API),并让他们填写月度调查(wufoo),并在完成后观看视频(youtube),全部集成到一个自定义,易于使用的网站中,我可以做到这一点而无需创建本地数据库,这是一件好事吗?
我问,因为谜题中缺少两件事,迫使我创建该本地数据库:
>发布API
> RESTful / Pretty Url API
虽然有很多Blogging系统和API供他们使用,但是没有一个地方你可以只写内容并让它成为一些重要的东西.对于每个应用程序,我必须使用代码来创建漂亮/宁静的URL,这样可以节省帖子.但似乎应该是一项服务!
问题是,该网站是什么? …为我的特定事业整合世界服务的地方……并且,叹息,存储只有我的网站可以访问的帖子.每个人都会需要“自己的博客”吗?为什么不在StackOverflow或Facebook这样的既定平台上拥有个人资料并撰写大量内容?
…这样我可以完全没有数据库编写应用程序,并知道我做得对.
注意:当然,在某些时候你需要一个数据库,如果你做了一些独特或新的事情.但是,如果您只是重新布线信息或创建视频,事件和产品等内容,是否真的有必要?
解决方法
>如果您能找到符合您网站持久性要求的第三方基于Web的服务,那么您的网站不需要本地数据库.
>如果你做不到,那就确实如此.
但“要求”问题不仅仅是技术问题.假设您标识了远程数据库/持久性服务,有许多原因可能不适合:
>它可能无法提供客户站点所需的详细功能;例如能够执行某些类型的查询,可伸缩性等.
>根据客户的网站预计命中率,使用它可能太昂贵了.
>在以下方面可能风险太大:
>最终用户隐私,
>服务可用性/可靠性,
>服务的长期可行性和
>服务API的长期稳定性.
这并不是说无法解决这些问题.但至少需要与客户讨论“风险”问题,因为如果事情变坏,他们最终需要处理这些问题.