为何最爱 Meteor + React ?
2016年2月4日

以下是我2016年1月23日在清华大学 FIT 楼演讲的内容。一共分四个小部分。

Peter 其人

大家好,先自我介绍一下吧,我叫 Peter ,网上一般 id 都是 happypeter 。幻灯片上是我微信,欢迎大家跟我讨论。

简单说说我自己的经历:

Peter 是个非常拙笨但是努力的人,只喜欢最简单的东东;Peter 是个非常感情用事的人,只喜欢他喜欢的人搞出来的东东。Peter 喜欢北京,因为这里有”地铁无裤日“。

介绍我自己就到这里了。说一下我今天演讲的思路主线:

没有找到最简单的解决方案,那就是还没找到最佳解决方案。

Why Meteor ?

下面进入主体内容,说说我为何要使用 Meteor 这个 Nodejs 的全栈框架。

简单来说就是一见钟情。话说起来是2015年春天的时候,吉洋他们在清华大学搞 Meteor 推广,他们是我所知道的中国第一批推广 Meteor 的人。我从他们那里接触 Meteor 之后,就迅速喜欢上了。这个感觉让我想起了比特币,那时候也是笑来给我一本书,我看了两个小时就马上喜欢上了比特币。为何这么快呢?就是因为比特币涉及到的技术(非对称加密,C++/C/Qt ,区块链)以及去中心化的思想,都是我自己多年来已经熟知的,很多都是目前也天天会用到的。所以如果你问我,比特币到底是谁发明的?我的回答是:自己人!

Meteor 也是自己人开发的啦。马克安德森和 pg 可都不是外人,都是我多年的偶像了。他们是 Meteor 的投资人。另外,Meteor 的作者 Geoff 和 Matt 的演讲我最近也听了不少,也是超级喜欢,感觉他们演讲有 Linus 和 DHH 的风范。推荐几个他们的演讲:

另外 Meteor 团队中还有我最喜欢的一个国人,尤小右 ,他是 Vue.js 的作者。

Meteor 对我来说就是一个 Better Rails ,Meteor 团队其实就是帮咱们采坑的,基于 Meteor 开发,很快就能做成东西。Meteor 官方也有一种说法,Meteor is Unix NOT Rails ,意思是说 Meteor 是一个 Platform 不是一个 framework ,也就是没有 Rails 的那么多强制性的默认,这个我觉得也是很好的。Rails 有些自带机制其实我好几年都不用,但是想删除也不好删,感觉有点拖累效率。

Meteor 的诞生是因为时代不同了

已经有了那么多开发框架了,Laravel ,Django ,Rails ,为何还要发明一个 Meteor 这样一个跟以前的框架有根本性差别的框架呢?答案就是时代不同了,新时代的 App 应该是实时性为默认的,应该是“类原生应用”为默认的。

Meteor 是一个制作“新时代”应用的框架,帮我们快速开发出实时应用。Meteor 诞生之前,大公司已经开始做这样的 Web 应用了,但是没有统一的标准,所以开发成本也只有大公司才能负担得起,Meteor 来了,小团队也能快速成型自己的实时产品了。

再来聊 React

React 的组件化让项目开发变得简单。下面三句话是我翻译人家的:

js/html/css 写在一起其实是个好主意,以前的很多最佳实践现在看来纯粹傻逼。稍微发展一点的前端,用 React 要比 Jquery 简单很多。

React 改变了游戏规则,但是 React+Redux+GraphQL 并不适合初学者,怎么办呢?Meteor 是使用 React 的最简方式。

React 和 Meteor 是天生一对

Meteor 是有实时数据通道的,也就是说后端数据如果变化了,前端自动跟着变,反之亦然。而 React 的特点是前端数据如果变了,那界面自动就更新。这两点加到一起结论就是:应用的任何一个位置有了数据修改,界面上马上就会自动体现出来。试想一下,还有比这个默认效果更符合自然人的思维的吗,所以用 Meteor 上手开发应用其实是比以前还要简单的。

我们是软件作家不是计算机科学家

写软件跟写作一样,目的是传递思想,不是咬文嚼字。所以我们所用的工具应该是越简单越好,Meteor+React 显然是比 Redux 更优的选择,我指的是在绝大多数情况下。

另外就是有人担心,Meteor 目前没有大公司用,学 Meteor 能找到工作吗?其实大公司都是慢慢成长起来的,一开始都是新公司,小公司。想想当年 NewRelic/Twitter/Github 这些公司选择 Rails 的时候,Rails 是什么状况呢?

结语

总结一下,React 名气太大不用推广了,这里我推广的其实是学习和使用 React 的一种最优方式:先上手 Meteor+React 套装,未来如果有必要再去学 Redux 。谢谢!