看到几个帖子,都在讨论自主研发框架的问题,如何看待企业自主研发框架,“山寨”框架3宗罪,也来谈谈我的看法(我们这里提到的框架,是比较泛的,不局限于某个特定用途,特定领域的框架)
?
首先,要不要自主研发框架,要看开发这个框架是来干嘛的,如果没有现成的适合自己目的的框架,如果没有,并且从长远来看,又是需要这个一个框架的,那没的选择,必须开发。不过,虽然是需要一个框架,我还是不建议一开始就设计的非常完善,“大而全”是没必要的,没必要设计并实现一个非常完善、强大的框架,然后再开始做具体的业务,可能框架还没开发成熟,企业就挂了。还是小步快跑,想可以想的远一点,但是路要一步一步的走,这样可以灵活调整,在企业里看来,应该是更靠谱的。毕竟我们不是那些不做业务的研究院,我们要一边做业务,一边完善技术。
?
其次,要不要自主研发框架,是由企业的目标来决定的。如果是一个不是很大的企业,没有10年以上的规划,我觉得是没有必要的,使用现有的成熟的技术就够了。但是,如果你的企业的目标是很长远的,我认为必定是需要有自己的框架的,毕竟,现在你用spring,用struts,过几年呢?没有自己的东西,是很难长远发展的,大部分只能小敲小打,不成大器!
?
说实在的,要开发一个好的框架非常的困难,需要相当的经验和业务的经历的,核心的设计人员一定要站的高,看的远,而且框架的发展一定要保持一致的理念,否则今天我来设计,明天你来重构,核心设计思想必须一致的保留下去,否则,要不了多久,就变成四不像了。
?
另外,要不要自主研发框架,还得看有没有能力开发出一个超过当时流行的框架的新东西。如果废了很多力气搞出一个和现在的东西差不多的框架来,实在是没必要。站在巨人的肩上,是一个不错的起点。吸收成功的框架的设计思想,加上自己的经验和创新,还是有希望的。当然,要站在巨人的肩上,你必须得有足够的本事,能站上去,如果你现在只够巨人的腿这么高,还是不要站上去了,摔的很痛的!
?
我们公司是有自己的web层开发框架的,那还要从2000年,2001年说起,当时开源界还没有很成熟的框架,struts 还不是很成熟,而且其设计也不是很利于扩展,因此我们选择了turbine作为起点,在现在看来turbine的一些设计理念还是不错的,比如他的service 框架,page-driven的开发模式,这么多年发展下来,我们的框架也很成熟了,而且也有不少亮点。但是在发展的过程中也发现一些问题,毕竟自主的发展和流行的框架之间还是有很大的差异的,这导致了人员招聘来之后,培训成本提高。
?
上面这些都是针对企业来说的,对于个人呢,如果有想法,就动手做吧,必定会有很多感受,对自己的提高也是非常有利的。鼓励创新,否则我们的技术还怎么发展呢。
为后来人考虑下
还是用大家都了解的标准来做吧
除非你的东西已经成熟的超过他们了
为后来人考虑下
还是用大家都了解的标准来做吧
除非你的东西已经成熟的超过他们了
这确实是一个问题,如何传承的问题,需要比较长的时间来让更多的人理解设计理念,发扬光大
呵呵,所谓标准?这些框架有标准么,标准其实是用来践踏的,ejb2是标准,但是大家都用spring,不止是java界,放开了说去,其他的那些标准,哪个不是给各大厂商践踏的,最多就是做一下兼容而已
而且,你觉得spring,struts,这些就是标准么,其实不然。在企业里,需要的不是一个web框架,一个ioc的东西,而是需要一个真正full-stack的开发框架,包括一套标准,一套流程,仅仅靠把一些开源的组建拼凑起来是不够的,毕竟每个东西的设计理念和工作方式都有差异的,我们真正需要的是一个非常和谐的框架,哈哈。。。。
如果为了所谓的保密,只有公司内部甚至只有一两个人知道框架怎么回事情,那么最后死掉是肯定的。你要想封闭发展,那么投入的资金和开发人员是一般公司无法承受的。你如果有微软和IBM的水平,那么当我没说。如果只到Sun的规模,那么还是开源吧。
如果为了所谓的保密,只有公司内部甚至只有一两个人知道框架怎么回事情,那么最后死掉是肯定的。你要想封闭发展,那么投入的资金和开发人员是一般公司无法承受的。你如果有微软和IBM的水平,那么当我没说。如果只到Sun的规模,那么还是开源吧。
是的,非常同意,曾几何时,我们也建议开源过,但是当时公司的一些人不同意,认为不合适.....
楼主是猪, 坚定完毕。