jUI(原DWZ)富客户端框架是DWZ团队开发的基于jQuery实现的Ajax RIA开源框架,支持用HTML扩展的方式来代替JavaScript代码,不懂JavaScript的程序员也能通过jUI来使用各种页面组件和Ajax技术。jUI基于jQuery,你可以非常方便地定制特定需求的UI组件,并以jQuery插件的形式发布。

jUI项目在“2013年度中国优秀开源项目评选”中获得较高票数,并被专家评审团评为“2013年度中国优秀开源项目”。

  • DWZ团队官方微博:http://weibo.com/dwzui
  • jUI(DWZ)项目在线演示地址:http://j-ui.com
  • 项目托管地址:https://code.csdn.net/dwzteam/dwz_jui

CSDN记者采访了DWZ团队,请他们来详细介绍一下jUI框架的由来及他们的开发、开源心得。

从左到右:杜权、张慧华、吴平、郑应海

CSDN:先介绍一下你们的团队吧!

杜权:从事UI/UE前端设计工作,有13年产品设计工作经验。jUI项目发起人,负责用户界面设计、用户体验设计,负责jUI组件HTML结构定义、CSS定义,并负责jUI组件开发完成后的验收工作。

吴平:一直从事Java开发工作,对前端开发也是有一定的兴趣,所以才会参与到这个项目中来。jUI创始人之一,在项目中主要负责jUI组件的JS开发工作。

张慧华:一直从事Java开发工作,对前端开发比较感兴趣,2013年开始从Java转到HTML5手机App开发。在项目中主要负责jUI组件JS开发,以及jUI和Java、PHP整合版本的开发。

DWZ团队目前除了3个创始人,还有几个核心开发人员:郑应海、张涛、冀刚。此外,还有一些没见过面的网友也参与到项目中。

CSDN:jUI项目最初的名字为DWZ,这个名字是怎么来的?后来为什么又改为jUI?

杜权:DWZ取名为“杜权、吴平、张慧华”姓氏拼音首字母,起初由我和吴平用了两个月的业余时间开发了第一版,之后主要是张慧华维护和小步更新。我们想把这套界面框架做成完全自由、开放、安全、不嵌入任何内码的一套界面框架,让它成为行业标准,所以我们重新选择了名字jUI作为框架名称。j的中文寓意很丰富,比如可以代表界面、简单、简洁、教导、焦点、角度等,从技术上可以理解为JavaScript、jQuery、JSON等。而我们三个人又是在Java项目的开发工作中结识,并成为朋友,合作伙伴。

吴平:DWZ这个名字更多的是代表我们这个团队。

张慧华:现在DWZ作为一个团队代号,jUI就是DWZ团队下的一个产品。在DWZ这个团队下还有Java企业级开发框架、ThinkPHP+jUI整合应用、ZendFramewark+jUI整合应用,以后还会有HTML5手机开发框架。

CSDN:jUI项目的开发初衷是什么?

杜权:在我职业生涯中有过多次跳槽经历,做过的大大小小的网站和软件有千余个,从中感觉到无论是大公司还是小公司做开发都存在着同样的问题——做设计的不懂代码,写代码的不懂设计。在整个界面实施的过程中频频遇到设计的界面无法实施到产品中,而我在学设计时对编程也有浓厚兴趣,对编程思想和代码结构都比较清楚,掌握的技术知识面比较广泛,所以对于一个功能呈现到界面上该如何表现,代码结构该怎么写,在这方面理解更深刻。在工作中不断总结方法,发现大多数界面在切割成独立的个体时,代码都可以重用,为了制作界面的工作更简单、更高效,我们尝试在一套HTML上采用不同的CSS来实现多种风格,基于这样的思路把界面代码片段化,分成一个个功能组件,而页面就可以由一个或几个这样的组件组合出来。我们想让JS编码能力稍弱的设计师或程序员学习和使用这种方法,从而提高工作效率,提升代码水平,缩短时间成本。

吴平:最开始我们在公司的项目中也用过市面上的一些组件框架,但始终觉得用起来都挺麻烦的,后来干脆就自己编写组件,后面凭着我们对前端开发的兴趣,决定更系统地开发出全套的组件。至于为什么会开源,应该说源于张慧华的一次尝试。

张慧华:jUI项目开源算起来快4年了,在这之前我们也没有做过开源项目。刚开始我把jUI打了个zip包上传到了CSDN,发现关注的人还挺多,后来就放到Google Code上。当时国内还没有Code平台,第八届开源大会后把代码迁移到CSDN Code平台后下载速度明显快多了。

