OFBIZ(open for business),在开源社区享有崇高声誉,人称“开源的SAP”,有着无数的追随者和崇拜者,我有幸在项目中一试,虽只是用到其一小绰功能,确实感触颇深,几经峰回路转,其中辛酸苦辣,确也是一言难尽啊!
OFBIZ好吗?谁说它不好,我跟他急。
OFBIZ不好吗?谁说它好,我也跟他急。
OFBIZ给出的business上的解决方案,无数可称经典。但是没有什么是完美的,OFBIZ的几大硬伤注定将缚得它享有无数声誉而永不可能成为开发者的宠儿。
1.直到现在,OFBIZ仍只是两个人的骄傲,作为Open source的一员,没有其他更多开发者的参与,那它的明天将会走向何处呢!应用OFBIZ开发的软件的命运教于两人之手,不是每个人都有这个勇气的。(而OFBIZ恰恰是用来开发企业关键软件的,例如 ERP,SCM等,将一个企业的明天教于两人之手??)
2.开发者的个人喜好,由于对jboss的不喜欢,作为OFBIZ的开发者(两人),居然在OFBIZ3.0中不在提供部署OFBIZ到这个最流行的开源application server的脚本(虽然可以部署到jboss,但是需要花很大的工夫,对于初学者几乎是个不可能完成的任务)。出于个人喜好,强行使用Jetty。不能放开胸怀,包容不同,路只能是越来越窄。(作为开发企业级软件的软件,肯定需要支持clustering,jetty如何做?赎我无能,搜遍internet没能找到好的解决方案)
3.作为B/S架构的软件,n层之间的偶合度之紧,赎我见识短,是我以今为止仅见。一个request的变量能从头传到尾,作为二次开发者,若想重用,难度之大,无法想象。无数类的方法尽是static的,OO身手无从施展,重用成为妄想,拷贝、粘贴又或重生。Map结果从头用到尾,对开发者不透明,加注释成为负担,交流平白增加无数。
4.调试程序烦琐。在XP叫嚣的今天,轻量级的开发方式横行的现在,脱离容器测试调试代码成为EJB3.0到处宣扬口号的如今,调试测试OFBIZ代码依然需要启动容器,让人在痛苦和挣扎中,如何能青睐OFBIZ,而缺少了开发者的支持,OFBIZ的明天又能走向那里呢?
如此多的问题,我在项目究竟该不该用它,怎么用它呢?我曾一度沉溺无数困惑和痛苦的抉择中。
2003,Tom Siebel的“CRM之死”,曾击起千层浪。我想他无非是说通用的CRM软件已经没有多大市场了,无法很快响应用户需求的改变吧。
OFBIZ,这个最大的通用开源的business软件,难道就能逃过“CRM之死”吗?我一直在考虑,通用的business的软件真的能通用吗?如果真的可以,那么所有的这些CRM,SCM,ERP就应该是叫一种软件了吧。如果真的能做到,我也绝对不相信凭两个人能完成。
都知道,business上的逻辑是环环相扣的,稍有不同,一环脱落,后面全都用。即使是同一类型的企业,操作上都会小差别,如何应对小差别,软件的架构将起到决定性的作用。而OFBIZ过于沉溺于所谓业务逻辑的处理,整个架构不具备柔韧性和可扩展性,无法应对变化。
20年前,布鲁克斯在其《人月神话》提出了一个迄今为止尚未被打破的著名论断:“没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性”。20年中,无数人提出了无数的思想和方法论,OOA/OOD/OOP、AOP,CMM、XP,IOC,还有程序员最讨厌的软件工厂等等。20年过去了,软件业没有迎来汽车装配业的流水性作业,项目超期,费用过高,客户失望,员工丧气,举起的无数被誉为银弹的利器,没能击到人狼,反而陷在焦油坑中苦苦挣扎。、
绝望中的人们最喜欢的就是抓住一根根最后的救命稻草。OFBIZ,这个号称开源的SAP,号称无数逻辑可以重用的救命稻草,绚丽的辞藻中确实可以让人忘记前辈的循循教导,绝望中的人是最容易看到美丽的海似层楼。
但是幻影终究是幻影,回首项目,著名论断“没有银弹”成了最好的注脚。
而OFBIZ巨大的弱点几乎使之成为令一个狼人,巨大的偶合,烦琐的调试,庞大的souce code,与需求的巨大出入,使之成为鸡肋,死死缠住你前进的步伐,稍有不慎,吞噬你,毁灭你而只是眨眼的灰飞湮灭啊!
OFBIZ真的就是毫无用处了吗?记得我说的,谁说的不好,我跟他急。
如果你的公司有实力,能投入人花很长的时间研究它(我相绝大多数公司不会,不能赚钱的长期投入不是谁都能做的,而真正的大公司,要研究谁会研究你一个OFBIZ呢),所以仅仅是个人兴趣去研究吧!
如果你没有长时间的研究过,你想在项目中作为银弹使用OFBIZ,如果你没有足够的准备,如果你不足够优秀,请不要尝试,请相信“没有银弹”,至少现在。
如果你是计算机企业级软件的新手,急于学习,请选择OFBIZ,不论是架构还是业务,你都将获益非浅!
如果你是程序员,不要向你的经理提起OFBIZ,人人 都将“没有银弹”示为经典,但是没有几个人能真正去体会,当项目压力来时,不会在有人理会这个!