论坛风格切换切换到宽版
  • 4817阅读
  • 0回复

noBackEnd 后端云平台对象存储全收录 [复制链接]

上一主题 下一主题
 

发帖
1077
只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-07-07
在前不久才结束的Front-Trends 2013 Conference上,minutes.io创始人Gregor Martynus提出了一个有趣的议题——“看哪,没有后端!”该议题提出的建议与传统情况下、优先后端建设的原则恰恰相反。随后InfoQ美国对他进行了采访,CSDN编译如下:

问:noBackend(无后端)意味着开发Web应用时不再关注后端开发,为什么说这是我们应该追求的东西——它有什么优势吗?
Gregor Martynus:长久以来我们为使应用开发变得简单而做了许多工作,但尽管如此,在我们想要开发应用时,仍然会优先考虑后端架构设计:我应该采取什么技术、哪种数据库。应用的设计过程被“后端世界”所约束,而我认为,不应该再这样了。我认为,从用户的角度来看,每一个应该的设计与体验都应该是独一无二的,他们不会关注“应用是怎么运行的”。noBackend试图通过前端驱动来影响设计流程,它首先默认“一切皆可实现”,然后找到这个实现。

问:少后端(less-backend)应用真的合适吗?它的约束在哪儿?
Gregor Martynus:在说noBackend时,我并不是真的建议应用应该放弃所有后端,我承认这个词语确实令人困惑,但仍然达到了吸引人眼球的作用。
我所说的noBackend是指:你不应该在设计的时候操心后端应该如何设计,就像你没有想过浏览器做得到什么又做不到什么一样。我们可以使用JavaScript填补两者之间的空隙,把和服务器交互的事实隐藏在其后。前端开发者不再需要关心,这大大解放了他们的能力。
从技术角度来看,为了达到平稳的前端开发体验,我们需要掌握以下两种技术:
  1. CORS:为了实现跨域名Ajax请求;
  2. 异步代码:可以使回调、事件或者约定(promise)。

问:你的网站上提到了dreamcode,它是指什么?
Gregor Martynus:我们在开发Hoddie时,正是从面向前端开发者JavaScriptAPI开始,这正是我们所最关心的。我们不管后台实现有多么复杂,但是面向用户的前端必须尽可能简单。最终我们决定放下所有教条开始思考:“怎样才能使用最少的JavaScript代码来实现用户注册功能?”我在网站上列举了很多用例。
其中不得不提到jQuery,它为我们提供了强大而且简单的API。我相信这也是它成功的首要原因。
另一个dreamcode非常酷的原因在于,每个开发者都能做到。不论你有多少开发经验,都无碍于空想代码。事实上,如果你是一名新手,可能相比脑中充满的高级开发者更有优势。
而dreamcode正是一个引导你应用noBackend开发设计模式的工具。通常情况下,你需要告诉前端开发者自己需要什么,比如用户账户、发邮件、上传等等功能。然后后端工程师董事开发开发,并返回一个RESTfulAPI,之后前端开发者可以使用jQuery Ajax方法来调用、开发。但是在noBackend理念中恰恰相反,前端开发者通过dreamcode确定用户真正的需求是什么,它既是前后端开发者的接口,双方都基于它反向开发。
对于后端开发者来说,dreamcode是:
  1. BDD/TDD的又一个别名;
  2. RESTful API的继承者,但是在定义时更简单、遇到变化时更灵活。


问:noBackend通用后端是否会带来安全、隐私问题?比如说,如何防止用户使用jQuery API来向他人发送垃圾邮件?
Gregor Martynus:不会的,noBackend定义了最简单的邮件发送方法。不用说,对于发送邮件、货币支付等等方面都需要尽可能的安全,只是我认为这不需要在前端上体现出来,它只需要尽可能地简单,阻止垃圾邮件发送的逻辑应该设计在后端。比如说,你可以不允许未注册账户的游客发邮件,或者仅允许没10分钟发一次邮件。后端开发者对于解决这些问题有充分的经验,他们很擅长这些。而前段开发者不需要操心这些事情,这会花费他们太多时间。
如果你打算建立下一个Heroku,忘了后端的难处吧,只需要制作一个精美的网页,然后坐等收钱。


问:你在网站上列举的一些noBackend服务(比如remotestorage.io和hood.ie)提到了它们能够脱机工作,而当网络恢复时再度同步。主要是为移动应用考虑的,还是说有更广泛的关联?
Gregor Martynus:脱机工作并不是为了让用户脱离网络使用应用,它是为了解决延迟问题,并提供更优秀的用户体验。以minutes.io为例,它会立刻存储你所做的一切,从你正在打得字到浏览器缓存,然后通过第二个进程同步到服务器。


问:这算得上应用开发的新方式吗?或者仅仅对开发“noBackend”应用有效?
Gregor Martynus:我认为新技术都是为特定的应用而生的,它的不同之处在于,尤其适合应用逻辑集中在前端、注重用户体验的程序。
它不过是开发者尤其是前端开发者应该理解的又一个工具,noBackend应该是一种能够充分释放他们能力的解决方案,允许前端开发者在无后端的情况下进行应用开发。
注:在noBackend网站上,罗列了一系列后端解决方案,能够帮助你开始应用noBackend模式开发。


