精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2012-01-12
最后修改:2012-01-29
本帖目标在于介绍XWorker,希望编程人员参与或使用XWorker。XWorker是一个完全免费开源的软件,所以不会被认为是广告贴而删除吧。
XWorker是什么? XWorker研究智能系统,希望它最终能够成为一个有用的工具。
XWorker的核心是什么? XWorker的核心是面向事物,面向事物是一种认知事物的方法,XWorker则是一个实现了面向事物的系统。
XWorker的特点 1. XWorker是一个开发工具。 XWorker是一个编程工具,可以编写程序,主要通过配置的方式编程。 XWorker开发的另一个主要特点是能够保存和重复使用开发经验,一方面这是面向事物的特点,另一个方面XWorker有模板、特征、笔记等辅助工具来实现开发经验的重复利用。
2. XWorker是一个自增长的系统。 '自增长'这个词可能用的不妥,不过我的意思是在XWorker中编写的任何程序都自动属于XWorker的一部分。也就是说你在XWorker中使用的越多,那么它的功能就越强。 注:自动属于XWorker的一部分不是指软件归属,XWorker是一个免费开源软件,使用XWorker编写的事物归编程者所有。
3. 易于构建和使用框架。 我想这是面向事物的功劳。
4. 方便使用其他开源组件。 使用XWorker能方便使用其他开源组件开发程序,比如在XWorker使用SWT、EXTJS、MINA、JFREECHART等。 这是目前XWorker的一个主要的工作,XWorker集成其他开源组件并不是原封不动的同构,而是主要集成使用方法(经验),比如XWorker中的SWT的Shell事物,就多了屏幕居中的属性。
本帖的目的是什么? 让大家认识面向事物的价值,吸引开发者使用XWorker,开发出更好的工具出来。目前主要是想吸引开发者参与XWorker。 对我来说让大家认识到面向事物的价值是最终目标,我想通过XWorker的使用价值(即觉得XWorker好用)来让大家逐渐认识面向事物。 小声说下先前我已经有一次推广面向事物的惨败记录了,上次我是希望通过学术的方式,比如:投稿、写信给专家学者等(主要数学、哲学的等),除了方舟子有一个侧面回复(他的博客第二天出现了一个关于农民科学家的帖子),其余全部一点消息都没有,也有和周围的同事、发帖讨论等,最后都没有办法让任何一个人意识到面向事物的价值。 上次的惨痛失败(这次可能也会)并不会让我失去信心,至少XWorker可以成为一个有用的工具。
本帖索引 下面不定期的会有XWorker模块介绍,直到确实没人对XWorker感兴趣或有人愿意使用XWorker开发为止。
XWorker方面 1. XWorker介绍。(本页) 3. 事物和动作的解释。
数据对象方面 数据对象基于关于数据,是一个非常轻量的实现,它能把数据库、内存中的数据、CSV等等数据混合起来建立关系并快速处理它们。
1. 数据对象的视频介绍和一些控件截图。(本页) 2. 数据对象的查询和统计示例。(2012-01-18)
数据库操作 1. 在XWorker中使用JDBC数据源和操作数据库的演示。(本页)
编码和解码 1. 构建和使用编码解码框架。
工具 1.增加Timer和HttpClient的示例。(2012-01-16) 介绍在XWorker中编写一些小工具。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-01-12
最后修改:2012-02-07
XWorker介绍 XWorker是一个免费开源的软件,XWorker研究智能系统,XWorker是一个没有截止日期项目。
XWorker最初偏向于基础的研究,并且这些基础的研究可能是非正统的,是更多的偏向于哲学的(科学哲学)。比如计算机智能系统会和我们有一样的世界观么(该问题已研究完毕)?事物的线性问题;悲观论在智能系统中的意义;线程和进程存在的哲学意义;DNA......,太多了。
不过呢,哲学大多是思想,是我们创建各种事物的原始依据,随着时间的发展,它也会慢慢的被遗忘......,XWorker更是如此,支撑XWorker的根本依据(元事物)在使用XWorker中也几乎不会被提起了。
所以目前XWorker有两个主要方向,一是实用性,要创建各种实用的事物,二是智能系统的一个哲学问题还是没有解决:如何成为智能?由于哲学比较个人化,所以在推广中不是重点,现在的重点是如何让XWorker变的更加实用,先解决如何成为程序员的工具。
XWorker编程的优点 在完成了第一个阶段的研究后,现在XWorker进入了积累阶段,在这个阶段里主要是以实用性为主,会有大量的实用事物被创建出来。 使用XWorker有下面的一些优点:
以上是XWorker的一些文字介绍,估计不会引起太多兴趣,所以下面将不定期的放出一些XWorker的实用模块的介绍,希望通过这些模块你们能够对XWorker产生兴趣。 |
|
返回顶楼 | |
发表时间:2012-01-12
最后修改:2012-01-12
下面来点实用的吧。
XWorker中的数据对象在采用了Extjs的DataStore的思想后也增加了DataStore,发现这个东西真的很好用,可以大大扩展程序的灵活性和使用的简单性。下面是一些视频和截图,请观看。
以上视频介绍了DB数据对象、CSV数据对象、Map数据对象以及简单工作台。
下面是一些控件的截图。 日期选择控件:
多选下拉框:
树形下拉框:
分页面板,示例里用于查询结果翻页和编辑多条记录时数据前后切换:
Extjs中数据对象的应用:
目前数据对象有两套实现,一个是SWT一个是Extjs,上面是一个Extjs的截图。
|
|
返回顶楼 | |
发表时间:2012-01-12
貌似Flash看不到嘛。
数据对象只是XWorker的一部分,后面还会有一些其他模块的介绍。 |
|
返回顶楼 | |
发表时间:2012-01-12
项目演示网址有吗?
|
|
返回顶楼 | |
发表时间:2012-01-13
XWorker的网站是www.xworker.org,上面有演示的视频。不过网站中的下载地址目前还是无效的,可以先看看介绍。
XWorker是一个为我们自己而写的程序,作为一个程序员,写一些诸如代码生成的工具是经常的事。
从我的角度上看,为自己写程序就没有那么多套路了,也没有什么明确的需求,所以XWorker做到想写就可以随时写,省去准备开发环境和编译部署等麻烦,并且要有更大的自由度和简洁性。
基于以上原因XWorker目前不适合编写大型的商业应用,主要是因为为自己写的程序质量没有很高的要求,比如有一个输入只能输入数字控件,我会觉得输错了老是提示错误很烦,故不加入数字校验,另外大量使用Groovy脚本和程序的动态解析等也会降低性能,比如XWorker中一个带有Action的简单动态网页(Groovy+Freemarker)的耗时在0.0001-0.001秒左右。
目前XWorker还是积累阶段,在这个阶段主要是功能和诸如,需要大家的支持,因此不管是批评还是建议,请多多提出宝贵意见。
|
|
返回顶楼 | |
发表时间:2012-01-13
没看懂,做什么的?解决什么问题?在什么时候用?
|
|
返回顶楼 | |
发表时间:2012-01-13
这种执着的精神,值得学习
有时间了解下 |
|
返回顶楼 | |
发表时间:2012-01-13
下面介绍一下在XWorker中设置JDBC数据源和使用数据库,从这个示例里应该可以看到XWorker编程的一些特点。
1. 首先是建一个JDBC数据源。
2. 创建测试程序。 使用xworker:core:things.lang.MetaDescriptor3创建一个TestDbContext事物,编辑它的两个动作(方法)log和queryUser,log用于打印驱动的名称,queryUser用于查询用户表用户的名称。
其中数据源的调用类似于面向方面的编程,数据源嵌入到方法上的动作上下文中,动作上下文是在动作的执行前和执行后执行的程序,在动作上下文的作用下,调用数据库的程序不用关心连接的获得、释放以及事务的问题。
3. 测试程序使用XML展示如下。 <thing name="TestDbContext" label="TestDbContext" descriptors="xworker:core:things.lang.MetaDescriptor3"> <actions name="actions"> <Log varName="con.getMetaData().getDriverName()" name="log" message="DriverName="> <contexts> <DataSouceActionContext name="dataSource" connectionName="con" dataSourcePath="example:dataobject:db.TestDataSource"/> </contexts> </Log> <GroovyAction name="queryUser" code="def pst = null; def rs = null; try{ pst = con.prepareStatement("select name from TBLTESTUSER"); rs = pst.executeQuery(); while(rs.next()){ log.info("userName=" + rs.getString("name")); } }finally{ if(rs != null){ rs.close(); } if(pst != null){ pst.close(); } }"> <contexts> <DataSouceActionContext name="dataSource" connectionName="con" dataSourcePath="example:dataobject:db.TestDataSource"/> </contexts> </GroovyAction> </actions> </thing> 4. 调用测试程序。
5. 总结 a. 在XWorker中做任何事(比如编程)是编辑事物的过程,可以通过想象使用XML编辑器编辑XML来理解XWorker中编辑事物的过程,事物编辑器能够大大降低开发的难度,因为编辑器本身就是一个重要的帮助文档。 b. XWorker中的动作(程序)可以使用多种方式实现,比如log输入日志是不需要编写代码的,是通过编辑类似XML这样的数据实现的,而queryUser则是通过Groovy脚本实现的。在XWorker中还可以使用Java、JavaScript,也可以加入其他语言,不过由于本人经常使用Groovy在关键性能点使用Java,故其他语言目前还不多见。 |
|
返回顶楼 | |
发表时间:2012-01-13
大哥,你说了半天,我还是不知道你这玩意儿是干什么用的
|
|
返回顶楼 | |