我们几个属于技术狂热者,平时没事就会一起讨论一下技术问题。都是纯做技术的,没有任何营销经验。通过做开源项目可以认识各方面的人才,建立人脉关系,为以后的发展做准备。就这样慢慢走向了开源之路。

CSDN:jUI的设计思路和具体实现是什么?如何使得开发人员不写JavaScript的情况下,也能用Ajax做项目和使用各种UI组件?

杜权:做界面首先要清楚地理解界面,相信大多数人对界面的理解只是好看不好看,而我对界面感官上的理解首先是把界面和内容分开,无论是产品经理还是界面设计师对界面的理解都是非常重要的,理解不清晰将无法做出一个高性能的产品,将直接影响到整个产品的质量。

那么什么是内容?什么又是界面呢?内容是一个页面要传达给我们的信息,包括文本、图片、媒体等;而界面就是布局和色彩,无论是布局和色彩都是修饰内容用的,包括宽高、位置、边框、投影、大小、颜色、字体等。从技术角度理解界面就是:

  • 用HTML定义内容的类型和结构,正确的内容使用正确的标签定义;
  • 用CSS定义标签的布局、颜色、大小、背景等。

基于界面的用途来定义并规范HTML代码片段,再用CSS选择定义这一块代码片段中标签的具体颜色、边框、字体等来规范一个组件显示什么样的效果,从而使一个页面内的组件可重用多次,而代码却是同一段。

另外,我们针对不会写JS的用户,开发了很多基于传统HTML用法的扩展属性,只要有HTML的基础就能实现很炫的效果。例如:点击一个链接,想让浏览器弹出一个Ajax动态加载的漂浮在当前页面的窗口,而不是打开一个新的浏览器窗口,通过jUI,你只需要一行简单的代码就能搞定,<a href="url"target="dialog">弹出窗口</a>。和传统的链接相比<a href="url" target="_blank">弹出窗口</a>,只是target的属性不同而已,你几乎不需要学习就能使用。

张慧华: 设计思路是:简单实用、扩展方便、快速开发、RIA思路、轻量级。Web 2.0时代的到来,前端开发人员非常稀缺。jUI目的就是让不懂前端,不懂JS的开发人员,也能够做出非常炫的页面效果。jUI就是本着这个原则,添加一些HTML扩展属性,通过class实现自动绑定JS效果。jUI中每个可视化组件都提供有HTML扩展属性调用方式。

jUI基于jQuery,对一些有JS开发经验的开发人员,可以非常方便地扩展其功能。

CSDN:相比其他前端框架,jUI的优势或特点是什么?

  • 完全开源,源码没有做任何混淆处理,方便扩展
  • CSS和JS代码彻底分离,修改样式方便
  • 简单实用,扩展方便,轻量级框架,快速开发
  • 仍然保留了HTML的页面布局方式
  • 支持HTML扩展方式调用UI组件,开发人员不需写JS
  • 只要懂HTML语法不需精通JS,就可以使用Ajax开发后台
  • 基于jQuery,UI组件以jQuery插件的形式发布,扩展方便

CSDN:你们也开发了一些整合项目,比如SSH+jUI、ThinkPHP+jUI、ZF+jUI、YII+jUI,这些项目的目的是什么?未来还会整合哪些项目(框架)?

吴平:这些整合的项目基本都是张慧华一个人的杰作,我跟杜权参与得很少,我们更多是在jUI项目本身上。

张慧华:目前的整合项目有:

  • dwz4j企业级Java Web快速开发框架(Hibernate+Spring+Struts2)+ jUI整合应用
  • dwz4j企业级Java Web快速开发框架(Mybatis + SpringMVC)+ jUI整合应用
  • ThinkPHP + jUI整合应用
  • Zend Framework + jUI整合应用
  • YII + jUI整合应用

这些整合项目主要是为了让开发人员能够更快上手。在实际项目中使用jUI,如果只是看jUI文档,很多地方不好理解,特别是一些和服务器交互性比较强的地方,比如表单提交、列表查询、分页、排序等操作,因为这些不仅仅是前端问题。结合Java和PHP整合版本,开发人员可以更方便地理解和使用jUI。

还有一个原因是我们还想推广dwz4j企业级Java Web快速开发框架,现在该项目还没有相关文档,后续会把文档补上。

CSDN:jUI在浏览器兼容方面表现如何?

吴平:对于浏览器兼容方面我们通过两种途径来解决:一方面,杜权在CSS兼容方面做了大量的工作;另一方面,利用JS来处理一些CSS不太容易处理的兼容性问题。可以说当时在浏览器兼容性方面下了不少工夫,出来的效果至少对于我们自己来说,还算是满意的。

