小编说:“meteor”这个单词的意思是“流星”,流星的特点是快,一闪而过;同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台。
本文选自《Meteor全栈开发》一书,将向您介绍Meteor为何如此之快!

Meteor是什么

Meteor是一个开源的全栈JavaScript开发平台,构建在 Node.js和 MongoDB 之上。全栈开发平台已经有不少了,Meteor有什么特色呢?
虽然Meteor是一个很年轻的项目,但因其开发速度快而闻名,受到大量开发者的喜爱,GitHub上的star数量已达惊人的33000+,与Linux之父Torvalds创建的Linux Kernel项目相当。
Meteor这个项目的来源非常有趣。
Meteor的几个创始人本来是要做一个在线旅游点评网站,并且已经进入了著名孵化器 YC,准备开干了。但在筹备过程中,和孵化器的其他伙伴聊天时,发现大家都有一个共同的问题,就是开发效率不高,常常需要做很多重复性的工作。
所以他们改变了创业想法,决定做一个开源的开发平台,提供一套完善的基础功能,减少重复劳动,提高开发速度,并希望有桌面应用一样的顺滑体验。说干就干,他们在2011 年10 月1 日推出了Meteor 预览版,仅仅在8 个月之后, Meteor 就得到了IT 大佬们的投资。
1.0 版本发布之后,在GitHub 上就进入了top 20,成为当时第11 位的流行项目。
Meteor 现在已经发展成了一个生态。因为基于Node.js,所以其本身就可以受益于Node.js 的庞大资源,而且 Meteor 自身也是社区模式,扩展包数量不断增长,内容已经极其丰富,功能覆盖面非常广。Meteor 生态在健康、快速地成长。

Meteor 为什么快

为什么说使用 Meteor 开发会比较快。是哪些特性成就了Meteor 的快?
1. 全栈使用 JS
整个开发过程都使用一个语言必然会降低技术复杂度,而且 JS 的普及度很高, 做Web 开发的技术人员对JS 都比较熟悉。
而传统网站开发过程中通常会用到多种语言。例如 PHP 开发,需要 JS+PHP+SQL ; 同样,如果选择Java,就需要 JS+Java+SQL。
多种语言的混合使用,学习成本和语言间的沟通成本一定大于单一语言。
2. 代码复用
即使全栈都使用 JS 开发,也不一定可以代码重用。例如在有的开发平台中,前端使用 AngularJS,后端使用 Express,虽然均使用 JS 开发,但代码完全无法复用。
Meteor 中的前后端大量代码可以同时使用。例如数据库操作对象,在客户端操作的是 miniMongo,在服务器端操作的是真实的 MongoDB,但使用的代码就是一套, 开发者也不用关心这个代码是用在客户端还是在服务器端。
3. CLI 做好了后勤工作
在之前创建项目时,使用了一个命令 meteor create,这就属于 Meteor中的 CLI 部分。CLI 是 command-line interface 命令行界面的意思,是 Meteor中非常重要的组成部分。
CLI 的具体功能如下:
-创建新应用。
-向项目中添加/删除扩展包。
-对项目中的 JS CSS 文件进行编译和压缩,例如使用 LESS 开发 CSS,CLI中的命令就可以对其进行编译。
-对应用进行管理,例如运行、重置、监控等。
-提供了 MongoDB shell终端。
-对项目进行编译打包。
Meteor把大量的烦琐和重复性的工作都封装到了 CLI 中,以命令的形式供开发者调用。在传统Web开发中很少有能提供这么全面功能的框架,如果自己开发这些功能,将耗费很多的工作量。
4. 响应式
响应式这个功能可以减少非常多的代码,例如,大大减少DOM更新操作。如果没有响应式,就需要自己操作DOM。再比如数据库中的数据变化后,如果页面中使用到了此数据,就会自动更新;如果没有响应式,就需要自己编码检查数据的变化—如果有变化,从数据库获取数据,更新页面中的相关DOM内容。
5. 前后端的数据同步采用异步方式
用户在客户端写入新数据后,不需要等待服务器端数据库的写入结果,只要数据成功保存在 miniMongo,用户就可以得到反馈,Meteor负责在后台自动向服务器端发送数据,执行同步操作。
在传统Web开发中,例如新数据通过 Ajax 发送给服务器端,服务器端真实写入数据库后返回结果信息,在Ajax 的回调方法中再反馈给用户,用户会明显感知到这个过程的延时;而在 Meteor中,由于 miniMongo 的存在,用户体验的顺畅感如同本地应用。

