论坛首页 Java企业应用论坛

“山寨”框架3宗罪

浏览 53548 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-03-24   最后修改:2009-03-24
yuan 写道
刚看了个自制框架的帖子,其实之前这类帖子见得比较多,吵得也都挺厉害。好像总有人一边对提议“不要发明轮子”的同学挺反感,一边以发明家自居,把话扯到中国的软件业上去。之前还看到有人见到“只用SSH的公司“坚决不去。我想说说我的看法。

我觉得框架这东西,首先要明白为什么要用它——这是废话,但又是最重要的。真的有些人是不知道为什么用框架,乱用一通,产品代码乱七八糟。

然后是学习如何用好它,掌握框架后接着可能会发现它的不足,然后要是能够的话,再试试用用其它的框架,选一个最合适的。如果实在找不着你需要的框架了,这个时候如果公司允许,你再去改进某个框架,或者研读它的源代码参考着做个更好的。

否则,我觉得你的“发明”永远只是在你的作坊公司里用用、制造混乱而已。

要说发明国产框架,其实国产框架已经数不清了,而不是屈指可数了。要不要试做个调查,自己发明框架的公司有多少,因此造成产品难以维护的公司又有多少?

说“不要重复造轮子”并不是在打击人,只是在提一个建议。

我是山寨框架的受害者。山寨框架罪状第一条:提高新手学习成本。人家学好了流行的框架进公司本来可以弄清业务逻辑后直接上手,你非得弄个自制框架,让新人多花时间出来学习框架,浪费公司资源不说,一不小心你的框架理念还能误导新人,害人又害己。人家离开这家公司后,在这积累的经验在别处也许还用不上。

山寨框架罪状第二条:降低产品质量。公司里做开发,应该以实现业务为主,技术为辅,如果自制框架,你不得不花额外的时间在框架的维护上(bug往往很多,性能好坏说不定)。使用开源框架,你大部分时间只需要关注业务逻辑(相对自制框架来说);如果自制框架,你不得不花大量精力在业务逻辑以外的技术实现上。人的精力是有限的,同时关注2种事情往往会2种事情都做不好,所谓一心不能二用。开源框架有庞大的开源社区替你承担了这些风险,替你保证了质量,为什么不用?

山寨框架罪状第三条:过于依赖老员工。这个说起来简单,开发这框架的人一旦离职,这个框架以及因它而造成的烂推子便很难收拾。除非你花重金找gigix来重构一把。

我想问问那些正在发明框架的同学,你弄明白为什么要MVC,为什么要ORM,为什么要IoC了吗?


姑且接受你的这个“山寨”的说法,不过你的这个说法有一棒子打死的味道。
所谓的“山寨”框架,其诞生的来源为依托行业背景,不知道你有没有思考过?
我本人参与过电信背景的几个项目,都是所谓的“山寨”半成品。电信背景的一些需求实现都暗含在“山寨”版本里。
至于所谓的“学习曲线”,我觉得不构成任何问题。前提是你基础可以,不是突击了ssh......另外,就算你直接ssh打造,遵从正统的开发方法,也是要花费一定精力,况且做出来的东西,还要和电信老板去表达,论述,沟通。面对现有的半成品,何乐而不为?
当我们考虑现实的一些情景,需求,项目的周期,等等更为复杂微妙的因素的时候,我觉得这个“山寨”不是问题。
当然纯玩乐的不在此范围之内......
0 请登录后投票
   发表时间:2009-03-24  
我觉得“山寨”框架的定义应该是刻意模仿一些知名框架,毫无自己创新意识,同时又是赶工粗制滥造的产品。
一般制造这种山寨产品的目的有:突出自己的所谓技术含量忽悠客户抢订单(别人都是拿来的,我是自己写的,我比别人牛)、为了把客户绑住(离开我谁也搞不明白)。
这些框架多是在1-2个月内赶工制造出来的。性能差,BUG多多,开发困难。使用者叫苦连连。因为即要折腾这些破框架,又要写业务实现。造成工期及其紧张,加班频繁。一般项目结束后,会出现大量的离职。造成后续维护根本不可能进行。
如果是为了现实需求编写一个框架,别管写得多烂。只要有自身特点,能坚持维护,放到网上听取大家的意见,能开源让大家一起来完善就都是好框架。不能算山寨品。
0 请登录后投票
   发表时间:2009-03-24   最后修改:2009-03-24
相信楼主看了这么多跟贴,肯定会无奈的心脏疼!反正我是被堵的不行了。

参与过日本证券在线交易系统的新业务开发和旧应用移动到新框架的工作,从后期框架的变更来看,他们真得很想用SSH,怎奈何,这些基干系统弄的早,那个时候还根本没有SSH。时至今日,只能不断接触新东西(向SSH学),不断对自己的山寨货打补丁,然而风险和Bug随行,每次的框架变更虽一定程度上提高了开发效率,但由于新框架动作较大,所以发生的问题并不少见。

看看Struts1/2,再看看Spring,Hibernate,这东西跟操作系统类似,我们虽然明白其中的原理,但我们真的难以开发出与之媲美的系统,我们得承认国情和程序员的生存背景,更得承认与老外的差距,我们硬件方面有差距,软件的差距一点也不亚于硬件,我们的山寨货真得做了周密的测试吗?我想我们的山寨货是很难有更广泛和更变态的使用和测试,这样,问题可能就会一直深藏不露。

之前也维护过一套类似iBATIS的山寨货,但是看了iBATIS后,才知道差距还是太大了。由此想到开源的重要性,你的框架可能有创新点,但是光是自家用,就会越来越山寨,可能就是所谓技术研发部那几个人把持着,偶尔打个补丁,问题的暴露远远不足。