CSDN:在jUI开发过程中,你们是如何分工的?又是如何协作的?你们平时使用的开发工具是什么?

由杜权设计好界面,并以HTML结构形式提交到内部的SVN服务器,然后再根据时间安排分别提交给吴平或张慧华开发具体的JS代码。

杜平在提交HTML时,分别把功能需求写在每个组件的独立页面中,并以注释的方式分别在代码行中描述当前要用的属性和要实现的效果应该怎么控制。JS编码完成后通过内部服务器直接测试,如果没有问题就可以上线。

我们使用的工具如下:

  • Java开发工具:Eclipse
  • PHP开发工具:Zend Studio
  • 前端开发工具:AptanaStudio、JetBrainsWebStorm
  • HTML5移动开发工具:JetBrains WebStorm
  • 设计工具:Photoshop、Illustrator

CSDN:用户如何在自己的项目中整合jUI?

吴平:在自己的项目中整合jUI,我自己认为是比较简单的,因为一般只要按照文档中对组件的描述,正确写组件的HTML代码,并加上对应的扩展属性,基于就可以了。

但对于初次使用的用户来说,jUI的文档可能还不够详细,这里也希望在使用jUI方面有一定经验的朋友,可以分享一下使用心得,感谢不尽。

CSDN:据你们所知,目前大约有多少项目采用jUI?

杜权:我们没有刻意统计过用户量,从朋友和以前的同事提供的信息中得知,至少有几个大公司正在使用我们的框架,比如新浪微博商业后台管理、IBM电子商务解决方案、联通内务管理系统等等。

张慧华:现在jUI有8个1000人的QQ群,我大概从群里了解过,很多人在项目中使用了jUI。

CSDN:jUI在移动平台上表现如何?或者是否有专门针对移动优化的版本?

吴平:之前的版本在移动平台上的表现可能不及在PC上的表现那么好,我们也确实考虑过针对移动设备专门优化一个版本出来。

张慧华:计划以后开发一套HTML5移动App开发框架,可以参照Sencha Toucha的App设计思路,在提供App性能的同时,结合jQuery的简洁语法。

CSDN:jUI未来的发展计划?

张慧华:jUI 2.0 开发了一半,估计暂时放一放了,可以先考虑HTML5手机开发框架。

CSDN:你们如何看待国内的开源环境?对于国内开源领域,你们希望CSDN做些什么?

我觉得国内开源一般都是从非盈利的兴趣爱好项目开始的,很难通过捐赠获利。想要实现盈利可能需要一个全新的盈利模式,比如做技术支持、培训、定制化开发、政府资助、风险投资等。

CSDN可以通过社区的力量共同推进开源软件发展,希望CSDN开源社区能够适应国内开源环境,提供一些特殊功能,能够让开发者、参与者、使用者和社区都能有所收获。比如,社区最好有一个完善的积分系统,来激励大家回答问题,解决问题。针对每个开源项目提供社区版块,方便集中管理开源项目中遇到的各种问题。

【开源专访】系列文章致力于对国内外优秀开源项目作者、团队的专访,挖掘项目背后的故事和更多技术细节,以及对项目的宣传、推广。同时,我们也希望广大开源开发者和爱好者自荐或推荐更多优秀的开源项目。欢迎留言或@CSDN研发频道。

本文为CSDN采访整理,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

CSDN年度盛会SDCC 2013中国软件开发者大会将于8月30-31日在北京新云南皇冠假日酒店举行。本届大会的主题为“软件定义未来”,将邀请近百名国内外业界领袖和知名技术专家共论技术热点与最佳实践。
源自:http://www.csdn.net/article/2013-08-23/2816675-DWZ-jUI-jQuery-Ajax-RIA

jUI项目最初的名字为DWZ,这个名字是怎么来的?后来为什么又改为jUI?相关推荐

  1. 快乐学习!Python趣味练手项目:PyQ5模块实现通过中文名字识别性别

    嗨~我是小鱼,一个不太厉害混迹编程界的老学姐 今天分享一个超级厉害的模块PyQ5,学过编程的都了解过这个小工具吧?不仅可以生成艺术签名还可以让电脑自己哼唱歌曲.今天我们利用这个pyq5这个小工具和贝叶 ...

  2. 名字生成器 php,中文名字随机生成器

    三叔2016-10-27 15:39:441楼 下班没事干凑凑热闹, 说说我看到这个问题的思路及抄码记录 1. 为了让生成的名字看起来像名字, 就像一楼说的, 要分姓和名 2. 先整姓 找找百家姓, ...

  3. 计算机相关扩展活动战队名字,2020最新战队名字大全

    据悉世界牌类游戏联盟正式从观察员晋升为imsa的第7位成员.并分享打造成最具有群众基础.最有包容性.充满时尚潮流气息的组织,这对游戏战队玩家们来说也是一个全新时代的开始.此外据了解黑鲨与京东正式签订了 ...

  4. mysql查找名字含A的的姓名_mysql查询结果排序,name字段有中文名字,有英文名字,如何按a-z的顺序把名字排序...

    1.name字段用来存储客户姓名,查询结果需要按姓氏拼音排序,现在有一个问题, 名字既有中文名字,又有英文名字,比如 张三,李四,Jaewon Park,老王 这样查询出来的结果英文名字的人永远排第一 ...

  5. c++名字空间指令与名字空间声明

    在使用任何名字空间之前,编译器必须能够找到他,即确定他的声明所在的作用域.使用某个名字空间中的名字最简单的方式就是使用限定名字,即把名字空间的名字(如ns1)作为前缀,然后加上作用域操作符(::). ...

  6. B 字符串处理1000MS64MB Description 输入一个英文名字。去掉该英文名字两端的空格,并首字母大写后,输出问候语Hello, 加名字 Input 一个英文名字 Output 去

    B 字符串处理1000MS64MB Description 输入一个英文名字.去掉该英文名字两端的空格,并首字母大写后,输出问候语"Hello, "加名字 Input 一个英文名字 ...

  7. html的id名字关联符号,和平精英id名字怎么加符号 名字id支持的符号

    在游戏中,我们经常给自己的名字加符号来彰显特色,和平精英id名字怎么加符号,id支持的符号有哪些,现在就让小编来为各位玩家详细的来说明一下吧. 和平精英id名字怎么加符号 名字非常重要,代表了一个人的 ...

  8. [Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题...

    之前说过 sencha phonegap init com.pushsoft.myapp MyApp 之后打包的程序安装包apk的名字是"MyApp.apk",显示在手机桌面上的程 ...

  9. maven文件彻底修改名字 Java文件修改名字

    1.先修改pom.xml中文件的名字, <artifactId>fruitsMall</artifactId>把项目名字改成自己想要的 2. 从工作空间找到自己要修改的项目,找 ...

  10. 好名字——能看出方法特征的名字才是好名字

    无名天地之始,有名万物之母--<道德经> 名字是一切的开始,名字是一个东西的缩影.在程序里面,命名也总是一个难题. 数据来源:https://ubuntuforums.org/showth ...

最新文章

  1. Linux chkconfig命令详解
  2. 混沌分形之逻辑斯蒂(Logistic)映射系统
  3. Effective C# Item23:避免返回内部类对象的引用
  4. 山寨今日头条的标题title效果
  5. 制作centos安装u盘
  6. 计组之中央处理器:5、微程序控制器(组成、原理、概念对比)
  7. matlab 中一些对数组或矩阵的处理
  8. eclipse mysql jndi_裴东辉-MyEclipse和Eclipse中使用JNDI来配置程序的开发,以及服务器的配置 - 裴东辉...
  9. 'telent' 不是内部或外部命令,也不是可运行的程序或批处理文件。
  10. golang 编译 执行时候报错cannot declare name db.Query
  11. php curl 缓存请求_PHP异步非阻塞实现方法
  12. FastCGI介绍(快速通用网关接口)
  13. 中国研究生数学建模竞赛试题
  14. FMX控件演示(FireMonkey ControlsDemo)
  15. innerHTML和outerHTML以及innerText和outerText之间的区别
  16. 富康路小学毕业郭佳华
  17. 员工偷懒?没事!教你如何数据库MySQL查询
  18. Android使用Fragment打造万能页面切换框架(三)
  19. linux+zip+加密+无交互,Linux下zip加密压缩
  20. 还应该跑马吗?关于运动时间与寿命的(伪)科学分析

热门文章

  1. 查看pdf文件的目录和添加标签的方法
  2. oracle数据库中汉字转化成拼音
  3. java邮件发送不成功,javamail发送邮件成功 但是却接收不到邮件?解决方法
  4. word中替换方式处理多行文本为一段
  5. 谷歌地球二次开发基础平台
  6. 2018高考数学江苏第16题计算量你做主
  7. 为什么不要去外包公司?
  8. IP归属地显示的简单实现代码
  9. 仿Windows画板喷漆笔刷效果
  10. 工业相机和普通相机的区别详解_工业相机与普通相机的差别