1 Firebase提供实时数据后端,让你使用JavaScript就能创建高品质数据驱动的动态网站

Firebase 和 Meteor 同样具有实时数据更新的本质特性,但 Firebase 更加彻底,开发者只需引用一个 API库文件就可以使用标准 REST API 的各种接口对数据进行读写操作,只需编写 HTML+CSS+JavaScrip前端代码,不需要服务器端代码(如需整合,也及其简单),省下的时间可以让开发者专注于开发应用功能,完善设计和体验,解决用户的实际问题。

和绝大多数云服务一样,不需要额外的服务器硬件设备,并且是可以随时扩展的,对数据存储容量没有限制,Firebase 最高能处理百万级的并发和TB 级的数据传输,数据发生更改,同步敏感颗粒度基本达到 10 毫秒级别。Firebase 用法也足够简单,页面完全是标准 HTML代码,数据读取和展现使用 JSON API 就可以完成,使用 Firebase 开发应用最快的纪录只要几分钟,iPhone 上的  Mobile Graffiti 应用,是一个 4 个人的团队仅用了 34 小时开发的,可以把手机当作虚拟画笔,实时绘制图像,通过 Firebase 数据后端实时传输到他们网站的画布上展现出来。Firebase 宣布启动一周后,已有超过 4000 名开发者注册。

当然,作为一项非常新的技术,Firebase 还在不断开发完善中,当前存在的最大的问题可能是,Firebase 上的数据都是完全公开的,每一个数据片段都可以通过独立的 URL 访问到,这样构建有敏感信息的应用时需要非常小心。


Firebase 还与目前流行的angularjs 框架紧密集成 通过使用组件AngularFire 在几周内打造一个流行的app已经很容易完成了. https://www.firebase.com/blog/2013-03-29-firebase-bindings-for-angular.html

总结一下 Firebase 有以下几个优点:
  1. 云服务,随时扩展,高性能,无需部署管理自己的服务器,数据库,大大减少工作量;
  2. API 简单,使用起来非常的方便,可大大减少代码量;
  3. 可通过网页对数据进行管理,很方便。


http://wired.tw/2012/05/23/firebase/index.html


2 FRAPI 建立高性能和可扩展的Restful api 云服务. 快速建立你的桌面和网站的应用.
FRAPI is an API Open Source framework。與其他PHP Framework不同之處在於,它只專注於API這件事,也就是提供一個方便的Framework,讓開發者可以快速開發&管理API(其實API包含很廣,不過開發團隊特別提到他們比較傾向RESTful,還表了SOAP一下~)。除了開發之外,文件&測試的部份也都涵蓋到了,看起來的確可以好好玩玩看
http://www.youtube.com/watch?v=vJVQi7ZFSaQ

3 Nimbusbase 在云端储存对象数据 http://nimbusbase.com/tutorial-steps.html
通过 不到5分钟完成8个步骤, 就可以了解通过在前端页面引入Nimbusbase 的js api 直接就可以使用后端提供的对象存储.
techcrunch.com/2013/04/30/nimbusbase-launches-an-icloud-for-any-platform-at-disrupt-ny-lets-users-store-their-data-on-dropbox-or-google-drive/


如果不想用云端 那么是否有能独立部署的后端框架?, 当然有

1 deployd  使用该框架可以很方便部署自己的后端, 通过图形界面的操作,几分钟内就可以建立自己的Restful API 并部署到生产环境.


2 Meteor 实时的nodejs框架, 已经被报道多次了. 还是直接看视频吧



还有Sails.js  




3 Hoodie  不介绍了 直接看代码就能明白了吧  基于Node.jsCouchDB
  1. hoodie = new Hoodie();
  2. hoodie.account.signUp(username, password);
  3. var type = 'task';
  4. var attributes = {title: 'Try out hoodie today'};
  5. hoodie.store.add(type, attributes)
  6.   .done(function (newObject) {
  7.     // Data was saved!
  8.   });


4  remoteStorage  

Webfinger + OAuth + CORS + REST   这几个词放在一起大概能猜出是做什么的吧.   http://remotestorage.io/ 致力于建立个标准的协议, 同时支持OA用户认证,跨域数据请求, Restfull api, 同时支持离线数据存储.


5 还有更多的针对消息数据存储的 http://sockethub.org/   把实时消息传送数据作为一种服务独立出来 用于支撑以下的一些功能
  • Email - send fetch
  • XMPP - send request-friend remove-friend make-friend
  • Facebook - post send fetch request-friend remove-friend make-friend like
  • Twitter - post follow unfollow send fetch
  • RSS - fetch
  • WebFinger - search
  • IRC - send follow unfollow


如果想调用地图服务可以使用 http://cartodb.com/

如果只想使用前端HTML的本地存储,也可以使用  breezejs  提供本地储存的缓存机制, 高级查询, 移动端的良好支持.
结合Angular框架很容易做出离线的应用. http://www.breezejs.com/samples/todo-angular

  最后附送一个  nitrous.io  提供Python, Nodejs, Ruby, Go的云环境, 并支持在线的IDE协同编程, 看来以后不仅可以结对编程, 还可以三人四人组队编程, 把编程当成DOTA玩不是梦.


快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个