今天上iteye上看到一个老帖子,是关于full-stack framework的一个点评,对这个概念并不熟悉,所以就google了一下,综合下各方面的解释。
1、from wiki
基本意思是说:full stack framework是将有用的多个web开发库整合为一个单内聚的软件栈框架(栈应该是一个形象的比喻吧)给web 开发者使用。
个人的理解应该就是一整套的解决方案,而不是像struts这样只是MVC或者像mybatis这样的ORM框架。
2、oschina上面刚好也有人问这个问题,看的一个不错的解答,就copy过来
full-stack 的设计,意味着各层能够无缝的集成在一起,遵循的DRY原则(don't repeat yourself),将各层共用的东西,抽取出来,并通过自顶向下的设计,无缝的集成在一起,粘合在一起,达到更高层次、更粗粒度的重用,同时为了保证灵活的可扩展性,在更高、更粗的粒度上遵守开放-封闭的原则,在各层的各个关键点,要提供诸多的钩子,回调的接口,供使用者扩展。full-stack的设计,在层与层之间,并不一味的追求松散的机制,而是相反,在层与层之间增强一定的内聚性,粘合力,以此来达到粗粒度的封装与重用。
可以说full-stack 的设计,其爆发出的威力是巨大的,相对普通的单一层面的设计,在开发效率上不是一个层次上的,基于28原理的设计,可以满足80的调用者直接开发,19%的调用者,通过扩展点进行扩展来满足需求,对于1%钻角尖的需求,自己去造轮子。
spring, ruby on rails, Zend都是这样的工业级强度的full-stack的设计,我们的设计如果以他们为中心,生产力得到了极大的提高。