网站开发只需数小时?Meteor 说这才是未来
原文: http://www.geekpark.net/topics/211573/
那个想要挑战过去数十年沿用至今的网站开发模式的新势力来了。
Meteor 是从 YC 孵化而出的现代网站开发平台,希望构建一个极简的网站开发环境。
以往使用最好的工具、花费数周时间才能完成的网站,现在使用 Meteor 只需要几小时。你可以利用周末或者一个咖啡无限续杯的编程马拉松活动日开发出一个完整的应用。
你不再需要:搭建服务器运行环境、在云端部署 API 接口、管理数据库、纠结是否使用 ORM 层、在 JavaScript 和 Ruby 间来回切换或是处理「将数据失效信息广播给客户端」这种工作。
互联网的工作模式最初被设计为上世纪 70 年代的大型机那样:应用服务器渲染好整个屏幕(网页),然后通过网络发送到各个简易终端上显示。只要用户执行了操作,比如点击一个链接,服务器都会重新绘制整个屏幕然后发送,下载和刷新需要较长的等待时间。过去的十几年中,互联网基于这种模式一直运行良好,并催生了 LAMP、Rails、Django、PHP 等技术。
但这套古老的模式将可能一去不复返,一些拥有大笔预算和充足研发时间的顶尖团队,正在利用 Javascript 开发运行于客户端的应用。这类应用具有固定界面,局部内容操作变化不再需要重新加载整个页面,并且具备数据实时更新特性:来自任一客户端的更改变化都会即时反映到所有人的屏幕上。
换句话说,大家所熟悉的通过 F5 刷新页面的操作将在未来成为往事。
这是因为 Meteor 将此类应用开发过程简化了一个数量级,并且更加富有趣味性。基于 Meteor 技术 的应用构建体验,会让你感觉浏览器刷新按钮和地址栏是多余的。
Meteor 帐号系统视频演示
Meteor 所做的减法
Meteor 在简化开发方面做了大量工作:
开发模式下,编辑更改代码后自动刷新浏览器,方便开发者查看运行效果。
自动编译(CoffeeScript、LESS、Stylus)、压缩合并、分发应用所包含的客户端 JavaScript、运行在于服务器端 Node.js 容器中的 JavaScript 以及 HTML 、CSS 和其他静态文件。
代码热部署特性使得新版本代码和数据的推送过程不会打断当前用户的正常浏览。
Meteor 通过核心 API 提供了数据发布订阅、Mongo 数据库访问、用户账户系统、Session、实时模板操作、Blaze 模板渲染处理、响应式计算、Restful 服务调用、Email、静态资产访问等功能。同时,基于 Package 系统提供加密开放授权、SSL、D3、jQuery、Backbone 等数量众多的社区开源库、共享模块支持,以满足应用开发需求。
其他特性:
- 平台支持 Mac、Linux、Windows(未来会有官方支持,暂时只有第三方解决方案);
- 原生支持使用 Jasmine, Mocha 以及 Selenium 编写的应用测试(Velocity 为官方响应式测试框架);
- 应用性能分析工具 Kadira(社区开发);
- 新的 Package 管理系统,支持编写、发布共享并具有版本管理特性。
- 最新版本中引入了 Cordova,支持封装 IOS、Android 移动应用。
- 基于开放的 DDP 协议,Meteor 未来还将支持数据在智能硬件、浏览器、移动应用间的无缝流动。
Meteor 的七项原则
1. 纯数据对话。服务器与客户端初始化后只传输数据,由客户端决定如何渲染。
2. 一种语言。前后端统一使用 JavaScript 进行开发。
3. 无处不在的数据库。浏览器端使用与服务器端一致的 API 访问本地数据库。
4. 延迟补偿。在客户端使用预取和数据模型模拟技术,提供接近零延迟的数据库连接体验。
5. 全栈响应式。实时作为默认模式,从数据库到模版的所有层面上,都应当具备可用的事件驱动接口。
6. 社区生态友好。Meteor 开放源代码并能与现有的开源工具和框架整合,而非取代它们
7. 简单即生产力。让事情看起来简单的最佳方式就是让它真正变得简单,通过干净且具古典美的 API 来实现。
Web 应用崛起的中坚力量
从 Web 应用到移动应用,每次创新的背后都是新的开发技术在支撑。未来趋势是物联网、信息实时化,在互联网基础服务与各种平台设备前端之间,Meteor 有望成为流行的实时应用开发解决方案,在下一轮创新进程中发挥重要推动作用。
与其他实时类应用开发技术(Node+Socket.io,Derby,网易 Pomelo,百度 Clouda,StreamSocket 等,)相比,Meteor 在框架功能完整度、项目质量、开源活跃度、开发规划及进度、开发者社区建设、资金支持等方面均有优势。
Javascript 飞速发展成最受欢迎的网站编程语言,而 Meteor 在这一领域处于 Javascript 社区的领先核心位置。Meteor 解决了简易性和可扩展性的问题,可以发展成为企业网站发展的重要平台。我们非常高兴能与 Meteor 合作构建新一代网站制作工具。
Meteor 从 YC 孵化,并获得著名风投 Andreessen Horowitz 领投的 A 轮 1120 万美元的巨额投资。Andreessen Horowitz 的合伙人 Peter 称。
使用 Meteor 的创业公司 Lookback 已经获得了 200 万美元的种子轮投资,而另一家云存储创业公司 Streem 的公司已经被知名云服务商 Box 收购。
目前 Medeor 是完全免费的,任何人都可以使用或者修改。至于盈利模式,Meteor 打算通过向大型企业出售额外工具来整合到其现有的 on-prem 和 off-prem IT 基础设施来获得利润。
网站开发只需数小时?Meteor 说这才是未来的更多相关文章
- 产品开发也要看阵容,APP开发只需五步变得靠谱
最早认识的一个朋友是程序员,曾经到一家外包公司接单子,小外包公司经常遇到的问题就是和需求方谈产品功能.客户要做外包,对方让他一次性报价,但是客户连功能点自己都不清楚,这时朋友说还是按照具体功能点来做吧 ...
- 嵌入式驱动开发只设备数---dts
http://blog.sina.com.cn/s/blog_ad64b8200101e7q0.html
- 开发只懂 AFN ?搞定 NSURLSession 才是硬道理
由于傲娇的苹果在 iOS9 之后已经放弃了 NSURLConnection,所以在现在的实际开发中,除了大家常见的 AFN 框架,一般使用的是 iOS7 之后推出的 NSURLSession,作为一名 ...
- 玩转Django2.0---Django笔记建站基础十一(一)(音乐网站开发)
第十一章 音乐网站开发 本章以音乐网站项目为例,介绍Django在实际项目开发中的应用,该网站共分为6个功能模块分别是:网站首页.歌曲排行榜.歌曲播放.歌曲点评.歌曲搜索和用户管理. 11.1 网站需 ...
- 开发Web版一对一远程直播教室只需30分钟 - 使用face2face网络教室
转载自:https://blog.csdn.net/wo_shi_ma_nong/article/details/88110111 在“为网站开发远程直播教室的折腾过程及最终实现”中,介绍了如何使用f ...
- 「MacOS」将网站转换为应用程序,只需一个Unite
unite mac有着非常强大的功能,能够轻松的将网站转换为macOS上的应用程序,除了现代化的网页浏览功能以外,Unite for Mac下载还包括特定于macOS的功能,通知,TouchBar支持 ...
- java开发区块链只需150行代码
本文目的是通过java实战开发教程理解区块链是什么.将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等.这个基本的java区块链也实现简单的工作量证明系统. ...
- 【开源】Westore Cloud 发布- 没后端没SQL没DBA,只需 javascript 开发云端小程序
Westore Cloud - 隐形云,NoBackEnd,NoSql,HiddenDB 好的设计便是感觉不到设计的存在 开发小程序,但是:没有后端!没有运维!没有 DBA!没有域名!没有证书!没有钱 ...
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
随机推荐
- js简单的获取与输出
js获取标签内容和输出内容到页面 获取: html: <select id="choiceSelect" onchange="changeImg()"&g ...
- Android面试收集录1 Activity+Service
1.Activity的生命周期 1.1.首先查看一下Activity生命周期经典图片. 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->on ...
- windows禁用/启用hyper-V,解决hyper-V与模拟器同时启用时造成冲突
- JDBC---java与数据库中数据类型的对应关系
基础数据类型 Java 类型 SQL 类型 int 或 java.lang.Integer INTEGER long 或 java.lang.Long BIGINT short 或 java.lang ...
- JavaScript获取时间
var myDate = new Date(); console.log(myDate.getFullYear()); //获取完整的年份(4位,1970-????) ...
- pycharm的使用二
一.pycharm设置参数 设置传入程序的参数:Alt+shift+F10 → Edit Configurations → 选中所需要进行设置参数的脚本 → Script parameters:输入设 ...
- Java - ArrayList List 等迭代集合执行移除(remove) 的正确方法
方法1: List<String> al = new ArrayList<String>(); Iterator<String> it = al.iterator( ...
- Spark 的情感分析
Spark 的情感分析 本文描述了基于 Spark 如何构建一个文本情感分析系统.文章首先介绍文本情感分析基本概念和应用场景,其次描述采用 Spark 作为分析的基础技术平台的原因和本文使用到技术组件 ...
- 《Cracking the Coding Interview》——第3章:栈和队列——题目4
2014-03-18 05:28 题目:你肯定听过汉诺威塔的故事:三个柱子和N个从小到大的盘子.既然每次你只能移动放在顶上的盘子,这不就是栈操作吗?所以,请用三个栈来模拟N级汉诺威塔的玩法.放心,N不 ...
- cannot bind to 127.0.0.1:5037 报错
使用appium连接真机时,提示这个错误,找了很久,发现是端口被占用 打开cmd,netstat -nao查看当前的TCP连接,找到使用127.0.0.1:5037的代码,然后到任务管理器查看详细进程 ...