Feeling

    三人行,必有我师焉

   ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  185 随笔 :: 0 文章 :: 392 评论 :: 0 Trackbacks

Realease在即,而Mock-up却还在更新,这就是我目前的境况。要命的却是还有一个从来没有涉猎过的领域摆在我面前,那就是GEF,Eclilpse最复杂的框架之一。我一向推崇简单就是美,Java搞了这么多年,但是越搞越复杂,Eclipse也是如此。最令人推崇的Eclipse开发版本还是2.1.2,相对于2.1版本,3.2简直就是蜗牛。而我们却要无休止紧跟着Eclipse的脚步,它走一步,我们就要前进一步。我以前甚至不屑于使用JFace,更何况这个传说中的GEF,玩玩还可以,使用它那还不是要我的小命。

不过框架自有框架的好处,如果能够熟练使用,可以少写很多代码,因此能够使项目速成。我现在要做的是一个数据库表索引关联编辑器,功能其实不多,但是麻雀虽小,五脏俱全,一个完完整整地GEF应用。拖拉暂且不说,是GEF的基本应用,最麻烦的其实还是各个表初始化的布局,需要写一个自己的布局管理器。如果要自己从头写而不用GEF,估计一个月怎么也够呛。现在采用GEF,我想半个月就差不多了,不过学习成本昂贵呀。我得承认我严重低估了GEF的复杂度,到目前为止,我已经研究了三四天,才刚刚能够进行简单应用。看书,找资料,研究框架的构架,都是扯淡,看了八进制的文章,仍旧是一头雾水。看别人的容易,变成自己的就太难了,什么事情都还要靠自己领悟才行。

还好我是多条路并行采用了。虽然我眼下的项目可以称得上是最复杂的GEF应用之一(源代码打ZIP包都快30M了),但身边能用GEF开发的高手却屈指可数,Manager估计早就想让我搞这个玩意了。JFace我都是速成的,现在已经很熟练了。顺便说一下TreeViewer这个东西,它的显示逻辑全部都是通过Provider来实现的。显示的时候就会通过getChildren从上往下走,找一个节点的时候则是通过getParent从下往上走,现在就有一个问题了,如果我setInput的Model的内部逻辑和我要显示的外部逻辑相差比较大,那么如何实现?在这儿适配器是不能工作的,因为沟通是双方的,适配器则是单方的。如果用一个虚节点来代替Model实际上没有的显示逻辑,那么虚节点的儿子(一个Model实体)通过getParent是找不到那个虚节点的,它只知道自己的实体父亲。封装所有的Model也是不可取的,要不要Model干什么。我想TreeViewer碰到这样的应用就会无能为力了。

现在说一下框架速成大法:
1、问,自然是问高手了。高手会一针见血的把问题找出来,并能告诉你框架的整体结构,通过现场演示,能够让你的脑子对框架有一个整体的认识,这可比看文章接受的快多了。我同事已经被我折磨了一个礼拜了。在问和解答的过程中,大家都能够发现自己的不足,如果两个人在一起编码,又是一个结对编程的过程,这个时候2个人的脑子思维都会很清晰。
2、Debug,找一个和自己相近的应用。每一个框架,作者一般都会提供一些例子,而且这些例子虽然简单,却基本上包含了框架的方方面面。要想应用框架,最终是需要自己写代码的,代码在哪儿找,就是作者的例子里找。看看例子里有多少应用是自己需要的,找到合适的地方Debug一把,一步一步地跟下去,很快你就能够通过堆栈信息以及源码了解应用的整个步骤,然后用Copy大法,一个自己的应用就创建出来了。

当然第二点依赖于第一点,初学者是很难寻找合适的断点进行跟踪,所以需要找个高手过来,让他来跟,他演示的过程就是自己学习的过程。有了自己的第一桶金,后面的路就已经很平坦了。一个人对于未知领域的恐惧并不是怕自己不能掌握,而是不知道自己要花多长时间来掌握它。通过3天的速成,虽然对GEF的整体了解是管中窥豹,但我已经心里非常有底了。现在已经能够把Tabel以及里面的Column画出来,而且已经实现了布局,拖拽等基本事件,剩下需要研究的东西不会太多,够用就行。技术这个东西,不怕不了解,就怕不会学习,很多时候,等到要用到的时候再学也不会迟,关键是要掌握正确的学习方法。

posted on 2007-04-07 00:22 三人行,必有我师焉 阅读(1183) 评论(3)  编辑  收藏

评论

# re: 框架的速成 2007-04-13 00:02 弹弓
源代码打ZIP包都快30M了?佩服啊..
我把自己写的8万行代码压缩了一下才850K,这样算来老兄的系统应该有300万行了吧?  回复  更多评论
  

# re: 框架的速成 2007-04-30 17:09 BeanSoft
而我们却要无休止紧跟着Eclipse的脚步,它走一步,我们就要前进一步。

如果将来系统出了问题, 技术支持就是个大问题. Eclipse 的这些框架也是质量无商业担保(开源的都这样), 个人建议吧, 找定一个稳定的版本, 掌握其代码, 有 BUG 自己修. 说实话 Eclipse 的插件/框架版本一直是个很要命的问题, 新老严重不兼容.  回复  更多评论
  

# re: 框架的速成 2007-04-30 18:47 三人行,必有我师焉
之所以会出现紧跟Eclipse脚步的情况,是因为我所在的项目是Eclipse的官方项目之一,与Eclipse的开发进度要完全一致。Eclipse每发布一个版本,我们也必须相应的发布一个版本。我现在对Eclipse3.3M6深恶痛绝,完全是一个半成品,及其不稳定,相对于M5来说倒退非常严重,我却不得不忍受这个折磨进行开发,经常会碰到Debug跟不下去,Commit或其他操作无相应。如果说作为一个开发工具,2.1已经足够好了,而且速度非常快。3.3相对于3.1来说也还不错,最慢的就是3.1了。怎么说呢,我更希望Eclipse能出2种版本,一种是平台版本,一种是开发版。现在的Eclipse因为有多方面的考虑,正逐渐由开发工具转变为系统平台,这也是它为什么越来越大,也越来越华丽的原因。如果再看看IBM自己构建在Eclipse之上的商业软件,你会发现其界面非常华丽,有各种各样的效果,远非Eclipse简单的Windows界面。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
GitHub |  开源中国社区 |  maven仓库 |  文件格式转换