[Java] TinyFramework访谈

博客首页 » Java TinyFramework访谈

发布于 09 Dec 2015 07:05
标签 blog
在itpub上有一个国产的TinyFramework的介绍,看起来不错。
http://www.itpub.net/thread-1936870-1-1.html

其中的几个原则深有戚戚焉

首先,设计理念决定了设计的目标。
(1)使用灵活:可以整个使用它,也可以只用它的一个或几个部分。Tiny构建者认为,一个完整的框架可能需要有许许多多个部分组成,但是对于实际应用的用户来说,它可能只需要其中的一部分功能。构架一定要有这种能力,可以由使用者进行点菜式,使用,避免只要用一点点功能,就要引入许许多多的内容。
(2)学习成本低、上手容易:框架的学习成本必须非常低,这样才可以让使用者更容易上手,避免由于学习难度大而导致的学习曲线太陡、太长。
(3)保持核心的稳定性:Tiny框架是立足于在需要稳定、安全要求非常高的应用环境中使用的,因此其稳定性就是框架构建者首要思考目标,核心部分只使用经过充验证及广泛应用的第三方包。
(4)资产的可积累性:只有易于知识积累,才可以真正做到越用越强。

其次,设计原则解决目标冲突时的解决策略。
(1)约定优于配置原则-COC
(2)不要重复你自己原则-DRY
(3)减法原则 :减法原则是我们自己提出的,意思就是给程序员做减法。
(4)模块化原则:模块化对于软件开发过程中开发、高度、集成、发布、维护过程中所起的作用及节省或花费的巨大成本。因此提出了Business Unit的概念,使得与模块相关的所有内容都可以放在一起。
(5)自动组装原则:在整个Tiny框架的构建过程中,都非常注重集成过程的自动组装,要求做到扔进去不用管,由框架自动集成。
(6)下级服从上级原则:Tiny框架则从框架层级做了限制,使得下级必须服务上级。
(7)单一原则:通过单一原则进行强制性的约束,使得一个模块只解决单一模块应该解决的问题,从而避免不同的问题放在一起解决所导致的胡子眉毛缕不清的问题,同时也避免了不恰当的依赖及模板引用。
(8)集中配置原则:在Tiny框架我们对配置做了大量的工作,一个是COC方式,如果不配,则采用系统默认的值;一个是集中原则:把需要人工需要配置的内容都集中起来统一配置;一个是对于不需要人工干预的配置,那就集成在Jar包中,作为发布者发布项的一部分。
再就是,一些创新性的技术应用。

(1)SOA:Tiny的服务是一次开发到处使用的,也就是一旦完成了服务的开发,你可以用RMI,WebService,Json,Xml等等,各种你想到想不到的方式进行服务调用。
(2)服务水平扩展能力:在遵守Tiny开发规范的前提下,可以方便的进行接入和服务层的水平扩展。也就是说如果你的处理能力不足的时候,只要加一台机器就可以增加处理能力,而不必对现有运行的环境进行任何变化。
(3)模块化技术:Tiny的模块化的设计思想是没有什么不能进行模块化,也就是说所有的文件都可以放在Jar包中。为此我们做了大量的研究与实践,做到了所有的文件都可以放入到Jar包中,甚至连Jsp也可以放入Jar包。通过模块化技术,可以方便的进行模块分隔与复用。
(4)自组装技术:Tiny的自组装设计思想是所有的模块都可以做到加入即可用,去除就消失。也就是说,如果你用别人的一个组件,你只要通过Maven依赖它即可以;如果你不想用了,取消Maven依赖即可。这样就会大大减少集成相关的工作量。
(5)热部署技术:关于热部署的实践,这个有许多种,比如OSGI等等,但是不管哪一种,都有一定的强依赖性,或者说是侵入性。Tiny的热部署实现机制则简单的多,只要按照正常的方式来开发Jar包,并且配置一个Bundle声明文件即可。实际应用当中,即可以按照Bundle机制运行,也可以按照普通Jar包来运行。
(6)UIML技术:UIML也就是统一界面描述语言的意思。通过这一特性,再加上配套的可视化界面设计工具,就可以实现一次开发到处使用的界面开发目标。
(7)AOP缓冲框架:可以有效剥离缓冲与业务代码,可以透明的切换缓冲方案切换,可以大幅降低缓冲相关代码编写的开发与重构成本。
(8)文档生成框架:凡是按照Tiny开发规范进行开发,许多的文档都可以通过工具自动化生成,文档与代码不一致不再是一个问题,同时还可以节省大量的文档编写时间。


本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用,仅有一个特殊要求,请用链接方式注明文章引用出处及作者。请协助维护作者合法权益。


系列文章

文章列表

  • Java TinyFramework访谈

这篇文章对你有帮助吗,投个票吧?

rating: 0+x

留下你的评论

Add a New Comment