「Meteor 开发体验分享」用 Meteor 做了一个文档管理工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Meteor Official Site
http://www.meteor.com/
Follow @meteorjs on Twitter
chuangbo
V2EX    Meteor

「Meteor 开发体验分享」用 Meteor 做了一个文档管理工具

  •  
  •   chuangbo 2012-04-28 13:25:55 +08:00 11625 次点击
    这是一个创建于 4983 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://dnspod-docs.meteor.com/

    被难以置信的开发方式震惊了,于是花了一整天的时间,实践 Meteor,完成了一个内部共享管理文档的工具。
    粗劣模仿了 Mou.app(双栏实时预览、Github 样式) 以及 nvAlt(Tag),还有 Meteor 的 Todos Demo。

    重点是分享一下开发体验

    # Meteor 开发体验
    _本文基于 2012-04-28 0.3.3 Preview 版本_


    ## 特点

    下面不是对官方文档的翻译,是来自我亲身经验。

    用最通俗的话来说,Meteor 是一个一站式框架,本身基于 Node.js Mongodb Handlebar Underscore Backbone,但是用的时候完全不用关心,封装的很彻底。

    我觉得他完全是新一代的 Web 开发体验,比 Restful + Backbone 的思想更进了一步。我猜测,Google Wave、Asana 这些私酿框架应该也是这个思路。

    ### 数据实时同步
    Meteor create 默认创建的项目包含 autopublish 模块,当 Mongo 数据库的数据发生变化时,会推送到所有的客户端,进行「模板自动重渲染」

    ### 模版自动重渲染(Reactive)
    渲染模板的「数据库数据」发生变化,模板自动重新渲染。这与「数据实时同步」结合,就实现了「实时」功能。

    ### 没有服务端代码
    应该加上「几乎」。浏览器可以直接操作 Mongodb,加上「数据实时同步」,服务端只需要做 publish 就 OK 了。

    ### 代码发生改变浏览器自动重载
    不论是开发环境还是生产环境,一旦任何 HTML、Template、CSS、JS 发生改变,客户端浏览器会自动 reload,并在 reload 前自动保存当前 Session,reload 后读出。给用户的感觉就是,看到页面刷新了,但是所有操作都还在。

    ### 浏览器直接操作 Model/DB
    对我来说,这是最好的 Admin Console


    ## 目前的缺点
    目前(_0.3.3_)缺点太多,只适合自己玩玩,写出来的代码没有想象中优雅。下面这些缺点,都是官方文档中用红字标明计划完成的。

    ### 浏览器直接操作 Model/DB
    不解释

    ### 模板的 events 无法引用渲染的数据
    在模板里,你找不到渲染模板的对象……所以一堆可恶的 Hack 不可避免的出现了。

    ### 事件流
    由于模板各种自动重渲染,再加上 Backbone Router,事件流变得难以控制,难以调试。

    - - -


    _看着别人的修改在自己的浏览器上闪动,确实是很有成就感的事情。_

    开发体验如果有更新,在 http://dnspod-docs.meteor.com/#Meteor/开发体验 可以看到。

    请大家凶猛的回复吧,我需要铜币。。。(O`)°

    @chuangbo
    30 条回复    1970-01-01 08:00:00 +08:00
    iwege
        1
    iwege  
       2012-04-28 13:27:04 +08:00
    给铜币。
    wong2
        2
    wong2  
       2012-04-28 13:31:57 +08:00
    感谢楼主
    zhendi
        3
    zhendi  
       2012-04-28 13:34:38 +08:00
    楼主你可以提交到这里: http://madewith.meteor.com/
    ksword
        4
    ksword  
       2012-04-28 14:27:44 +08:00
    右边实时预览很赞
    kokdemo
        5
    kokdemo  
       2012-04-28 14:41:18 +08:00
    好东西,给铜币
    Kenyth
        6
    Kenyth  
       2012-04-28 15:15:42 +08:00
    赞,写的真的不错:)
    chuangbo
        7
    chuangbo  
    OP
       2012-04-28 21:27:50 +08:00   1
    kojp
        8
    kojp  
       2012-04-28 21:30:34 +08:00
    我也是来给铜币的。。。
    Livid
        9
    Livid  
    MOD
    PRO
       2012-04-28 21:34:19 +08:00
    赞,如果要在目前加入登录和权限分级控制,你的思路会是怎样的呢?
    huyipeng
        10
    huyipeng  
       2012-04-28 21:44:29 +08:00
    必须给铜币啊!!!
    raecoo
        11
    raecoo  
       2012-04-28 21:47:51 +08:00
    效果真是相当的震撼, 感谢楼主分享实例
    leecade
        12
    leecade  
       2012-04-28 22:56:14 +08:00
    @chuangbo 开源吧

    藉此开始学习Meteor
    xinkiang
        13
    xinkiang  
       2012-04-28 23:31:29 +08:00
    cool ! 给楼主加铜币
    quix
        14
    quix  
       2012-04-29 23:38:33 +08:00
    很有意思的东西, 已经在尝试了 , 目前感觉最大的问题还是安全问题
    j
        15
    j  
       2012-04-30 00:11:53 +08:00   1
    @Livid meteor团队正在开发用户权限的部分,github里有一个分支可以看到。

    没人对live html(自动重渲染)的行为表示诡异么,就好比模版上的一个变量一直在自更新啊,这在其他前端环境下,简直是低级错误啊。在这个环境下倒成了捷径。
    chuangbo
        16
    chuangbo  
    OP
       2012-05-02 08:28:57 +08:00   1
    @j @Livid 看到官方 twitter 转推了这篇文章
    http://britto.co/blog/security_with_meteor
    loddit
        17
    loddit  
       2012-06-24 00:49:46 +08:00
    来给铜币
    liliang13
        18
    liliang13  
       2012-08-25 23:53:06 +08:00
    还要铜币么。。。。。
    iloveyou
        19
    iloveyou  
       2012-08-26 11:09:58 +08:00
    seo怎么做
    iwinux
        20
    iwinux  
       2012-08-26 22:26:56 +08:00
    我彻底的 out 了,最近才听说这个东西,而这个帖子居然是 4 个月前的……
    ivanlw
        21
    ivanlw  
       2012-08-27 00:27:46 +08:00
    MarshallChen
        22
    MarshallChen  
       2012-08-27 01:43:44 +08:00
    Thanks!
    chuangbo
        23
    chuangbo  
    OP
       2012-08-28 00:21:14 +08:00   1
    @iloveyou Meteor 0.3.9 新增了一个模块用来临时解决这个问题,据说 Meteor.com 使用了这个新的模块以后,在各大搜索引擎搜索 meteor 都会是第一名了。

    http://docs.meteor.com/#spiderable

    这个模块依赖的 phantomjs,也是一个非常好玩的东西。
    chuangbo
        24
    chuangbo  
    OP
       2012-08-28 00:27:35 +08:00
    @iwinux 这个项目在一个月前获得了 1120 万美元的投资,已经来势汹汹了
    kiancyc
        25
    kiancyc  
       2012-10-19 15:58:19 +08:00
    @chuangbo 有啥Meteor的学习资料可以分享吗?
    chuangbo
        26
    chuangbo  
    OP
       2012-10-22 12:58:07 +08:00
    @kiancyc 中文的吗?没有,看文档吧。《程序员》约了我一篇 Meteor 的介绍,我已经拖了5个月了。。
    cshcool
        27
    cshcool  
       2012-10-22 15:47:20 +08:00
    @ivanlw 好东西啊,只不过我现在用不上。。
    yetone
        8
    yetone  
       2012-10-22 16:21:46 +08:00
    @chuangbo 求资料,求经验,求教程。
    chuangbo
        29
    chuangbo  
    OP
       2012-10-22 16:37:31 +08:00
    @yetone 该项目的代码在 https://github.com/chuangbo/dnspod-docs ,这是我5个月前的第一个 Meteor 项目,代码质量非常差,不建议学习。
    zzcflying
        30
    zzcflying  
       2012-10-22 17:33:21 +08:00
    竟然是五个月前的。。。果然out了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5002 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 08:51 PVG 16:51 LAX 00:51 JFK 03:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86