V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
catfan
V2EX  ›  分享创造

Qatrix 1.0发布,轻量级高性能的JavaScript框架(以及本人的感言)

  •  
  •   catfan · 2012-10-21 10:06:17 +08:00 · 5218 次点击
    这是一个创建于 4417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Anyway,经过长时间的改良和优化,Qatrix终于发布了第一个正式稳定1.0版了

    Qatrix是一款超轻量级,高性能的JavaScript框架,是社交网站Catfan旗下的开源项目。

    Qatrix经过Gzip压缩后的体积只有5KB,但却包含了完善的元素选择器,DOM处理,事件处理,具备硬件加速特性的动画引擎,AJAX,JSON,Cookie,本地数据存储等60+个满足日常网络应用开发的功能。

    其内置的动画引擎是基于CSS3 transition,并具备硬件加速特性,性能比基于纯JavaScript处理的方式效率提升至少120%以上,能为网页带来极为流畅的动画效果。

    Qatrix还具备了良好的数据处理功能,支持JSON的编码和解码,大幅简化各种数据之间的转换,例如可以直接保存数组数据到Cookie,可以直接通过AJAX发送数组数据,AJAX返回的数据也无需手动编码便可直接使用。

    Qatrix以效率为先的原则,在性能提高方面也投入了大量的研究,并且同时在兼容性上也做了不少的处理,目前能兼容IE6+以上等主流浏览器。

    同时Qatrix API的设计简单友善,基本上都是简单的英语单词,无需学习复杂的概念便能轻松上手(如果学过jQuery的话则更快)

    Qatrix的官方文档清晰,每一个功能都带有详细的说明并附上例子,并且还提供了性能比较,JavaScript代码压缩(压缩率比Packer还高)等实用功能。

    总之,Qatrix的轻量,高性能,简单易用,将会是您在网络开发的得力JavaScript框架。

    官方网站:http://qatrix.com/
    GitHub:https://github.com/qatrix/Qatrix
    API文档:http://qatrix.com/doc
    下载:http://qatrix.com/download

    PS:按照Qatrix在Github上的关注数,Qatrix目前已经是国人开发前五大开源JavaScript框架之一了(是的,甚至比百度的开源JavaScript框架关注还高)

    PS2:虽然早就知道在国内做开源项目基本上没有什么好下场的,既没有多少人能看懂,也不会得到企业的支持,更不会带来些什么资金收入。Anyway,建立此开源项目基本上就是为了分享本人积累了多年研究JavaScript的成果,希望各位能放下成见,能从项目本身去共同探讨去研究,不要去在乎项目的规模,创始人是谁,年纪有多大等。我相信只要能读懂里面的代码,绝对会让你受益匪浅的,这样本人在此项目上投入的巨大付出也能算是值得了,谢谢。
    21 条回复    1970-01-01 08:00:00 +08:00
    CoX
        1
    CoX  
       2012-10-21 10:14:18 +08:00   ❤️ 1
    短小精悍的好作品
    ianva
        2
    ianva  
       2012-10-21 10:40:17 +08:00   ❤️ 1
    为什么国内都执着于做一个js的基础库,有何意义?
    看看github上 js 有这么多有趣的项目,很多东西都可以搞,偏偏搞这类有各种成型可靠的成熟库的东西,还没有什么质的提高
    benzhe
        3
    benzhe  
       2012-10-21 12:18:39 +08:00   ❤️ 1
    @ianva 期待你的作品
    dndx
        4
    dndx  
       2012-10-21 14:30:56 +08:00   ❤️ 1
    虽然一直用jQuery,但是绝对支持作者的努力,国内好的开源项目太少了。
    eric_q
        5
    eric_q  
       2012-10-21 14:36:41 +08:00   ❤️ 1
    向 LZ 致敬~ 目前有个小项目在用了,jquery 略重
    keakon
        6
    keakon  
       2012-10-21 14:50:25 +08:00   ❤️ 1
    粗看了一下,比较习惯jQuery那种语法风格,感觉Qatrix的括号层数太多了…
    zhangxiao
        7
    zhangxiao  
       2012-10-21 15:01:03 +08:00   ❤️ 1
    目前对jQuery的依赖还是比较重的,主要是jquery的插件太丰富了。

    不过对Qatrix的动画加速部分比较感兴趣,有空试试看。

    非常支持作者的精神!
    NemoAlex
        8
    NemoAlex  
       2012-10-21 16:38:10 +08:00
    @ianva 你说的对,国内大公司弄的那些确实没什么意义,重复制造轮子,完全是绩效制度的产物。
    国内有些大公司很喜欢干这种事情:自己做一套 JS 框架或者甚至整个前端解决方案,然后在不太成熟的情况下就强迫团队内部使用,甚至要求同公司其它项目的团队使用。而这套东西的维护又很不给力,团队成员花费大量精力在应对框架 bug 上,后续的项目维护还要随框架的更新而调整。凭空多了许多工作量。
    不过,楼主的作品不一样。首先,它是有侧重和设计初衷的。作者强调“效率”和“够用就好”,并不是大而全,要“取代 jQuery ”。其次,它没有强迫谁去使用,不喜欢也没有关系,不需要为此而批评它,作者更需要的是鼓励。
    总之,开源项目不嫌多,希望楼主能坚守住最初设计的理念,把东西越做越好。
    ianva
        9
    ianva  
       2012-10-21 17:10:28 +08:00
    没有别的意思,楼主做的东西的态度和质量都让人钦佩的。
    现在的基础类库太多了,完全可以把开发这个类库的时间做点其他更有趣的项目
    谈一下对类库的“效率”和“够用就好的看法
    从js库的角度讲dom的效率和选择器的效率在实际项目中几乎不存在瓶颈
    至于够用就好,先说jquery重么?
    如果细分看起来是很重,可以把很多模块剥离后学jquery的版本也准备拆分成各类模块,但从gzip 32k的角度讲,真没一点必要,想想现在js都走异步并行加载的时代,一个js也就好比页面多了张图片,为这个专门做一个类库是没必要,缺失了更活跃社区的支持和其他开源资源的利用上。一个资源加载的瓶颈也不是32k,同样5k的资源和32k的资源在现在的网速下都可忽略,缓存之类的更不用说了。
    yeshang
        10
    yeshang  
       2012-10-21 19:00:00 +08:00
    求 Qatrix lightbox 图片放大效果
    catfan
        11
    catfan  
    OP
       2012-10-22 16:42:06 +08:00   ❤️ 1
    @ianva 其实“有趣项目”都是建立在基础之上,低层建筑决定了高层建筑,底层是很重要的。其实随着HTML5和CSS3的普及,页面上应用这些技术的地方也越来越多,也越消耗本地的系统资源。

    就举一个例子:试想一下一个box模型加了box-shadow,text-shadow,border-radius,opacity,gradient等常用CSS3效果后,并要求处理其动画效果,浏览器的渲染引擎需要耗费多少的资源对其重新定位,绘画,渲染等等,这些工作量在以往的旧式的页面中不能想象到的。再想想现在AJAX技术的普及,各种页面数据的动态处理,插入,JSON数据解释等等....浏览器需要处理的数据量和性能需求比以往都要高得多。

    另外,与jQuery偏向于对dom的处理相比,Qatrix更重于提供各种日常功能的支持。Qatrix除了能实现大部分jQuery能实现的功能外,更添加了完整的JSON支持,Cookie,本地存储,动态加载等jQuery没有实现但又经常使用的功能。

    当然,每一个框架都必定有其对应的特点和应用范围,大家按自己的需要去选择就可以了。
    ianva
        12
    ianva  
       2012-10-22 17:24:15 +08:00
    @catfan 对库来说个人倾向于更内聚于某个功能,然后通过组合不同的库去解决问题,jquery这点并不是很好,能把对dom操作的这层剥离出一个单独的库更好,作为一个element对象的替代存在。

    如果都却对某个功能点做建设,比如underscore,json支持,cookie,本地存储,包括你所做的动画方面的,而不是完全做一个基础库,对整个社区来说都是好事,毕竟很多东西都已经存在了,重做意义不大,如果别人想用你动画的这个功能但本身依赖于其他库是不是会有取舍的,导致这么好的功能不能更广泛的应用实施

    有趣的项目是建立在基础之上的,这个肯定的,但现在的基础似乎没有这么薄弱
    sivacohan
        13
    sivacohan  
       2012-10-22 18:08:41 +08:00
    弱弱的问一下。名字应该怎么读啊?什么意思啊?
    catfan
        14
    catfan  
    OP
       2012-10-22 18:40:26 +08:00   ❤️ 1
    @sivacohan Qatrix /ˈKwaɪtrɪks/ , Quick + Matrix的结合,其中Matrix除了有集合,数组的意思外,相信程序员们都肯定看过《The Matrix 黑客帝国》这部电影吧。
    catfan
        15
    catfan  
    OP
       2012-10-22 18:42:36 +08:00   ❤️ 1
    @sivacohan PS: Qatrix的读音类似中文的“快速”,一语多关。
    sivacohan
        16
    sivacohan  
       2012-10-22 19:23:18 +08:00
    @catfan 我也在尝试自己创业。你们的坚持。让我感动的眼泪都要掉下来(主要是眼药水的功劳)。这个世界,有太多的无奈,无力。在这岁月中,坚持最初的本真。是那么重要。有时候,我常常对我自己说。Just have a little faith.
    sivacohan
        17
    sivacohan  
       2012-10-22 19:25:08 +08:00
    @catfan
    PS:(本来要写在一起的,效仿你的风格)
    我非常欣赏你的设计风格。我也在努力的向这一方向努力。效率,够用就好。不管设计什么,我都在努力坚持。功能刚刚好。可以再多几个功能,但绝对不能再少了。
    sivacohan
        18
    sivacohan  
       2012-10-22 19:26:57 +08:00
    @catfan
    PS again:
    看到这个我有些激动。把你的回复都点了感谢~
    catfan
        19
    catfan  
    OP
       2012-10-31 20:07:51 +08:00
    感谢Peter Cooper(在编程界有一定名气的)的推荐,目前Qatrix在Github的关注数也越来越高了。
    chone
        20
    chone  
       2012-10-31 20:51:14 +08:00
    @ianva 性能和易用性的平衡真是一件非常为难的事,这也许也是很多开发者都想拥有一个真正适合自己的framework或者libray的原因。
    andy12530
        21
    andy12530  
       2012-11-02 22:55:00 +08:00
    已经fork这个项目了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2735 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:55 · PVG 14:55 · LAX 22:55 · JFK 01:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.