再联想到新手学习成本、山寨框架的维护成本、老员工依赖等,我认为楼主分析的“头头是道”,是经验之谈,是有感而发的,是肺腑之言,看跟贴看的我实在堵的心痛,再来发一个贴,坚决投楼主的这个贴是精华贴!

新系统开发,我是坚决抵制山寨货!
3 请登录后投票
   发表时间:2009-03-24   最后修改:2009-03-24
同意楼上观点,所谓无知者无畏嘛,呵呵。
其实绝大多数开源框架都很烂,但它们不会害人,因为它曝露在阳光下,缺点一览无遗,
但是开源也可以出精品,因为社区的大量反馈(正面、负面)、大量贡献(代码、测试、文档)
2 请登录后投票
   发表时间:2009-03-24  

套用韩寒的一句话——没有山寨就没有新中国

SSH也都是山寨出身, 只不过发展的比较好而已,
难道国内的程序员就不能写出很好的框架吗?
如果你这么认为, 那么就是你太自卑了!你自己写不出来不代表别人也写不出来!

如果你碰到山寨烂货还迫不得已要使用,那么要么忍受要么离开,
很多东西是有历史原因的,不是你想怎样就怎样!

我很欣喜的看到有很多国内程序员开发的山寨框架不断的出现,这很好,我相信
他们不是为了山寨而山寨,他们肯定都有自己创新的东西在!


1 请登录后投票
   发表时间:2009-03-24  
coolnight 写道

套用韩寒的一句话——没有山寨就没有新中国

SSH也都是山寨出身, 只不过发展的比较好而已,
难道国内的程序员就不能写出很好的框架吗?
如果你这么认为, 那么就是你太自卑了!你自己写不出来不代表别人也写不出来!

如果你碰到山寨烂货还迫不得已要使用,那么要么忍受要么离开,
很多东西是有历史原因的,不是你想怎样就怎样!

我很欣喜的看到有很多国内程序员开发的山寨框架不断的出现,这很好,我相信
他们不是为了山寨而山寨,他们肯定都有自己创新的东西在!





听您的意思,很了解国内山寨框架情况,请问创新的东西在哪里,能举个一二吗?另,有什么知名国产山寨货吗?
0 请登录后投票
   发表时间:2009-03-24  
框架推广我觉得应该采用拉的方式,让别人去发现,并不是一味的推广
自己造山寨或者在原来框架上修改是个深刻理解代码发现问题,提高能力的过程,值得鼓励
至于硬性推广还是等人来用,这些都是后话了
0 请登录后投票
   发表时间:2009-03-24   最后修改:2009-03-24
HenryYu 写道
何谓山寨?!被动不动就扣帽子,会抹杀很多人的创新积极性的。
面对众多的框架,那个适合自己,要有自己判别能力。
如果连这点能力都没有,就不要埋怨人家,好好找找自己的问题了。

我想说句实话,天才是少数,大多数人都是庸人。你说的“很多人”,他们的创新能力,实在是低得可怜。他们创新出来东西价值,并不值几个钱。不要以为《知音》看多了,《心灵鸡汤》喝多了,就觉得丑小鸭一定能变成白天鹅。
庸人贵在有自知之明,可惜相当一部分庸人以为自己是天才,以民族软件创新为口号,抠出些号称有Spring强大,却远没Spring稳定,号称比Struts先进,却满是臭虫的玩意儿。
1 请登录后投票
   发表时间:2009-03-24  
murainwood 写道
HenryYu 写道
何谓山寨?!被动不动就扣帽子,会抹杀很多人的创新积极性的。
面对众多的框架,那个适合自己,要有自己判别能力。
如果连这点能力都没有,就不要埋怨人家,好好找找自己的问题了。

我想说句实话,天才是少数,大多数人都是庸人。你说的“很多人”,他们的创新能力,实在是低得可怜。他们创新出来东西价值,并不值几个钱。不要以为《知音》看多了,《心灵鸡汤》喝多了,就觉得丑小鸭一定能变成白天鹅。
庸人贵在有自知之明,可惜相当一部分庸人以为自己是天才,以民族软件创新为口号,抠出些号称有Spring强大,却远没Spring稳定,号称比Struts先进,却满是臭虫的玩意儿。



强烈同意,在“创新”之前,我觉得还是思考一下自己的东西是否真的是新的,需要深入研究一下同类产品的优缺点。其实当你研究透了的时候会发现自己的新想法不一定是新的了,或者很愚蠢。
0 请登录后投票
   发表时间:2009-03-24  

不敢说很了解, 至少我见到过不错的国内程序员写的框架,
比如phprpc, cindy, springside如果也算框架的话也算一个

肯定还有其他 希望达人们补充

自己写框架是一回事, “强行”推广是另外一回事,不可混为一谈!
我有几个朋友,写代码的时候不断总结出一个又一个小的框架, 那也是很好的,虽然未必推广,
但是不断总结经验以求更好的解决问题,这样的做法是非常好的!
写出如spring/hibernate般流行通用的框架并不是遥不可及!



netfork 写道
coolnight 写道

套用韩寒的一句话——没有山寨就没有新中国

SSH也都是山寨出身, 只不过发展的比较好而已,
难道国内的程序员就不能写出很好的框架吗?
如果你这么认为, 那么就是你太自卑了!你自己写不出来不代表别人也写不出来!

如果你碰到山寨烂货还迫不得已要使用,那么要么忍受要么离开,
很多东西是有历史原因的,不是你想怎样就怎样!

我很欣喜的看到有很多国内程序员开发的山寨框架不断的出现,这很好,我相信
他们不是为了山寨而山寨,他们肯定都有自己创新的东西在!





听您的意思,很了解国内山寨框架情况,请问创新的东西在哪里,能举个一二吗?另,有什么知名国产山寨货吗?

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics