【开源访谈】zTree 作者张其纲访谈实录

虫虫 发布于 2012/07/31 10:53
阅读 12K+
收藏 18

关于开源访谈

开源访谈是开源中国推出的一系列针对国内优秀开源软件作者的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源软件的应用与发展。

【作者简介】

张其纲

张其纲  java 群中的 js 牛人 和 js 群中的 java 牛人。 正在努力争当 java 群中的 java 牛人 和 js 群中的 js 牛人。为了理想而奋斗,为了开源而奉献,为了我们的未来而努力!

【软件简介】

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件

【访谈实录】

1.    能否先介绍一下你自己,包括学习经历和工作经历?
我大学是自动化专业的,我们专业当时教了一些的计算机相关的课程。我比较喜欢编程,所以毕业以后就开始从事 IT 开发的工作。以前都是在小公司,现在在一家外企已经呆了四年了。

2.    你现在的工作是 JS 相关的吗?
我一开始是做的 ASP,后来转到 Java。基本上前后台都做。我所在的公司开发的都是 Web 项目,所以我 Java 和 JS 都做。

3.    是什么原因促使你开发zTree这样一个jQuery插件呢?
算一个偶然的机会吧,当时公司没有什么项目,组织团队自己学技术。我正好也想做点事,但是没想好要做什么,这一次正好学了jQuery,我觉得它非常好用,很灵活,而且能很好的解决浏览器的兼容性问题。当时是为了练习jQuery,就选择制作了一棵树。以前用过一个叫做 DHTML 的库来生成树,但是我觉得不是很方便,于是就想自己做一个。做完以后觉得,既然jQuery是开源的,那么我也就借这个机会做一个开源的项目吧。于是尝试性的发布出去,后来发现真的会有人用这个东西,慢慢的就有一些反馈意见,我也希望并且也相信能把它做好,就这样坚持下来了。

4.    你是什么时候开始做这个项目的?
2010年4月份,两年多了,主要是利用业余时间一边制作一边学习,一点点积累下来的。

5.    为什么要取名zTree呢?
因为我姓张,也希望产品的名字尽可能简单,便于记忆。

6.    jQuery现在很流行,市面上也有很多类似的项目,那么你认为zTree的优势和特点是什么呢?
我觉得到目前为止zTree受欢迎,或者传播快的原因是zTree是一个完全中文版的插件,所有的帮助,所有的页面全部都是中文版的。zTree面向的群体大部分还是中级或者初级的编程人员。他们整体上英文不是很好,所以有一个中文版说明的控件他们用起来就很顺手,这是一个很重要的原因。还有可能就是我利用空余时间尽量保证及时对用户的问题进行解答。我一直在用心的做这个项目,尽最大努力把细节做好,例如:性能优化,功能灵活扩展,易操作性等等,坚持不断完善。这也在一定程度上给大家看到了希望,知道zTree是在不断更新的,这样就会对这个软件有信心,也就愿意一直用下去。

7.    那你认为这个项目中有没有一些特殊的或者创新的技术?
从创新的角度讲,zTree并不能说有什么真正创新的东西。更多的是我自身在做zTree的过程中,对 JS 的掌握更为深入,对我自己的提高会比较高一些。zTree真正的开始被传播也是从2.6开始,我也是在从那个版本对性能进行了优化,利用一些现在流行的技术,例如延迟加载,CSS Sprite等等。以前很多 JS 的 tree 在加载大数据量节点的时候,性能会比较差。zTree在这方面有很大的提升。从zTree的程序结构上来说,zTree的特点就是我在做这个项目的时候,并没有受到目前流行的小的jQuery插件编程方式的影响——现在很多简单的插件都是把事件直接绑定到 DOM 或者jQuery对象上,所有的方法或接口都是直接针对这些DOM 或jQuery对象的。zTree主要是以节点的数据为中心,整体思想是任何的回调或者操作的方法都是以节点数据为中心。这样你只要找到了数据,就找到了节点的全部内容。

8.    zTree目前是怎么推广的?
我个人感觉在没有钱投广告,项目又没有知名度的情况下,只能去论坛上答疑,在给别人解答问题的时候适当的去发布相关的内容。这个时候很困难,因为你一不留意就会被版主认为你是在做广告,被封杀账号。后来有朋友推荐开源中国,我就在开源中国上发布这个软件的信息。发布以后就发现用户数量有了一个质的提升,得到的反馈也增多了,从而也促使我对zTree进行了进一步的改进,慢慢的用户培养起来了,后来开始在ITEye和百度贴吧上去发布相关的发布信息。

9.    那你知道zTree在实际产品中的应用情况如何?
大家在项目中应用后给我的反馈确实不多,我也没有去主动获取。有朋友来提问题的时候,通过发信人的Email地址和个人信息,我可以确定现在已经有不少单位在做项目时首先使用zTree,或者是将原先项目中使用的其他树插件换为zTree。我印象比较深的比如移动研究院,还有我网站上链接的几个。,目前zTree主要适宜做树型菜单和权限管理方面的功能。

10.   目前参与开发和维护zTree的人员有哪些呢?
这个就我一个人,包括代码,网站,Demo制作等等。其他人主要是用户在使用中给我提一些建议或报告bug。

11.    在这个项目上,平均下来你一个月要花多少的时间和精力呢?
这个也是一阵阵的。如果工作不是很忙的话呢,我也会在上班的时候做一点自己的事情。如果上班比较忙的话呢,就只能晚上回家做。差不多每天1-2个小时吧。现在周末花的时间反而比较少,因为要陪家人,主要是利用周一到周五的时间。有相当一部分时间是给大家做解答的。

12.    也就是说你很多的时间是花在培训上面?
是的,现在更多的时间是花在这个上面。也算是一种推广方式吧。

13.    你有通过zTree获得收入吗?
两种途径:一种是网站上挂了 Google 广告;另一种就是爱好者给我的捐款。

14.    你认为这个项目和你的全职工作有冲突吗?
没有,我觉得实际上对全职工作有帮助。我做这个项目会让我对技术了解的更深入,这样在处理工作上的问题的时候会更加得心应手。

15.    这个项目在你的工作中有所应用吗?
公司有自己的 JS 库。而且我现在公司开发的东西并不会用到 tree,但是我有同事已经用到了。另外还有个同事跳槽到了新公司的时候,突然发现新公司在用zTree。

16.    你对zTree将来的发展方向有所规划吗?
我个人希望是能够让更多外国的朋友来使用。如果能让jQuery收录成为官方的库就更好了。因为现在zTree本身也是插件的架构,所以我可能会为zTree做一些插件,让zTree拥有更多更灵活的功能。从长远来讲,会争取让zTree在显示、控制、应用方面更加灵活,能适应更多的需求。既然做了,就争取让它成为最好的。

17.    现在移动互联网、HTML5很流行,jQuery也出了一个jQuery Mobile,你有没有考虑过做一个zTree的移动版本呢?
最开始做的时候确实没有考虑到这些。原来我是认为一棵树那么大,手机屏幕又那么小,应该不会有人使用。但是现在手机屏幕越来越大,再加上平板设备的增多,所以我认为在一定程度上是有需求的。所以我以后会针对移动设备做一些新的开发或者调整。

18.    我觉得这是一个大的趋势。但是移动设备是用手指,不是鼠标,所以整个 UI 的呈现方式可能是完全不一样的。
确实,在移动设备上的操作,跟鼠标肯定是不一样的。

19.    下面来聊聊开源的话题吧。能否谈一下你对开源的理解?
一开始算是稀里糊涂的做了开源,在做的过程中我能感觉到开源的力量是逐渐壮大的。相对于收费的产品来说,开源的产品更容易被用户接受。有用户用了以后就会给我更多的压力去提升自己的技能,提升软件的性能、功能,让更多的用户去使用。同时,我一个人肯定不能覆盖所有的需求,但因为我的代码是开源的,所以我会得到很多的反馈,这样我就可以在反馈的信息中提炼出一些信息,这样我就可以一直走在别人的前面。如果是收费的话,尤其是这种小小的产品,首先你会丧失掉一部分用户,或者用户购买后提一些你无法实现的需求,这并不利于自身的成长。

20.    但是不开源可以赚钱。
做一棵树并不复杂,并且已经存在很多免费的树,如果zTree一开始就收费,那肯定做不起来。很多项目本身就是小工具,挣不了太多的钱。而且你收费的话,别人完全可以自己去做一个,这样你也少了一个自我提升的机会,并且最终也挣不到什么钱的。换句话说,如果你一开始就抱着赚钱的目的来做开源项目,我觉得会很难。

21.    你应该也发现国内的很多项目都是单打独斗的,而国外的话就很多人参与,你是怎么看这个现象?
国内的开源氛围其实已经在起步,有些朋友用的好会主动来捐款,这在国内来说已经算是很大的提高了。我当时把zTree翻译成英语版的时候,也有1、2个朋友主动要求帮我一起翻译的,虽然后来说到细节的时候就没有消息了,但也算有这方面的苗头了。国内的整体氛围还是比较复杂,很大一部分不是静下心来把自己的技术提升,而是赶着项目上线。所以很多人在论坛上问问题都是直接要代码的形式。

22.    的确,国内很多的项目都是一直是发起人在维护,很多人都是愿意用,但是不愿意贡献。
这里也有一个培养的问题,有些团队一开始就关系比较密切了,那就比较容易发展起来。当然很多小东西高手一看不过如此,他也能写出来的,但最终他不会去专门制作开源项目的。毕竟现在做开源尤其是小的开源产品想依靠这个来赚钱是很困难的。

23.    你有没有给 JavaScript 初学者一些建议?
我最近也在把自己的经验写出来,发表出来(主要是iteye上,但以后会在iteye、开源中国和百度贴吧一起发表的)。我觉得求知欲很重要,只是为了挣钱做事情永远也提高不了。另外一方面就是要坚持。做zTree的过程中坚持的力量很大,如果不是我坚持的话肯定也不会有现在这么多用户。

24.    你在中途有过放弃的念头吗?
这倒确实没有。自从zTree一开始发布我就坚信我要坚持下来。而且随着用户的反馈越来越多,我更加坚定了这个想法。周围也有一些朋友看不上 JS,也会跟我说这东西也就那么回事,做做玩玩就行了,别做了。但是我觉得还是要坚持下去——既然做了,就让它做到最好!

25.    最后一个问题,能否给开源中国提一些意见和建议?
我觉得开源中国挺好的,有着不错的群体氛围。希望开源中国能更好地推广,吸引更多的用户。

加载中
0
李艾蒙
李艾蒙
用过zTree,真心顶一个。
0
被风遗忘
被风遗忘
真的很好.
0
前冲
前冲
zTree受益者的飘过
0
w
wangzhouyu
好用,几个项目都是用的它
0
Lake#
Lake#

以前写web的时候 调研过很多树 

最后选定ztree 综合起来最合适了 本身功能完善 文档等..

0
yqqh
yqqh
真心感谢作者的zTree,让我们系统中嵌入更方便
0
0
xkuoo
xkuoo
非常好
0
叶落花开
叶落花开
不久前成功把ztree应用到项目里去了...
0
Sephiroth
Sephiroth
还没有用过,有机会体验一下。
返回顶部
顶部