[JK] QWrap简介之:结语

绕开代码的实现细节,从目标与思路入手,对QWrap的系列介绍就告一段落了。
面对已经相对成熟、拥有海量插件与用户群的JQuery,初生的QWrap显得有点幼稚单薄。不过,我仍然坚信Helper + Wrap + Retouch + Apps的设计,能够做到严谨与实用兼顾、代码清晰易维护升级、灵活产出等等别人框架所不能做到的,这会让QWrap的前途光明无限。
当然,前途不是别人送的,QWrap还应推出一系列组件,才能够让人们放心的使用,而不是只是core_retouched.js这种只充当jquery补充的配角式应用。在稍后的一段时间内,会推出系列的组件。这些组件中的绝大多数,都经过线上项目的严峻考验,能够即时投入实用。
组件的开发,会以团队为目录,QWrap团队是第一个组件开发团队,介时也欢迎其外界同学自建团队开发。QWrap的apps/core_dom_pure.js应用是专门针对组件开发者的,可以依赖它开发,而发布出无依赖的组件,或者发布出适配成依赖其它框架的组件。

雄关漫道,且待翻越。

点击这里,查看原文

Posted in : 杂七杂八by : JKApril 27, 20110 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:小结

很多同学认为,QWrap的Helper+Wrap+Retouch+Apps机制引入的新概念太多,难于理解,所以QWrap是一个很难用的库。
其实不然。无论是core_dom_youa.js,还是core_retouched.js,使用起来都很简单,只看文档就可以了。
另外,QWrap库的维护也很简单,QWrap的大部分代码,都是静态方法的堆砌。对js稍有水平的人,就能够把QWrap复制到自己公司,并独立维护。
QWrap的灵活、少耦合也让QWrap的代码很清晰,很多独立的静态方法,也可以轻松复制到自已公司已成形的库中。
QWrap采用BSD协议开源,可以自由使用代码。
现在回顾一下一些常用应用。如下表:....
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 27, 20110 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:定制

就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解"QWrap定制"。
前文已讲过QWrap的自动瘦身功能,即:分析硬性代码对QWrap的依赖,抽取出依赖对应的代码。
事实上,还应该有另一种瘦身功能,即:先预期自己会用到哪些方法,再将对应的方法抽取出来。
这种应用也是一种很实用的功能,对应的工具可以由自动抽取工具稍加改装获得----这事先缓一缓,以后再做。
工具做成后,应该与Tangram的定制工具类似,参见:
http://tangram.baidu.com/tangram/codesearch.html

注:本文未完善,先只占位。
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 26, 20110 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:纯净core+dom

就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解"纯净core+dom"的应用,即apps/core_dom_pure.js。
对应的帮助文档在这里:http://dev.qwrap.com/resource/js/_docs/_jsdoc_temp/(文档生成工具由Remember2015同学提供,特别感谢!)。
本应用面向的用户是:组件开发者。
对于组件开发者来说,有时会面临一种两难的选择:
A:依赖某库。这样开发简单,但是使用有局限,需要用户在所在页面引用依赖库。
B:无依赖开发。这样开发出来的组件是无依赖的,但是开发成本比较大,需要自己处理兼容等问题,并且如果用户已有某库,会造成公用代码的流量浪费。
用过YUI2或Tangram的同学可能会知道,还有第三种选择:
C:开发时依赖某库,发布时可以发布出无依赖的组件。
YUI2与Tangram都提供了一系列的静态方法,在开发时,只使用静态方法;在发布时,将所需的静态方法复制出来即可成为无依赖的形式。

QWrap在retouch之前,也是一个大的静态库,提供一系列的静态方法库。所以也能做到C选择。
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 26, 20110 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:Youa版应用

就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解"QWrap的Youa版应用",即apps/core_dom_youa.js。
Youa 是QWrap的第一个真正全面使用QWrap的项目,apps/core_dom_youa.js中同时包含core、dom、youa三种 retouch,在介绍Retouch机制时已经对他们分别作过介绍,他们同时起作用的结果就是:我们只引入一个js,就可以 :
像prototype一样这样写:
new Date().format();
像jquery一样,这样写:
W('#aaa a.aaa').click(fun).css('color','red');
W('body').css('color','black').query('>h1').color('red');
还可以像YUI3一样这样写:
use('Drag,Valid',function(){alert([Drag,Valid]);});
当然,也可以像YUI2一样用静态方法(当然,我们不推荐YUI2这种用法):
Dom.setStyle(el,'color','red');

