component

component 是javascript大牛TJ
的又一力作,有别于那些大型javascript开发库,component本身其实只是一个基于CommmonJS module/1.0 规范(同Node.js一样)的模块化管理工具,类似于Node.js
里面的npm工具,特别之处是它使用github做为代码托管工具,还有大部分常用的组件都不支持ie6和ie7。

我先解释一下componet最重要的一些特点:
(不理解没关系,记住就对了:))

  • 模块化,所有依赖关系都通过一个简单的require函数获得,重用组件只需要执行componnent install [repo]
    令,分分钟搞定,不过更为重要的是代码变得易读,看下require你就知道变量是哪里来的了。

  • 组件化,很多框架都实现了javascript的模块化加载,例如著名的requirejs和国内广受好评的SeaJS
    component更进一步,它能帮你同时管理组件依赖的其它资源,包括 html、css、images 等等,使用组件仅仅安装
    即可,其它文件打包、路径调整等等琐碎之事它都帮你做好了,不用你再操心。

  • 轻量级,不像那些个复杂框架,各种神奇好用看上去很美的牛逼功能,component的基本组件非常的中规中
    矩,不过是些非常常用的设计模式罢了(MVC、观察者、原型继承),你不用再花大量的时间去学习那些聪明人折
    腾出来的一堆难懂API和奇技淫巧,不仅调试的时候纠结万分,而且很可能过两年你会发现那个框架不再维护了,
    新的牛逼框架又来了,于是你又陷入了对自己智商的深深纠结之中。

  • 简洁,虽然你可以使用jquery这样的复合模块,但是你应该尽量使用
    和编写简洁的模块,例如最基础的组件reactmodel,功能都非常的单一,代码很容易理解和扩展。开发人员花费在理解代码
    上的时间往往远大于编写代码的时间,所以代码的易于理解才是真正的提高生产力。

  • 版本控制,喜欢 git 的人回想当年使用 SVN 的历史满满都是心酸的血泪史,多半是基于它基于文件夹的设计
    和使用单一的集中远程仓库,不管是分支还是标记都会让人很是痛苦。使用github可以让分支的过程简单无比,比
    如有个serialize 组件,大概能满足我需求,不过还是需要稍做修改,于是
    我建立一个自己的分支,提交我的修改到我的github分支,安装我修改的组件只需要

    component install chemzqm/serialize 
    

    就可以了,不管以后有多少项目在用这个组件,只需要再次在项目里面执行install命令即可。如果项目只需要
    某个模块的特定版本,弄个tag就行,分分钟搞定,例如

    component installl chemzqm/serialize@1.0.0
    
  • 组件仓库,基础性的组件别人都已经做的很好了,如何只是为了实现功能何苦再重复造轮子呢?component官网
    上组件库已经相当的丰富了,但凡你能想到的功能几乎无所不包,而且官方给出的插件质量都很高(你应该花些时间去好好读读它们的代码),完全不必考虑不兼容的问题。

以上只是一些稍大的方面,component在许多具体的细节上面还有不少贴心的设计,例如你可以用component create [name] 命令生成模块模板,其中包括一个Makefile,每次代码有什么修改,只需要make一下就行,非常
方便快捷,还可以整个我之前介绍的工具tiny-lr,配合
watchgrowl 轻松实现实时编辑,再比如它会自动
添加Source Map到你使用命令component build --dev
生成的js文件中,这样你使用Chrome就可以直接在文件的源代码上调试了。

动心了吗?为什么不尽早让重复的开发和模块管理使用的繁重难问题变为历史呢?

(完)


chemzqm
2k 声望83 粉丝

Javascript全栈开发,产品设计,自动化工具。追求简洁的设计,模块化开发,卓越的用户体验。