Meteor:快到飞起来的全栈JavaScript开发平台相关推荐

  1. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...

  2. 我的第一个web_登陆我的第一个全栈Web开发人员职位

    我的第一个web by Robert Cooper 罗伯特·库珀(Robert Cooper) 登陆我的第一个全栈Web开发人员职位 (Landing My First Full Stack Web ...

  3. 从神经网络到全栈AI开发,原来AI还能这么用

    2006年起,伴随着深度学习技术的突破,人工智能开始以前所未有的速度在全球范围内快速发展,中国的人工智能技术与实际应用,更是真正走在了世界的前列.现在,人工智能应用已经在工业的各个领域落地结果,也正在 ...

  4. 小程序 | 基于WAMP的新闻网小程序开发(体验全栈式开发微信小程序)

    之前学习微信小程序开发,主要是基于JS.WXML.WXSS的前端开发,对于后端技术不精的我也是使用了微信开发者工具中的云开发功能,但是今天突发奇想,特别想体验一下全栈式开发微信小程序,学习了一下基于W ...

  5. python全栈和java全栈_Python是全栈式开发语言吗?原因竟是这样!

    Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.但排在前四名的语言 Python.C.Java 和 C++都拥有广大的用户群体,并且他们的用户总量也十分相近.实际上,Di ...

  6. 【Java进阶营】2022全栈Java开发工程师要掌握哪些技能?

    如果你希望加快自己的职业生涯,成为一名全栈Java程序员,那么你可以学习以下这些技能,以便将自己与其他程序员区分开来. 1.软件设计与体系结构 软件设计和体系结构可以说是软件开发过程中最重要的阶段.对 ...

  7. 【观察】从VCF云能力九宫格,看懂“真”全栈企业云平台

    申耀的科技观察 读懂科技,赢取未来! 我们知道,过去二十多年,VMware把虚拟化技术带入全球乃至中国,帮助了千千万万的企业客户实现了数据中心基础设施的转型,而它自身也凭借虚拟化技术称雄业内,成为市场 ...

  8. 为什么《自己动手设计物联网》 和《全栈应用开发》一样也打了 4.9 折??

    今天,又打开了一次亚马逊,想看看评论里有没有什么好的反馈.然后: 这不是和之前的<全栈应用开发>一样吗? 为什么<自己动手设计物联网> 和<全栈应用开发>一样也打了 ...

  9. python底层是用什么语言实现的_我为何说Python是全栈式开发语言?

    Python 的排名从去年开始就借助人工智能持续上升,如今它已经成为了第一名.但排在前四名的语言 Python.C.Java 和 C++都拥有广大的用户群体,而且他们的用户总量也十分相近.实际上,Di ...

  10. 重磅干货 | 带你深入解读:全栈测试开发工程师

    篇符较长,深度好文,请耐心看完! 1. 测试人员生存的窘境 在移动互联网飞速发展和行业新需求的推动下,软件测试行业在不知不觉中发生着非常大的转变,如果说早期软件测试行业还是一个风口,随着转行人员以及毕 ...

最新文章

  1. 【ios开发/Xcode】实现关键字检索
  2. 从共享租车成绿色消费首选,看共享经济未来
  3. mysql最大连接数合理值_MySQL服务器最大连接数的合理设置
  4. Mysql8秒级加字段_Mysql8.0秒级加字段
  5. “Runtime Error”不产生dump文件的解决办法
  6. 新iPhone同款?谷歌Pixel 4渲染图曝光:“浴霸”相机模组抢眼
  7. tesseract 4.0 ocr图像识别利器,可识别文字。图片越高清越准确
  8. Linux系统下破解root用户密码
  9. 设计模式:UML类图、策略模式、单例模式、工厂模式、观察者模式
  10. HG30A-3多用表校验仪
  11. LOJ#2339. 「WC2018」通道(边分治+虚树)
  12. android webview播放视频黑屏
  13. 服务器raid0系统坏了,服务器磁盘阵列raid1、raid0、raid5故障时的数据恢复思路和方法...
  14. idou老师教你学Istio 16:如何用 Istio 实现微服务间的访问控制
  15. 【测绘程序设计】坐标方位角推算神器(C#版)
  16. 【OJ每日一练】1049 - 矩阵对角线元素之和 v1.0
  17. python 安卓王者荣耀刷金币
  18. 她只用一个方法,就把英语拿下了!
  19. arm linux运行安卓app,Android x86 下运行纯ARM版APP
  20. iOS WidgetUI开发遇到的问题点

热门文章

  1. css3的新属性 新增的颜色--- 透明度---两种渐变---定义多张背景图--background-size...
  2. KMP模式匹配 三(弦)
  3. ASP.NET 使用Session,避免用户F5刷新时重复提交(转)
  4. web html 在线调试工具
  5. 获取批量导入数据后,所产生所有自增ID的值
  6. hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
  7. 30岁之前创业想成功必看
  8. multiply 和 dot 的区别
  9. 关于文本摘要,知道这些足以!
  10. EMNLP'21 | 基于互指导和句间关系图的论点对抽取