…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 22, 20110 CommentsTag : none

[CC]对qwrap和yui的基于html代码创建element元素的代码横向对比

qwrap和yui都提供了基于html代码,创建一个element对象的函数,其中最重要的部分就是在ie中,对td,option等需要必须的嵌套结构的元素的支持,我们来看看qwrap和yui的实现代码吧。

查看详情:
http://lichaosoft.net/archives/1716

Posted in : 开发相关by : CCApril 22, 20110 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:扩展JS原生类

就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解"扩展JS原生类"的应用,即apps/core_retouched.js应用。
本应用会对原生类进行扩展,方便用户操作原生对象,例如:String、Array、Function等。
本应用的典型应用场景:jquery专注于dom,所以欠缺原生对象的操作,以及模块加载机制等。本库恰好能提供,并且与jquery无冲突存在。

前面已有文章讲过core/core_retouch.js,它是一个retouch文件。
而本文讲的apps/core_retouched.js应用,它是一个复合文件,它由以下文件组成:
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 21, 20110 CommentsTag : none

2011-04-15日更新----关于更新与反馈

单元测试漏发现一个show的某应用场景的bug,以致上周五更新到dev.qwrap.com上出现一个大bug:文档不能正常查看。
一直也没人反馈,直到今天我自己查文档时才发现。

看流量统计可以看到,这两天有十几个同学打开过文档页,可是没有一个同学把这个问题反馈过来。
自省一下:
1。可能是反馈的途径不够清晰。
2。可能是同学只是路过的,没有兴趣没动力反馈,他们看到文档出问题,就连鄙视都懒得表达一下。
3。也有部分同学以为是网络的问题,所以没追究。

用户与过客的反馈对一个产品来说,有很大的帮助。期望能收获一些反馈。我们一直在寻求反馈、静静倾听、用心学习、努力改进。

Posted in : 杂七杂八by : JKApril 17, 20112 CommentsTag : none

[JK] QWrap简介之:apps果实篇之:种子

就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解种子应用。
“种子”是沿用YUI3的说法,种子应用是解决模块加载问题的应用,包括:模块预加载、异步按需加载、模块应用。

或许有些同学对异步加载模块不大熟悉,没关系,我们先感性的看一下这段代码
...
function test(){
QW.use('jQuery,YouaCore',function(){
$('#div1').css('color','red').find('>.content').html(new Date()+'');//jquery用法
W('#div2').css('color','blue').query('.content').html(new Date().format('YYYY-MM-dd hh:mm:ss'));//QWrap的youa版用法
});
}
...
1。如果用户浏览此网页时,只加载了一个体积很小的seed_youa.combo.js这个js(其实就是seed_youa.js),这个js经yui压缩后的大小为4K。
2。当用户点击按钮时,按钮对应的js用到jQuery与YouaCore,点击后才会去加载那两个jQuery与YouaCore对应的js,之后才有运行效果。
3。第二次点击按钮,由于前面已经加载过js,所以这次会直接运行按钮事件。
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 15, 20110 CommentsTag : none

[JK] QWrap简介之:Apps 应用--- 收获果实

QWrap的根本使命,是:被应用、为项目开发或组件开发的同学提供易用好用的库。
Jquery与Prototype库,最后给用户使用的,都是一个js,没有多种应用的概念。如果用户想要定制一个满足自身需要的特别版本,需要自己思考个性化的途径。就算是自己想办法,这两个库也是很刚性的库,改、拆、插入功能都很有困难,最多只能在外面包一层。
前文已讲过Helper规范、Wrap模式、Retouch机制,它们都是QWrap的实现方式,是技术层面的内容。这些实现方式造就了QWrap能屈能伸、刚柔并济,这让QWrap有多种应用变得自然而然。
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKApril 13, 20110 CommentsTag : none