锁定老帖子 主题:应用开源项目时,你会大肆封装,修改它吗?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-27
如果封装能更好的实现应用,为什么不呢?
|
|
返回顶楼 | |
发表时间:2007-06-28
好的开源项目都是面向接口设计的,便于扩展。写程序时一定要明白,你的代码要便于扩展,使用你的代码的人也应该明白,去扩展而不要去修改,除非有bug。
其实许多大的开源项目我们都不用,比如spring、hibernate,一直用老版本的struts,加上一些自己的扩展,因为当时spring、hibernate等没出现或者不完善。 |
|
返回顶楼 | |
发表时间:2007-07-03
ltian 写道 侵入式地修改开源的东西要慎重。最好是不侵入式修改。
严重同意. 可惜有时候需要加功能,又要兼顾效率和处理历史问题.俺也不想这么做的.想想以后的维护...头很大.不过没办法,现在也看不见以后会怎么样,或许公司倒闭或许公司成功,反正无论哪种可能,俺都不用去维护这个破东西了.所以,想改就改吧! |
|
返回顶楼 | |
发表时间:2007-07-04
封装、扩展但尽量不修改源码,否则最好直接参与开源项目的建设。
当然这也是好事,目前贡献代码的人比拿来就用的人要少得多,特别中国的程序员只有很小部分参与国际开源项目,这种状况也需要改变了。 |
|
返回顶楼 | |
发表时间:2007-07-05
我觉得,对于开源项目,就是工具,大可不必用的那么复杂。
封装再封装,HACK再HACK,有什么明显的性能提升吗?某些我们作出的改进,人家作者能想不到相关方面吗? 见过有把Struts的DispatchAction 封装的面目全非的,见过有把Spring Mvc中的 controller 重写源代码的, 见过有为了实现美其名曰“权限的动态管理”把Acegi改的一塌糊涂的。最后效果怎么样? 改Struts的那个只是为了增加个log,写出的class却无法被 doclet辨认。改Spring mvc controller的那个也就是增加个log,却没有使用官方推荐的 paraMethodResolver,弄的那方法名是千奇百怪啊。至于改Acegi的那个,是我做的蠢事。人在公司,身不由己。上级要求的,于是我按照上级的思想来实现。到最后BUG 多多,诡异事件到处都是。领悟用3天,改Acegi用4天,教人使用还要2天。我自己都不知道把现在这东西是怎么用的。哎! 记得在某坛见到某前辈谈经验。他说,见过的好系统,都是设计简单的。越是经历多几个项目,我就越身有体会。 菜鸟刚飞,说的漏洞很多,请各位朋友多多指教! |
|
返回顶楼 | |