锁定老帖子 主题:应用开源项目时,你会大肆封装,修改它吗?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-15
大规模修改?那还不如自己写个土制框架好了,至少是100%贴合实际
|
|
返回顶楼 | |
发表时间:2007-06-18
通用框架并不一定适合所有的系统,
对于具体的系统通常对框架封装就可以了, 至于修改代码认为没必要。 |
|
返回顶楼 | |
发表时间:2007-06-18
我看具体情况了,一般来说,我觉得如果你用开源框架做产品,比起做项目,修改框架的可能性要大多了。象log4j,我见过几个产品,因为ClassLoader的问题,将log4j给封装了(log4j提供的那个自定义ClassLoader就像有时候不满足要求)。
打个比方,象最常用的Struts,本身就提供了很多的扩展点,譬如那个ActionServlet和RequestProcessor,包括RequestProcessor里面的每个protected的processXXX的模板方法都是留给扩展的,否则要用protected干嘛,而且自定义RequestProcessor都可以在struts-config.xml 里面配置的。也就是说它很好支持扩展。那个Plugin机制也是专门为我们做扩展的,因为已有的Validation和国际化、临时数据库都是典型的例子。 而且,我以前用一个类似Spring的的Seasar框架,它通过IoC和AOP,把Struts变成了webwork那样易用。 一般来说,框架提供的filter、interceptor等类似AOP的东西,是一个通用的扩展方式。 如果把开源项目给封装了,大肆修改,后期你发现那个开源项目出现了bug,并且在新版本里面更正了,该更正也是你需要的,你咋办?再对新版改造? 我觉得,一定要考虑优先用开源产品自己的plugin机制! 我现在在对Jive公司著名的即时通讯服务器和客户端Openfire和Spark二次开发,但首先考虑的是写plugin,但是我们的在Spark客户端(类似于MSN)的上的二次开发就没法再用Spark的后续版本了,因为有很多定制的功能,譬如最简单的:Spark的国际化只做了90%,剩下的10%是hard code的,我们一给它完善,呵呵.... 它本身的后续bug都交给我了。 |
|
返回顶楼 | |
发表时间:2007-06-18
其实,敢改开源项目,必须先问自己:
1、你对原开源产品理解透了吗? 2、除了封装,又其它扩展办法吗? 3、你的项目必须这么做吗? 4、开源产品的后续升级对你冲击大吗? |
|
返回顶楼 | |
发表时间:2007-06-18
在真正做开发时,少写一行代码也是好的!
|
|
返回顶楼 | |
发表时间:2007-06-19
这个完全是根据实际情况而定 如果是你的项目中 有这样的需求的 那是肯定要改的 如果没有需要的话 为什么要改呢 都封装的那好 拿来就用 行了
|
|
返回顶楼 | |
发表时间:2007-06-19
记得,我们在做地税项目时,根据实际需求对hibernate进行了一定的封装,将事务处理封装的很好,使得程序员都不用理会后台,而专注于实际业务本身.对开源框架的封装要根据实际需要而定,不要走极端.建议多关注AOP方面的应用,对进行封装或业务需求的处理有很好的借鉴!
|
|
返回顶楼 | |
发表时间:2007-06-19
lucene的hack是必需的,在我们的项目中.
|
|
返回顶楼 | |
发表时间:2007-06-21
TommyCool 写道 记得,我们在做地税项目时,根据实际需求对hibernate进行了一定的封装,将事务处理封装的很好,使得程序员都不用理会后台,而专注于实际业务本身.对开源框架的封装要根据实际需要而定,不要走极端.建议多关注AOP方面的应用,对进行封装或业务需求的处理有很好的借鉴!
同意,很多时候封装都是为了将前后台或不同模块的业务分隔开 曾经封装过lucene,目的也是为了方便其他模块的程序员调用 至于说修改...... 个人还是扩展用得多一些 实在不敢自己未完全掌握的开源框架前造次 |
|
返回顶楼 | |
发表时间:2007-06-21
对DispatchAction封装过...
我觉得有些东西如果有改得好的话,还是很有意义的... |
|
返回顶楼 | |